DevOps 是英文 Development + Operations 的组合。字面上就是【开发运维一体化】的意思。它是一系列实践,这些实践通过使用一组集成的工具来实现自动交付软件,从而弥补开发团队和运维团队在软件集成和部署之间的鸿沟。它的诞生,就是为了让开发团队和运维团队在其工作上具有敏捷性,使他们之间能够更好地协作。
DevOps的目标仅仅是帮助团队加快交付产品的速度,并更快的实现用户反馈。
并不是把各个节点用工具实现自动化就是DevOps,工具只是充当加速器用来辅助而已。DevOps应该包含三个方面:
人员:各个相关人员必须在整个过程中进行有效的沟通和协作。
流程:它的定义是一系列实践,所以必须有一个有价值的、合理的实施策略和流程。
工具:通过使用各种工具来让流程自动化,达到一个加速效果。
DevOps包含四个核心内容:
- 持续集成
- 持续测试
- 持续交付
- 持续监控
1) 持续集成
团队的各个开发人员一天多次地将代码提交集成到代码存储库中。然后将团队成员完成的所有工作集成到一个通用构建服务器中,并执行自动化构建。定期进行这些集成和自动构建称为“持续集成”。
这样有助于尽早地发现问题,并确保集成的所有模块都符合要求。
2) 持续交付
持续交付是持续集成之后的下一步。它是为了尽快将产品推入生产环境。在此过程中,它经历了交付生命周期的各个阶段:研发环境的单元测试和代码审查、测试环境的功能测试、预发布环境的验收测试、生产环境的持续监控。
定期交付构建到各个阶段的产品的过程称为持续交付。
与传统方法相比,持续交付有助于缩短产品上市时间,降低风险,可以通过自动化发布过程来降低成本,最重要的是,可以快速地从获得用户反馈,从而调整产品,让产品更具竞争力。
3) 持续测试
以上的两种实践,也就是 CI 和 CD,涵盖了开发到部署的整个流程。
而持续测试,是从CI流程开始运行各种类型的自动化测试的过程,直到最终将系统部署到生产环境为止。
4) 持续监控
在产品部署到生产环境后,运维团队从正常运行时间、稳定性、可用性等方面监控系统和环境。这个过程称为持续监控。
运维团队与开发团队合作,开发或者使用某些工具来分析系统,以达到监控所部署的系统在运行中是否存在问题。