

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

# 构建
<a name="build"></a>

在 DevOps 战略的构建阶段，你需要构建技术基础架构，培养向协作、自动化和持续改进的文化转变。这个关键阶段涉及工具和管道的实际编排。它包括以下内容：
+  DevOps 工具链的设置
+ 建立联系
+ 创建通过应用程序部署来指导代码开发的管道

它不仅包括构建软件的技术方面，还包括开发文化向协作、自动化和持续改进的转变。通过坚持持续集成和持续交付 (CI/CD) 原则，构建阶段旨在简化开发和部署流程，提高软件质量，并加快现代化大型机应用程序的部署。 AWS

下图显示了部署管道的不同阶段。每个阶段都包含在现代化大型机工作负载部署过程中要实施的必需步骤和建议步骤。



![每个阶段都有一列的图表。](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/strategy-devops-aws-mainframe-modernization/images/devops-modernization-pipeline.png)


现代化的大型机工作负载部署管道阶段包括以下各阶段：
+ **源阶段** — 必需的步骤包括配置、依赖项清单、静态资产、基础架构源、测试源和应用程序源。推荐的步骤是数据库源。
+ **构建阶段** — 必需的步骤包括软件包构件、静态应用程序安全测试、机密检测、代码质量、单元测试和构建代码。推荐的步骤是软件材料清单和软件组成分析。
+ **测试（测试版）阶段** — 必需的步骤是验收测试和集成测试。推荐的步骤包括部署软件、部署数据库和启动环境。
+ **测试 (gamma) 阶段** — 必需的步骤包括综合测试、监控和记录、部署软件以及启动环境。推荐的设置包括动态应用程序安全测试 (DAST)、弹性测试、性能测试和部署数据库。
+ **生产阶段** — 必需的步骤是综合测试和渐进式部署。推荐的步骤是部署数据库和手动批准。

## 持续集成
<a name="continuous-integration"></a>

持续集成 (CI) 是一种软件开发实践，开发人员定期对代码进行小幅修改，然后将其集成到代码存储库的可发布分支中。新集成的代码以一致且可重复的方式自主构建、测试和验证。CI 使开发人员能够迅速收到反馈，在开发生命周期的早期阶段发现潜在问题，并在复杂性和成本上升之前解决这些问题。

持续集成可以极大地加速和简化 AWS 上的大型机现代化流程。CI 原则适用于以下领域：
+ **频繁的代码集成** — 在 CI 管道中，代码更改会频繁地集成到共享存储库中，通常是一天多次。这可以促进协作，并确保整个开发团队使用最多的 up-to-date代码库。CI 还可以帮助管理代码更改和跟踪修改历史记录。基于 Git 的工具（例如 AWS CodeCommit GitLab、和） GitHub 可以帮助频繁地进行代码集成和协作。来自这些 git 存储库的代码可以通过诸如 [ OpenText Changeman ZMF 的 Git 连接器之类的连接器](https://www.microfocus.com/en-us/products/changeman-zmf/overview)同步回大型机。
+ **自动测试** — CI 鼓励为大型机应用程序创建自动测试套件。这样可以确保在为云端重构代码时，它仍然可以正常运行且没有错误。自动测试可以包括单元测试和集成测试。大型机应用程序可以使用诸如[ZUnit](https://www.ibm.com/docs/en/developer-for-zos/16.0?topic=samples-zunit-zos-automated-unit-testing-framework)之类的框架进行单元测试。
+ **早期问题检测** — 通过在每次提交代码时运行自动测试和静态代码分析工具，CI 系统可以快速检测并标记任何问题。这有助于开发团队在开发周期的早期解决问题，从而降低迁移过程中出现重大挫折的风险。诸如 SonarQube 和 Veracode 之类的工具可以帮助对大型机 COBOL 和现代化 Java 代码进行早期问题检测和代码质量。
+ **快速反馈** — CI 系统向开发人员提供有关其代码质量的快速反馈，从而持续改进现代化过程。

## 持续交付
<a name="continuous-delivery"></a>

持续交付 (CD) 是在持续集成 (CI) 之后进行的。在 CD 中，通过编译验证的代码更改会自动部署到其他环境，包括生产环境，只需最少的人为干预。CD 有助于确保以快速、可靠的方式部署新功能、修复和改进。CD 缩短了交货时间，提高了部署过程的整体效率。当您使用 CD 自动执行交付过程时，系统会处理将更改部署到各种环境的耗时且容易出错的过程，而团队则专注于开发和完善代码。

CD AWS 通过自动化部署过程来促进现代化大型机应用程序向的过渡。CD 原则适用于以下领域：
+ **自动部署** — 为了减少迁移过程中手动干预和人为错误的可能性，CD 自动将代码更改部署到目标环境。诸如 AWS CodeDeploy Jenkins 和 IBM Urban 之类的工具 CodeDeploy 可以帮助逐步将工件部署到不同的环境（例如开发、测试、生产）。
+ **持续部署** — 持续交付和持续部署之间的区别在于需要手动批准才能更新到生产环境。在持续部署中，无需明确批准即可自动进行生产。
+ **快速反馈循环** — 自动部署可提供有关代码更改是否准备好部署的快速反馈。此反馈循环可确保只部署经过全面测试和验证的代码。
+ **频繁的发布周期** — 通过使用 CD，您的组织可以更频繁地发布新功能、增强功能和现代化代码。这种敏捷性可以帮助企业适应不断变化的需求并保持竞争力。
+ **回滚功能** — CD 管道应包括回滚机制。如果 AWS 环境中存在问题或意外行为，团队可以使用这些机制恢复到应用程序的先前版本。
+ **基础设施即代码** — CD 可以与 HashiCorp Terraform 等 AWS CloudFormation 基础设施即代码 (IaC) 工具结合使用，以一致地定义和配置基础架构。一致的配置有助于确保 AWS 环境与所需的配置相匹配。