

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

在 DevOps 策略的建置階段，您會建構技術基礎設施，並培養協作、自動化和持續改進的文化轉移。此樞紐階段涉及工具和管道的實際協調。它包含下列項目：
+ DevOps 工具鏈的設定
+ 連線的建立
+ 建立透過應用程式部署引導程式碼開發的管道

它不僅包含建置軟體的技術層面，還包含開發文化轉向協同合作、自動化和持續改進。透過遵循持續整合和持續交付 (CI/CD) 原則，建置階段旨在簡化開發和部署程序、改善軟體品質，並加速在 上部署現代化大型主機應用程式 AWS。

下圖代表部署管道的不同階段。每個階段都包含在現代化大型主機工作負載部署旅程中實作的必要和建議步驟。



![每個階段都有資料欄的圖表。](http://docs.aws.amazon.com/zh_tw/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 會自動將程式碼變更部署到目標環境。Jenkins AWS CodeDeploy和 IBM Urban CodeDeploy 等工具可協助將成品逐步部署到不同的環境 （例如 Dev、Test、Prod)。
+ **持續部署** – 持續交付與持續部署之間的差異在於存在手動核准以更新至生產環境。在持續部署中，生產會自動執行，無需明確核准。
+ **快速意見回饋迴圈** – 自動化部署可針對程式碼變更是否已準備好進行部署提供快速意見回饋。此回饋迴圈可確保只會部署經過徹底測試和驗證的程式碼。
+ **頻繁發行週期** – 透過使用 CD， 您的組織可以更頻繁地發行新功能、增強功能和現代化程式碼。這種敏捷性有助於企業適應不斷變化的需求，並保持競爭。
+ **回復功能** – CD 管道應包含回復機制。如果 AWS 環境中存在問題或意外行為，團隊可以使用這些機制還原到舊版的應用程式。
+ **基礎設施即程式碼** – CD 可與基礎設施即程式碼 (IaC) 工具結合，例如 AWS CloudFormation 或 HashiCorp Terraform，以一致地定義和佈建基礎設施。一致的佈建有助於確保 AWS 環境符合所需的組態。