探索 DevOps 应用程序生命周期
虽然 DevOps 实践的范围很广,但他们的主要目标是优化应用程序生命周期管理。 在虚构的公司示例中,从现有应用迁移到具有更新功能的新应用需要重新访问应用程序生命周期的每个阶段。 因此,了解 DevOps 原则如何显著改变每个阶段的实现方式,从规划和交付到运营。 本单元将分步简要概述这些实现。
应用程序生命周期阶段
应用程序生命周期阶段包括规划、开发、交付和运作。
规划
规划阶段涉及审查客户需求,以概述和定义要开发的软件的特性和功能。 此类软件的范围从单个微服务到由多个产品组成的组合。 结果定义了应用程序开发和部署的软件要求、范围和里程碑。 从 DevOps 的角度来看,此阶段的主要注意事项包括敏捷性、以客户为中心的焦点、对齐和可见性。
发展
开发阶段涵盖开发应用程序代码的各个方面。 这些方面包括编程、测试和代码评审。 为了遵守 DevOps 做法,代码应驻留在源代码管理系统中,从而促进协作并支持版本控制。 代码的工作版本用于生成适合后续传递的项目。 此类项目可以采用可执行二进制文件、软件库、容器映像、安装程序包、配置文件、部署脚本甚至文档的形式。
此阶段的更改应通过自动化测试和构建,以较小的增量进行应用,这一过程称为 持续集成(CI),从而加速开发过程并提高敏捷性。
交货
交付是以一致且可靠的方式将开发阶段生成的项目部署到生产环境的过程。 虽然此阶段的最终目标是通过 持续交付(CD)实现完全自动化,但某些组织(尤其是在 DevOps 采用的早期阶段)可能会选择实施手动审批或检查。 随着 DevOps 实践的信心不断增强,通常可以完全自动执行这些检查。 例如,在无人参与的情况下成功地验证了能够部署到过渡环境,这就可以作为过渡到生产环境的基础。 自动化有助于使交付过程可缩放、可重复且更具复原能力(尽量减少人为错误的可能性)。 成功实现此类方法的关键是遵循 DevOps 做法,包括适当的测试、可观测度量的使用和持续学习。
实施还应考虑通过 IaC 预配和配置目标环境的基础设施。 将基础结构视为代码可提供一系列优势,包括一致性、可重现性和敏捷性。
操作
作阶段涉及在生产环境中维护、监视和故障排除应用程序。 从 DevOps 的角度来看,此阶段的主要目标是稳定性和可靠性、快速事件响应、安全性和合规性以及客户满意度。 在某种程度上,达到这些目标取决于正确实施可衡量的结果。 DevOps 进程还依赖于所谓的 反馈循环, 提供反映已部署应用程序的当前状态的数据,例如性能指标、响应能力和总体用户体验,包括改进或降级的功能。
在此阶段,必须确保开发、运营和安全团队之间的最大协作级别。 此阶段还充当持续学习的基本来源。
应用程序生命周期的最后阶段是什么?
正如本单元开头的名称所指示和图像所示,应用程序生命周期是一个循环过程。 应用程序生命周期的开始和结束取决于应用程序的开始和停用事件。 但是,在初始部署(甚至更早)之后,用户提供的反馈和监视数据会通知后续更新和应用程序的演变。
注意
请记住,尽管在整个单元中只提到过几次安全性,但根据 DevSecOps 原则,其角色在整个应用程序生命周期中都持续了。 实际上,应在每个阶段考虑与安全相关的注意事项,从初始规划的开头开始。