整理了一份史上最全的DevOps 工具链

在列出DevOps 工具链之前,介绍一下什么是DevOps,虽然DevOps这个概念现在还没有标准的定义,但我们可以追溯一下其过去九年的历史发展过程(从2009年~2017年),列出几个相对明确又有所不同不同的定义,从而能够比较全面了解DevOps的内涵。

  • 【2009】 DevOps是一组过程、方法与系统的统称,用于促进开发、技术运营和QA部门之间的沟通、协作与整合
  • 【2011】快速响应业务和客户的需求,通过行为科学改善IT各部门之间的沟通, 以加快IT组织交付满足快速生产软件产品和服务的目
  • 【2015】DevOps强调沟通、协作、集成、自动化和度量,以帮助组织快速开发软件产品,并提高操作性能和质量保证;强调自动化软件交付和基础设施变更的过程,以建立一种文化和环境,通过构建、测试和发布软件等方法,可以快速、频繁地、更可靠地发布软件
  • 【2016】 DevOps的目标是建立流水线式的准时制(JIT)的业务流程,以获得最大化业务成果,例如增加销售和利润率,提高业务速度、减少运营成本。
  • 【2017】一个软件工程实践,旨在统一软件开发(Dev)和软件操作(Ops),与业务目标紧密结合,在软件构建、集成、测试、发布到部署和基础设施管理中大力提倡自动化和监控。DevOps的目标是缩短开发周期,增加部署频率,更可靠的发布。

图1 体现DevOps 流水线的速度(如测试20s左右)

简单地说,DevOps是敏捷研发中持续构建(Continuous Build,CB)、持续集成(Continuous Integration,CI)、持续交付(Continuous Delivery,CD)的自然延伸,从研发周期向右扩展到部署、运维,不仅打通研发的“需求、开发与测试”各个环节,还打通“研发”与“运维”。DevOps 适合“软件即服务(SaaS)”或“平台即服务(PaaS)”这样的应用领域,其显著的特征就是:

  • 通用户、PMO、需求、设计、开发(Dev)、测试、运维(Ops)等各上下游部门或不同角色
  • 打通业务、架构、代码、测试、部署、监控、安全、性能等各领域工具链。

下面我们就展开DevOps的工具链。

图2 持续集成的基本工具链 [1]

图3 持续部署基本工具链 [1]

图4 自助式DevOps [1]

上面相对比较简单地展示了DevOps基本工具链的主要工具,相对全的工具,需要覆盖大概十四类工具:

  • 编码版本控制:维护和控制源代码库中的变更
  • 协作开发
  • 构建:版本控制、代码合并、构建状态
  • 持续集成
  • 测试:自动化测试及测试报告
  • 打包:二进制仓库、Docker镜像仓库
  • 部署工具
  • 容器:容器是轻量级的虚拟化组件,它以隔离的方式运行应用负载。它们运行自己的进程、文件系统和网络栈,这些资源都是由运行在硬件上的操作系统所虚拟化出来的
  • 发布:变更管理、自动发布
  • 编排:当考虑微服务、面向服务的架构、融合式基础设施、虚拟化和资源准备时,计算系统之间的协作和集成就称为编排。通过利用已定义的自动化工作流,编排保证了业务需求是和你的基础设施资源相匹配的
  • 配置管理:基础设施配置和管理,维护硬件和软件最新的、细节的记录-包括版本、需求、网络地址、设计和运维信息
  • 监视:性能监视、用户行为反馈
  • 警告&分析工具
  • 维护工具

更完整的结构,如图5所示。

图5 全开源DevOps平台 [1]

经过一个月的不断收集和完善,形成下列目前最全的DevOps工具链:

最后以James Bowman绘制的“Continuous delivery tool landscape”作为结尾,算是一个小结。【送福利】关注本公众号,输入“工具链”,会有惊喜——两个不同的DevOps工具链高清版。

参考文献:

[1] 马致杰:一站式软件交付-世界五百强企业中的DevOps转型之道

[2] http://dbaplus.cn/news-134-1744-1.html

[3] http://devopsone.cn/products

[4] DevOps兴起意味着专职测试人员消失?

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我
  • 上海市嘉定区曹安公路4800号同济大学软件学院
  • kerryzhu@vip.163.com