发布管理流程
在本文中,我们将了解发布管理和成功发布的 6 大最佳实践。让我们一一讨论。
设想 :
让我们看看这个虚构的 AAA 公司在生产部署后遭遇彻底失败的例子。该软件已经通过了开发和测试阶段,但在生产中遭遇了彻底的灾难。该公司聘请了第 3 方发布管理团队来了解“出了什么问题?”的答案。和“如何让它发挥作用?”团队在研究整个过程时发现,公司的发布过程本身似乎有缺陷,结果相互矛盾。几个月后,通过执行合理的计划和战略,AAA 公司可以成功发布软件。那么,我们什么时候说“成功的软件发布”呢?那时软件可以正常运行,在生产中没有或最少打嗝。
示例结果:
在上面的例子中,当我们想到团队是如何成功的时候,团队肯定会经历如下的各种研发阶段。
- 了解问题点
- 制定标准化战略计划
- 执行计划
- 培训等
发布管理流程:
- 它是软件从概念到部署和维护的生命周期。根据软件的成熟度和重要性,每个组织都将遵循自己的发布流程并进行相应的定义。
- 根据 wiki,发布管理流程的标准定义保持不变:“它是通过不同阶段和环境管理、计划、调度和控制软件构建的过程”,而我们在此基础上编织了一组最佳实践.
发布管理流程的最佳实践:
以下是发布管理流程避免生产灾难的最佳实践:
规则1 :
要求和规划——
- 定义发布的具体要求和标准。
- 始终在对需求及其对现有功能的影响有充分了解的情况下签署需求。
- 例如,对于新功能/改进/变更请求,有一个明确的开发和测试计划和时间表,这有助于遵守项目时间表。
规则 2:
沟通协调——
- 在跨职能团队、开发团队、QA 团队、产品负责人之间进行有效沟通始终非常重要。
- 如果有任何障碍,请始终与各个团队进行沟通和协调,并尽快解决,从而减少最后一刻的危险信号。
- 可以安排以范围和目标为导向的会议,以了解进展、障碍和依赖关系。回顾有助于团队从过去的错误中吸取教训,并适应新的方法以在未来的版本中进行改进。
规则 3:
文档 –
- 文档是整体发布成功的关键。
- 在发布管理的所有阶段(开发、测试、部署等)都必须遵循一个有据可查的过程,这有助于提高标准化。
- 文档可以包括过程中面临的“障碍”和克服障碍的“解决方案”。这样,可以在以后的版本中避免从以前的错误中吸取的教训。
规则 4:
引入自动化——
- 在所有可能的阶段自动化流程。例如,当代码提交时,自动运行单元测试并在相关组件上运行回归测试,从而避免可能在系统中引入错误的错误签入。
- 自动化所有可能的功能、验收测试等使流程更快、无错误,并节省大量人力。自动化部署过程将是一个巨大的胜利,因为可以一键将应用程序部署到任何环境。
规则 5:
决定、衡量和改进——
- 安排一次“Go-No-Go”决策会议,决定软件在测试结果和软件质量方面是否合格?
- 我们有任何拦截器吗?
- 它是否通过了定义要求的具体验收标准?
- 软件是否在Test环境、Stage环境等所有环境下都通过了?
- 跟踪完成周期的时间、每个环境中的部署持续时间、生产中发现的错误和升级等非常重要。可以通过分析指标和模式来衡量发布的成功或失败。建议不要止步于此,并始终致力于改进以使发布更加成功。
规则 6:
风险分析和缓解计划 –
- 确保没有签入绕过非生产环境。应该始终从 CI/CD 中干净利落。大的释放与人为干预成反比,较少的人为干预导致稳定的释放。因此,可以通过专注于自动化发布管道来消除这种风险。
- 始终有一个简单的、注重细节的回滚计划,并确保回滚至少经过一次测试并且应该很快完成。
结论:发布更高质量的产品需要以目标为导向的团队,并且应该努力不断改进他们的流程。单一的解决方案无法神奇地消除不稳定的版本,但采用最佳实践将减少此类不良事件和业务影响。