亚马逊AWS官方博客

新增 – 部署管道参考架构和参考实施

今天我们为企业级部署管道推出新的参考架构和一系列参考实施。部署管道可自动构建、测试和部署应用程序或基础结构至您的 AWS 环境。将工作负载部署到云端时,拥有部署管道是提高敏捷性和缩短上市时间的关键。

当我们在会议或在社交媒体上交谈时,我经常听到我们的文档和教程是开始学习新的服务或概念时的绝佳资源。然而,当您想要扩展使用或有复杂的企业级使用案例时,您往往缺乏可供深入研究的资源。

这就是为什么多年来我们创建了成百上千个基于现实生活使用案例的参考架构安全参考架构。今天我们在此基础上增添了新的参考架构。

借助在 Amazon 学到的最佳实践和经验教训及数百个客户项目,我们创建了这一部署管道参考架构和实施。它们远远超出了经典的“Hello World”示例:它们记录了如何在多个环境、多个 AWS 账户、多个区域、手动批准、自动测试、自动代码分析等条件下构架和实施复杂的部署管道。当您想通过 DevOps 和持续交付提高向客户交付软件的速度时,这个新的参考架构能向您展示如何通过合并 AWS 服务进行协同工作。它们记录了架构的必备和可选组件。

拥有架构文档和图表很棒,但拥有实施会更好。参考架构中的每个管道类型都至少有一个参考实施。其中一个参考实施使用 AWS Cloud Development Kit(AWS CDK)应用程序在账户上部署参考架构。可以用它来开始研究或自定义参考架构以满足您的特定要求。

您可以在 https://pipelines.devops.aws.dev 找到此参考架构及其实施。

部署管道参考架构

让我们来部署一个参考实施
新的部署管道参考架构演示了如何构建管道以部署 Java 容器化应用程序和数据库。它有两个参考实施。我们正在研究其他管道类型,用以部署 Amazon EC2 AMI、管理账户实例集以及管理应用程序的动态配置。

示例应用程序是使用 SpringBoot 开发的。它在 Amazon 提供的 OpenJDK 发行版 – Corretto 基础上运行。该应用程序使用 CDK 打包,并部署在 AWS Fargate 上。但是应用程序在此并不重要;您可以用自己的应用程序来替换。重要的是基础结构组件和用来部署应用程序的管道。对于这种管道类型,我们提供了两个参考实施。一个使用我们在 2022 年 re:Invent 大会上宣布推出的新服务 – Amazon CodeCatalyst 来部署应用程序,另一个使用 AWS CodePipeline。我在这篇博客文章中选择它来部署。

管道使用 AWS CodeBuild 来开始构建应用程序。它运行单元测试,还运行 Amazon CodeGuru 来审核代码质量和安全性。最后,运行 Trivy 来检测其他安全问题,例如应用程序依赖项中的已知漏洞。构建成功后,管道在三个环境中部署应用程序:beta 环境、gamma 环境和生产环境。它在 beta 环境中的单个区域内部署应用程序。管道在 beta 环境中运行端到端测试。所有测试都必须成功才能继续在 gamma 环境中进行部署。Gamma 环境使用两个区域来托管应用程序。在 gamma 环境中部署后,需要获得手动批准才能在生产环境中部署。最后,管道在生产环境中的六个区域内部署应用程序,分三次部署,每次部署两个区域。

部署管道参考架构

我需要四个 AWS 账户来部署这个参考实施:一个用于部署管道和工具,另外三个分别用于 beta 环境、gamma 环境和生产环境。总体而言有两个部署步骤:首先为所有四个账户引导 CDK,然后在工具链账户中创建管道本身。您必须安排 2-3 小时来准备账户、创建管道和完成首次部署。

管道创建后,它会通过 AWS CodeCommit 中的资源来构建、测试和部署示例应用程序。您可以提交和推送对应用程序源代码的更改,看它们在管道步骤中是如何再次完成的。

我的同事 Irshad Buch 帮我在我的账户上试用了管道。他写了一份详细的自述文件,其中包含详尽的分步说明,以引导您完成相同的操作。详细描述此实施的参考架构可在这个新网页上找到。应用程序源代码、用于部署应用程序的 AWS CDK 脚本,以及用于创建管道本身的 AWS CDK 脚本都可在 AWS 的 GitHub 上找到。欢迎您投稿报告问题或提出改进建议

现已推出
部署管道参考架构及其参考实施现已免费提供。如果您决定部署参考实施,我们将对它在您账户上创建的资源收取费用。您可以使用提供的 AWS CDK 代码详细说明在您的 AWS 账户上部署此管道。立即试用!

— seb