📜  发布管理流程

📅  最后修改于: 2022-05-13 01:56:59.434000             🧑  作者: Mango

发布管理流程

在本文中,我们将了解发布管理和成功发布的 6 大最佳实践。让我们一一讨论。

设想 :
让我们看看这个虚构的 AAA 公司在生产部署后遭遇彻底失败的例子。该软件已经通过了开发和测试阶段,但在生产中遭遇了彻底的灾难。该公司聘请了第 3 方发布管理团队来了解“出了什么问题?”的答案。和“如何让它发挥作用?”团队在研究整个过程时发现,公司的发布过程本身似乎有缺陷,结果相互矛盾。几个月后,通过执行合理的计划和战略,AAA 公司可以成功发布软件。那么,我们什么时候说“成功的软件发布”呢?那时软件可以正常运行,在生产中没有或最少打嗝。

示例结果:
在上面的例子中,当我们想到团队是如何成功的时候,团队肯定会经历如下的各种研发阶段。

  1. 了解问题点
  2. 制定标准化战略计划
  3. 执行计划
  4. 培训等

发布管理流程:

  • 它是软件从概念到部署和维护的生命周期。根据软件的成熟度和重要性,每个组织都将遵循自己的发布流程并进行相应的定义。
  • 根据 wiki,发布管理流程的标准定义保持不变:“它是通过不同阶段和环境管理、计划、调度和控制软件构建的过程”,而我们在此基础上编织了一组最佳实践.

发布管理流程的最佳实践
以下是发布管理流程避免生产灾难的最佳实践:

规则1 :
要求和规划——

  • 定义发布的具体要求和标准。
  • 始终在对需求及其对现有功能的影响有充分了解的情况下签署需求。
  • 例如,对于新功能/改进/变更请求,有一个明确的开发和测试计划和时间表,这有助于遵守项目时间表。

规则 2:
沟通协调——

  • 在跨职能团队、开发团队、QA 团队、产品负责人之间进行有效沟通始终非常重要。
  • 如果有任何障碍,请始终与各个团队进行沟通和协调,并尽快解决,从而减少最后一刻的危险信号。
  • 可以安排以范围和目标为导向的会议,以了解进展、障碍和依赖关系。回顾有助于团队从过去的错误中吸取教训,并适应新的方法以在未来的版本中进行改进。

规则 3:
文档 –

  • 文档是整体发布成功的关键。
  • 在发布管理的所有阶段(开发、测试、部署等)都必须遵循一个有据可查的过程,这有助于提高标准化。
  • 文档可以包括过程中面临的“障碍”和克服障碍的“解决方案”。这样,可以在以后的版本中避免从以前的错误中吸取的教训。

规则 4:
引入自动化——

  • 在所有可能的阶段自动化流程。例如,当代码提交时,自动运行单元测试并在相关组件上运行回归测试,从而避免可能在系统中引入错误的错误签入。
  • 自动化所有可能的功能、验收测试等使流程更快、无错误,并节省大量人力。自动化部署过程将是一个巨大的胜利,因为可以一键将应用程序部署到任何环境。

规则 5:
决定、衡量和改进——

  • 安排一次“Go-No-Go”决策会议,决定软件在测试结果和软件质量方面是否合格?
  • 我们有任何拦截器吗?
  • 它是否通过了定义要求的具体验收标准?
  • 软件是否在Test环境、Stage环境等所有环境下都通过了?
  • 跟踪完成周期的时间、每个环境中的部署持续时间、生产中发现的错误和升级等非常重要。可以通过分析指标和模式来衡量发布的成功或失败。建议不要止步于此,并始终致力于改进以使发布更加成功。

规则 6:
风险分析和缓解计划 –

  • 确保没有签入绕过非生产环境。应该始终从 CI/CD 中干净利落。大的释放与人为干预成反比,较少的人为干预导致稳定的释放。因此,可以通过专注于自动化发布管道来消除这种风险。
  • 始终有一个简单的、注重细节的回滚计划,并确保回滚至少经过一次测试并且应该很快完成。

结论:发布更高质量的产品需要以目标为导向的团队,并且应该努力不断改进他们的流程。单一的解决方案无法神奇地消除不稳定的版本,但采用最佳实践将减少此类不良事件和业务影响。