DevOps(Development和Operations的组合词)是一种重视 “软件开发人员(Dev)” 和 “IT运维技术人员(Ops)” 之间沟通合作的文化、运动或惯例。
通过自动化 “软件交付” 和 “架构变更” 的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
以下几方面因素可能促使一个组织引入DevOps:
- 使用敏捷或其他软件开发过程与方法
- 业务负责人要求加快产品交付的速率
- 虚拟化和云计算基础设施(可能来自内部或外部供应商)日益普遍
- 数据中心自动化技术和配置管理工具的普及
- 有一种观点认为,目前占主导地位的“传统”美国式管理风格(“斯隆模型 vs 丰田模型”)会导致“烟囱式自动化”,从而造成开发与运维之间的鸿沟,因此需要DevOps能力来克服由此引发的问题。
DevOps 经常被描述为“开发团队与运维团队之间更具协作性、更高效的关系”。由于团队间协作关系的改善,整个组织的效率因此得到提升,伴随频繁变化而来的生产环境的风险也能得到降低。
团队职责
- IT 运营/支持分析师:
作为 IT 运营团队的成员(或负责人),我希望获得有关重要服务的最新构建信息,以便在最近的部署导致服务中断或与服务中断相关时通知软件团队。 - DevOps / SRE:
作为 DevOps 或 SRE 团队的成员(或负责人),我需要确保服务健康,如果不健康,请快速查找原因。为利益相关者提供对应用程序和基础设施部署引起的问题的可见性的能力将帮助他们改进软件开发和部署实践,从而提高整体 MTTD。 - 软件开发人员:
作为软件开发团队的成员(或负责人),我想在客户受到影响之前了解我自己的软件或上游服务的最近部署是否会导致问题,而无需在不同的工具和 UI 之间切换。 - CI/CD:
作为负责持续集成/持续交付解决方案的团队的成员(或负责人),我想了解我们的 CI/CD 管道速度变慢的原因和位置,以及如何最好地解决任何问题以快速改进 CI /CD 为 DevOps、SRE 和软件开发团队提供服务。