什么是持续交付?

已完成

在此,你将跟随 Tailspin 团队讨论如何使用持续交付 (CD) 管道为即将进行的发布提供帮助。

Tailspin 团队在其生成过程方面开始渐入佳境。 它们在 Azure Pipelines 上运行了一个自动化过程,这意味着生成环境稳定。 Amita 立即知道什么时候需要测试一个文物。 她发现 bug 更少,因为 Andy 和 Mara 已开始添加单元测试和代码质量测试。 生活看起来不错。 让我们了解一下团队的情况。

上午会议

团队正在会议室里等待产品经理欧文,他想与他们交谈。 他们期待着告诉他他们的进步。 但是当欧文走进来时,他看起来并不快乐。 他立即开始说话。

欧文: 我今天上午与管理团队举行了会议。 他们想知道为什么我们花了这么长时间才发布我们的游戏和网站。 我们最亲密的竞争对手获得新功能和新游戏的速度比我们快得多。 我们需要加快工作速度。 我不只是在提醒你们。 我通知所有团队。 我们可以做些什么来帮助团队更快地部署?

安 迪: 这有点突然,但我们有点领先于你。 我们一直在自动化如何构建网站。 也许现在是时候将自动化扩展到发布过程了。

欧文: 你会怎么做?

玛拉: 我们使用 Azure Pipelines 创建了自动化生成管道。 它生成 Amita 可以测试的工件。 我们还可以生成一个持续交付 (CD) 管道

欧文: 什么是 CD 管道?

Mara 开始讲解,但被 Irwin 的手机发出的嘟嘟声打断了。 欧文读了一条短信并低声嘟囔。

欧文: 我很抱歉,但这很紧迫。 我得走了。 为什么你们不弄清楚这个 CD 相关的问题,然后尽快答复我?

安迪环顾他的团队。

安 迪: 咖啡?

安迪和团队的其他成员前往咖啡店,制定一个计划。

什么是持续交付?

团队正在喝咖啡时开会,探讨如何设置持续交付工作流。

安迪:Mara,你能告诉我们你对持续交付的一些认识吗?

玛拉: 对我来说,CD 和 DevOps 是分不开的。 请记住,我们将 DevOps 定义为人员、流程和产品的联合,以便持续向最终用户交付价值。

CD 本身是一组过程、工具和技术,可实现软件的快速、可靠和持续交付。 因此,CD 不仅仅与设置管道有关,尽管这部分很重要。 CD 是关于设置工作环境,其中:

  • 我们有一个可靠且可重复的过程,用于发布和部署软件。
  • 我们尽可能地自动化处理。
  • 我们不会推迟做一些困难或痛苦的事情:相反,我们更频繁地这样做,以便我们弄清楚如何使其例行公事。
  • 我们对所有内容进行源代码管理。
  • 我们都同意 完成 意味着 发布
  • 我们将质量构建到流程中。 质量从来不是事后所想的。
  • 我们都对发布过程负责。 我们不再在孤岛工作。
  • 我们总是努力改进。

我们已经将其中许多想法付诸实施,我们都同意他们改进了我们的工作方式。 CD 是我们已经开始的内容的扩展。

为什么需要持续交付?

CD 可帮助软件团队快速为客户提供可靠的软件更新。 CD 还有助于确保客户和利益相关者快速获得最新的功能和修复。

我们继续倾听团队对此内容的讨论。

安 迪: 谢谢,马拉 我们需要CD,因为众所周知,世界已经改变。 新功能的发布速度正在加快。 需要立即提供更新和 bug 修复。 不仅仅是我们的管理想要加快发布速度。 管理只是对我们的客户的需求做出反应。 如果客户无法从我们那里得到他们想要的东西,他们会去别的地方。

提姆: 同意! 我迫不及待地想开始。

安 迪: 谢谢,大家 我打算建议马拉和我一起创建一个简单的概念验证(POC)。 我认为,如果可以看到 CD 管道的实际运作,一切都会更容易理解。

Amita: 祝你好运,你两个

团队留下安迪和马拉去处理细节。

持续交付与右键单击发布相比如何?

许多开发工具提供了将应用程序直接发布到某些目标环境的方法,例如Microsoft Internet Information Services(IIS)或 Azure。 例如,可以使用 Visual Studio 将 ASP.NET Core 应用发布到 Azure。 此过程有时称为 右键单击发布

右键单击发布是快速生成原型的好方法。 例如,可以右键单击将应用程序发布到 Azure,以便与团队共享新想法。 但是,此方法有限制。

持续交付提供了一种一致的方式,使你和你的团队能够在每次签入代码时持续测试、部署和监视应用程序。 右键单击发布应用程序时,不能保证代码经过正确测试,或者在实际使用下的行为与预期一样。

在此简短视频中,Microsoft云大使 Abel Wang 解释了更多内容。

持续交付与持续部署相比如何?

在 DevOps 社区里,可能会听到持续交付持续部署的术语。 这些术语是否意味着同样的事情? 在此简短视频中,Abel 解释了区别。

可以使用哪些持续交付工具?

会议结束后,安迪和马拉计划后续步骤。 他们使用 Azure Pipelines 生成其软件。 他们希望考虑哪些工具(包括 Azure Pipelines)可用于帮助他们完成发布过程。

玛拉: 要从何处开始?

安 迪: 首先,我们需要就发布管理工具达成一致。 确保我们选择的工具:

  • 支持我们的版本控制系统。
  • 可以部署到多个环境,以便我们可以测试和验证工作。
  • 可以轻松定义部署任务。
  • 易于扩展。

玛拉: Azure DevOps 与其他几个持续集成(CI)和 CD 解决方案集成。 许多解决方案都在那里,我们不投资其中任何解决方案。 如果进行了投资,那么使用那个解决方案就很有意义。 常用的 CI 和 CD 系统包括 Jenkins、Circle CI、GitLab、Travis CI 和 Azure Pipelines。

这些工具具有相似之处,但其中每个工具都有特定的优势。 其中一些工具是开源的,有些是免费的,有些是你需要付费的。 它们还提供与其他软件工具的内置集成。

例如,Jenkins 是开源的。 它有许多插件,许多公司使用它。 可以在云或本地运行 Circle CI。 我想我们需要自定义它。 GitLab 是整个软件开发生命周期的单个应用程序。 它可能比我们现在想要的要大。 我们可以继续使用 Azure Pipelines。

下面是一个简短视频,其中 Abel 讨论如何使用 DevOps 最佳做法将代码部署到 Azure。

玛拉: 我的投票是继续使用 Azure Pipelines。

安 迪: 我同意。 到目前为止,Azure Pipelines 对我们非常出色,我们不必学习其他新技术。

玛拉: 伟大。 让我们开始了解管道详细信息。

Andy 和 Mara 前往会议室来计划 CD 管道。