

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# DevOps 管道示例
<a name="concepts-devops-example"></a>

**以管道为例，两阶段 DevOps 管道可能有一个名为 Source 的源阶段和一个名为 **Pro** d 的第二阶段。**在此示例中，管道使用最新更改来更新应用程序，并持续部署最新结果。在部署最新的应用程序之前，管道会构建并测试 Web 应用程序。在此示例中，一组开发人员在名为的 GitHub 存储库中设置了基础架构模板和一个 Web 应用程序的源代码 MyRepository。

![\[具有示例阶段和操作的管道。\]](http://docs.aws.amazon.com/zh_cn/codepipeline/latest/userguide/images/pipeline-elements-workflow-application.png)


例如，开发人员将修复推送到 Web 应用程序的索引页面，并将发生以下情况：

1. 应用程序源代码保存在配置为管道中 GitHub 源操作的存储库中。当开发者将提交推送到存储库时， CodePipeline 会检测到推送的更改，然后从**源阶段**开始执行管道。

1.  GitHub 源操作成功完成（也就是说，最新更改已下载并存储到该执行所特有的构件存储桶中）。然后， GitHub 源操作生成的*输出构件*（即存储库中的应用程序文件）将用作*输入工件*，供下一阶段的操作处理。

1. 管道执行从**源阶段**转换到**生产阶段**。**Prod Stag** e 中的第一个操作运行在管道中创建 CodeBuild 并配置为生成操作的生成项目。构建任务提取构建环境映像，然后在虚拟容器中构建 Web 应用程序。

1. **Prod Stag** e的下一个操作是在管道中创建 CodeBuild 并配置为测试操作的单元测试项目。

1. 单元测试的代码接下来由**生产阶段**中的部署操作处理，该操作将应用程序部署到生产环境。部署操作成功完成后，该阶段的最后一个操作是在管道中创建 CodeBuild 并配置为测试操作的集成测试项目。测试操作调用在 Web 应用程序上安装和运行测试工具（如链接检查器）的 shell 脚本。成功完成后，输出是一个构建 Web 应用程序和一组测试结果。

开发人员可以向管道添加操作，以便在构建并针对每个更改测试应用程序后，对其进行部署或进一步测试。

有关更多信息，请参阅 [管道执行的工作原理](concepts-how-it-works.md)。