什么是DevOps?

维基百科对DevOps的定义如下:DevOps是一套结合了软件开发(Dev)和信息技术操作(Ops)的实践,旨在缩短系统开发生命周期,提供高质量的持续交付。

DevOps计划试图解决的问题是,对于开发人员和质量检查工程师,一旦应用程序或新功能代码成功通过测试,该项目就完成了。传统的运维方法中,软件测试完成后,如何将其部署到生产环境,并保证其性能,是运维工程师最头疼的问题。而解决问题过程中,开发团队和运维团队的互相推诿,往往极大程度影响了客户感知。

为此,DevOps在软件交付方面做了最大程度的改变。其核心为以下三个方面:

  1. 基础架构即代码(IaC)  -服务器环境以声明清单的形式进行描述,并以代码形式存储,任何团队成员均可对其进行调整并多次重复使用,以提供测试或构建代码以及维护代码所需的基础架构生产中的应用程序。
  2. 持续集成(CI)  -根据最终用户的反馈将以规格和功能要求的形式不断集成到产品中,以进行下一次软件开发。
  3. 持续交付(CD)  -在不中断最终工作用户体验的要求下,通过自动代码交付管道自动提供所有必需的资源,并在代码通过测试后立即将代码自动推送到生产中,而无需DevOps工程师采取额外的手动操作。

使用DevOps的方法中,在构建新的软件版本之前,将每一批新的代码推送到存储库中之后,都要进行各种测试。DevOps专家考虑了应用程序在创建之前将如何运行,他们编写了脚本来创建CI / CD管道,以确保产品更快地投放市场并获得积极的最终用户体验。可以说DevOps的核心转变是,团队的所有人都需要对客户的最终体验负责。