我眼中的DevOps

简介: DevOps 是由开发(developments)和运维(operations)两个单词组成,可以看做是开发、测试和运维之间的一个交集,通过一些列固化的流程来使得整个项目的开发周期变得更便捷和可靠。

DevOps 在IT行业内近几年来在不少企业得到广泛应用,那么DevOps到底是什么呢?接下来让我们一起做一个简单的了解吧。

DevOps简介

   DevOps 是由开发(developments)和运维(operations)两个单词组成,可以看做是开发、测试和运维之间的一个交集,通过一些列固化的流程来使得整个项目的开发周期变得更便捷和可靠。其核心是CI/CD(持续集成和持续发布),即通过自动的触发代码构建、发布、测试、监控等一系列自动化的操作,来提升工作效率,代替反复且容易出错的手工操作。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作


DevOps流程介绍

   下面给大家简单的介绍一下一个比较简单的devops流程,也是我在第一家公司里面的流程:


微信图片_20220113144123.png


1、开发人员提交代码到源码管理仓库(git/svn),源码管理的话 ,现在公司大部分都自己搭建了gitlab服务器,并对接了公司的ldap域认证,对每个用户的权限进行严格的控制

2、代码提交后,自动出发代码编译操作,检查是否能编译通过,能编译通过,就接着出发代码扫描(包括代码编写风格、是否有安全漏洞之类、语法错误之类的),有写单元测试脚本的话也顺带执行一下单元测试脚本。在这个过程中,针对不同的编程语言,需要集成不同的插件或工具去进行扫描。

3、发布代码到指定的环境。测试阶段的话,一般检测到代码变更后,可以在构建后自动发布到测试环境,生产环境的话,则需要在验证通过之后才能发布。在这中间会搭建仓库用来存储版本发布的相关部署包。

4、发布成功后,运行测试人员写好的验证脚本进行回归验证,如果这个过程中有任何一个环境出现报错的话,可以以邮件或者其他方式提醒用户

补充说明:以上只是列举了一个最简单的流程,全流程都是可以实现自动触发操作,不需要手动操作。在这中间还可以根据自己公司的实际业务情况,进行一些环节的删减操作,在这小编再列举一下小编待过的第一家公司的devops流程实现的一些功能:

   统计开发人员每天、每周提交的代码量,某个项目针对某个版本的代码变化量,代码行数、代码未解决的bug数量

   自动发布测试环境,自动执行测试用例

   自动扫描代码,检查是否有安全漏洞,可以采集一些数据做一个简单的报表 ,给公司的QA分析各个项目每月的版本质量情况以及研发的效率。


自己搭建DevOps平台需要用到的一些工具

   下面就简单的介绍一些我了解过的工具(当然也有一些其他的工具我没接触过的)

  • 源代码管理工具:git、svn
  • 持续集成工具:jenkins
  • 仓库管理:nexus、artifactory  (管理jar包,dll文件,docker镜像等)
  • 代码编译工具:maven、ant、gradle
  • 配置管理/自动化部署工具:chef、ansible等
  • 其他:要准备对应的服务器、搭建服务器监控平台

本次就先分享这么多 ,要搭建和维护好devops平台,还需要去了解一下shell、batch脚本,以及一些其他脚本,方便处理一些复杂的操作。接下来我将根据自己的记忆,陆续分享一些在这个过程中用到的技术点,大家在学习devops相关内容时遇到问题 ,也可以与小编一起讨论,小编也很愿意与大家一起去学习这个行业的一些技术。




目录
打赏
0
0
0
0
4
分享
相关文章
Flutter笔记:关于应用程序中提交图片作为头像
1. 头像选择与提交的一般步骤Flutter笔记关于应用程序中提交图片作为头像作者目 录1. 头像选择与提交的一般步骤2. 选择本地文件到头像的示例代码3. 将图像提交到后端1. 头像选择与提交的一般步骤image将处理后的图像作为用户的头像显示在应用程序中。您可以使用Image或小部件来加载和显示图像。这些步骤涵盖了从选择图像到上传、处理和显示图像的基本流程。请根据您的具体需求和后端实现来自定义这些步骤。此外,确保您的应用程序有适当的权限以访问设备上的相册或相机,这通常需要在和。
459 0
不标识@TableName、@TableField和@TableID注解会发生什么?
不标识@TableName、@TableField和@TableID注解会发生什么?
330 0
成功解决node、node-sass和sass-loader版本冲突问题、不需要降低node版本。如何在vue项目中安装node-sass,以及安装node-sass可能遇到的版本冲突问题
这篇文章介绍了在Vue项目中安装node-sass和sass-loader时遇到的版本冲突问题,并提供了解决这些问题的方法,包括在不降低node版本的情况下成功安装node-sass。
成功解决node、node-sass和sass-loader版本冲突问题、不需要降低node版本。如何在vue项目中安装node-sass,以及安装node-sass可能遇到的版本冲突问题
Flink OLAP 在字节跳动的查询优化和落地实践
字节跳动基础架构工程师何润康在 Flink Forward Asia 2022 核心技术专场的分享。
477 0
Flink OLAP 在字节跳动的查询优化和落地实践
深入理解 uni-app 页面生命周期(四)onShareAppMessage
深入理解 uni-app 页面生命周期(四)onShareAppMessage
1270 0
车联网 CAN Bus 协议介绍与数据实时流处理
CAN Bus 是一种串行通信协议,能够让设备之间可靠而高效地传输数据。本篇博客将探讨使用 CAN Bus 中遇到的挑战,以及如何用 eKuiper 和 MQTT 解决这些问题。
EMQ
600 0
车联网 CAN Bus 协议介绍与数据实时流处理
获取 /resources 目录资源文件的 9 种方法,还有谁不会?!-1
获取 /resources 目录资源文件的 9 种方法,还有谁不会?!
537 0
golang project 不显示文件夹 或者某个包明明能 import 但就是 import 不进来,提示Unresolved reference
golang project 不显示文件夹 或者某个包明明能 import 但就是 import 不进来,提示Unresolved reference
3分钟创建Serverless Job 定时获取新闻热搜
不用掏手机、不用登微博,使用Serverless Job就能定时获取最新热搜新闻。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等