1. DevOps的一些介绍

DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运维工作必须紧密合作。

DevOps到底是什么意思?

什么是 DevOps?

大家通过阅读这些文档大概就能了解到DevOps的一些概念和优点,提到DevOps不得不提下持续集成和持续交付 (CI/CD)。

2. DevOps在k8s环境下个人的一些实践

我说的DevOps主要是指一些CI/CD的内容了,主要是以k8s环境进行的操作。

假设一个公司的业务包含windows桌面程序,和一些服务器端的服务,这些都事先在公司内网进行开发和发布,验证通过后才会发布到公网。

想做到快速的发布我们可以通过自动化工具进行这些操作,比如jenkinsAzure Pipelines这类工具。

大家都知道微软的工具都挺好用的,但是可能会出现收费的情况,所以选择的时候可能就会选择开源但很臃肿的jenkins,也罢能跑就行吧。为了满足上面的假设,画出下图。

看了图片我们可以想到我们需要准备的东西:

有了混合集群的环境,我们就可以进行图上的一些任务的操作了。对于代码审查,大家可以使用这个SonarQube服务,把它单独部署到集群,然后暴露出单独的api可以通过api进行代码审查。

对于多环境部署的一些设计,如果测试开发部门联系的不太紧密的情况,或者关系都很不好的情况下,那还是建议大家分别建立各自的集群,对于一些镜像仓库可以公用。

如果开发测试都在一个集群的情况下倒是也可以。

宗旨就是各自的ingress指向各自的服务,这样就不会出现访问错误的情况。

拉取代码=>构建镜像=>推送镜像=>更新集群镜像

触发方式可以是代码合并的时候或者定时触发。

这样作为开发可以做到一天发布好多遍,这样的好处就是能够快速看到开发效果,如果没问题也能及时的更新到测试和生产环境。缩短软件交付的周期,是很好的事情。

针对外网正式环境的更新可能会谨慎一些,有些时候我们的源码不会直接放到公网,所以我们会把我们的程序的打包成docker镜像进行分发更新。

3. DevOps个人的一些感悟

个人感觉在一个公司推广DevOps,需要多个部门间统一共识,这样在进行沟通的时候才能高效,在进行一些方案实施的时候也可以很快的落实。当然有些时候如果主要负责的那个人推进方案有阻碍的时候,又不能及时的得到支持,甚至被边缘化的时候,那方案的实施可能就会稀碎了,而且还会得到很大的一口锅。

最新文章

  1. Java的多线程机制系列:不得不提的volatile及指令重排序(happen-before)
  2. 几种任务调度的 Java 实现方法与比较
  3. android开发------响应用户事件
  4. LeetCode:Jump Game I II
  5. ligerui+json_002_Grid用法、属性总结
  6. 批发网加盟页面轮播Jquery jcarousellite插件效果
  7. SetWindowHookEx 做消息响应
  8. Unity3d之Http通讯GET方法和POST方法
  9. matlab 怎么保存plot的图 到指定文件夹
  10. 多线程异步编程示例和实践-Task
  11. 机器学习理论提升方法AdaBoost算法第一卷
  12. java与C++变量初始化的对比
  13. Win7下安装composer, 并使用其安装smarty
  14. python面向对象--类
  15. tensorflow中moving average的用法
  16. 《Linux就该这么学》第二天课程
  17. [Node.js] 04 - Event and Callback
  18. jython笔记
  19. 记录git的初始设置,添加文件,提交文件
  20. Dijkstra 算法,用于对有权图进行搜索,找出图中两点的最短距离

热门文章

  1. Android 12(S) 图形显示系统 - 简单聊聊 SurfaceView 与 BufferQueue的关联(十三)
  2. 你应该知道的Redis事务
  3. SP接口的全双工首发接口整合
  4. MySQL JDBC常用知识,封装工具类,时区问题配置,SQL注入问题
  5. TypeSciprt webpack配置
  6. maven下载出现unknown文件夹
  7. Mybatis框架基础入门(七)--关联查询
  8. 学习zabbix(十)
  9. 编译器警告c4996
  10. 大数据学习之路又之从csv文件到sql文件的操作过程