持续发布是一种方法或软件策略, 代码更改会自动编译、测试和准备发布到生产中。连续的交付使代码部署成为可能在任何时候通过一次单击。在任何环境中, 在每次部署之前, 连续交付都要处理测试过程。它首先运行可能的测试套件, 可以是回归测试、集成测试、负载测试等来测试代码, 如果仅通过测试, 则只在相应的环境中部署代码。我们甚至可以自动化整个过程以确保 不停机的部署, 因此不会涉及停机时间, 因此不会对业务造成影响。

基本上, 持续交付的目标是通过自动化的软件生产线使不同环境的变化持续不断。连续交付允许推出比以前的迭代更好的新功能和功能, 因此在整个组织中逐步整合和细化持续交付原则。这种方法为敏捷软件团队提供快速反馈, 以响应市场需求并迅速消除问题。

为什么公司需要持续发布:

1.产品质量得到提高→ 由于部署是自动化的, 它更频繁地发生, 这让开发团队经常和快速地获得必要的用户建议和反馈。这些反馈给出了在重要特性上工作的想法, 而不浪费时间在其他无关紧要的特性上。这有助于使代码和产品质量得到改进, 并做出正确的产品。

2.对变化反应迅速→ 当我们谈论技术市场的变化时, 公司总是面临挑战。很难跟上技术的变化。如果我们花费太长的时间在任何事情上, 当我们交付产品的时候, 也许有一个机会, 技术要求改变或新的机会已经出现。持续的交付使得在不投入大量时间和金钱的情况下, 对这些变化作出快速反应成为可能。这也使公司对机会作出反应, 寻找新的想法和潜在的新的收入来源。

3.稳定性和可靠性→ 由于部署频繁, 并且以非常小的增量进行更改可减少导致问题的风险。此外, 通过保持较小的变化更容易找到和解决问题, 如果它发生, 因此导致最小化的金钱和时间。通过这样做, 持续发布团队可以维护代码和产品的稳定性和可靠性比以前更好。

4.节省时间→ 如果组织不应用持续交付方法, 那么提供环境、查找 bug 和解决它们是一项非常繁琐的任务。使用 CD 方法可以实现上述步骤的自动化, 因此需要自动化此过程。这样可以节省大量时间, 并使组织能够提供更多的业务价值。

5.战略影响→ 以上各点都给出了由于频繁的用户反馈、早期发布的好处、业务创新、可靠性和稳定性而使产品更好、更高效的组织文化的战略影响。组织想要什么。这就是为什么我们必须持续交付。

实现持续发布的最佳做法:

实现 CD 最大的挑战是找到在最短的时间内在不同环境中自动化构建和测试的最佳方法。持续发布 Pipeline 和编译 Pipeline 使这一切发生。发布 Pipeline 是通过将交付过程分解为各种构建来处理此问题的一种方法。通过提供反馈, 每个构建都增加了信心。Pipeline 分阶段中断交付过程。每个阶段都旨在从不同角度测试代码和功能的质量, 以验证新功能并防止错误。有各种工具可以帮助实现整个过程的自动化。

1.生成编译 Pipeline→ 编译 Pipeline 由在特定环境中执行的各种作业 (Jobs) 组成。编译 Pipeline 中的下一个作业 (Jobs) 将在以前执行的作业成功运行之后执行, 否则 Pipeline 将被中止。工作 (Jobs) 和构建自动化的整个过程由一个名为 Jenkins 的 CI\CD 工具管理。Jenkins 是一个应用程序, 允许连续集成和连续交付的项目, 无论你正在工作的平台。它是一个自由的来源, 可以处理任何类型的构建或持续集成。Jenkins 也可以与其他部署技术集成。

2. 生成发布 Pipeline → 当在环境中自动执行作业时, 它称为构建 Pipeline。当作业的执行在不同的环境中自动完成时, 它被称为发布 Pipeline。以下是持续交付的各阶段:

现在, 代码已准备好部署到生产环境中。

执行上述步骤后, 可以在生产环境中部署该生成。
通过遵循上述方法, 您可以在基础结构中使用持续发布的最佳做法, 以使您的生活更轻松。

我想提一下我特别鸣谢勒凯什·索德马哈詹分享他的广博的知识和帮助我写这个博客。
在我的下一篇博客中, 我将会写下持续的部署最佳实践。

参考文档
http://www.tothenew.com/blog/continuous-delivery-best-practices/


↙↙↙阅读原文可查看相关链接,并与作者交流