CI/CD について理解する - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

CI/CD について理解する

継続的インテグレーションと継続的デリバリー (CI/CD) は、ソフトウェアリリースのライフサイクルを自動化するプロセスです。場合によっては、DCI/CD では次のような意味もあります。配備。両者の違い継続的デリバリーそして継続的デプロイ実稼働環境への変更をリリースしたときに発生します。継続的デリバリーでは、本番環境への変更を進める前に手動による承認が必要です。継続的デプロイは、パイプライン全体を通して流れが途切れることがなく、明示的な承認も必要ないのが特徴です。この戦略では一般的な CI/CD の概念が説明されているため、ここで紹介する推奨事項と情報は、継続的デリバリーと継続的デプロイのどちらのアプローチにも適用できます。

CI/CD は、コミットから本番環境に新しいコードを取り込むために従来必要だった手動プロセスの大部分またはすべてを自動化します。CI/CD パイプラインには、ソース、ビルド、テスト、ステージング、プロダクションの各段階が含まれます。各段階で、CI/CD パイプラインはコードのデプロイやテストに必要なインフラストラクチャをプロビジョニングします。CI/CD パイプラインを使用すれば、開発チームはコードに変更を加え、自動的にテストしてデプロイメントにプッシュできます。

基本的な CI/CD プロセスを復習してから、故意または無意識のうちに、完全な CI/CD から逸脱する方法について説明しましょう。次の図は、CI/CD の段階と各段階におけるアクティビティを示しています。

CI/CD プロセスの 5 つのステージと、それぞれのアクティビティと環境です。

継続的インテグレーションについて

継続的インテグレーションは、の Git リポジトリなどのコードリポジトリで行われます。AWS CodeCommit。1 つのメインブランチをコードベースの信頼できる情報源として扱い、機能開発のために存続期間の短いブランチを作成します。フィーチャーを上位環境にデプロイする準備ができたら、フィーチャーブランチをメインブランチに統合します。フィーチャーブランチは上位環境に直接デプロイされることはありません。詳細については、このガイドの「トランクベースのアプローチ」を参照してください。

継続的インテグレーションプロセス

  1. 開発者はメインブランチから新しいブランチを作成します。

  2. 開発者はローカルで変更、ビルド、テストを行います。

  3. 変更の準備が整うと、開発者は次のものを作成します。プルリクエスト(GitHub メインブランチを目的地とするドキュメント。

  4. コードが見直されます。

  5. コードが承認されると、メインブランチに統合されます。

継続的デリバリーについて

継続的デリバリーは、開発環境や本番環境など、隔離された環境で行われます。各環境で発生するアクションは異なる場合があります。多くの場合、最初のステージの 1 つを使用して、処理を進める前にパイプライン自体を更新します。デプロイの最終結果は、各環境が最新の変更で更新されることです。ビルドとテストを行う開発環境の数もさまざまですが、少なくとも 2 つの開発環境を使用することをお勧めします。パイプラインでは、各環境は重要度の高い順に更新され、最後に最も重要な環境である本番環境が続きます。

継続的デリバリープロセス

パイプラインの継続的デリバリー部分は、ソースリポジトリのメインブランチからコードを取り出し、ビルドステージに渡すことから始まります。リポジトリのコードとしてのインフラストラクチャ (IaC) ドキュメントには、各段階で実行されるタスクの概要が記載されています。IaC ドキュメントの使用は必須ではありませんが、IaC のサービスやツールには次のようなものがあります。AWS CloudFormationまたはAWS Cloud Development Kit (AWS CDK)、を強くお勧めします。最も一般的な手順は次のとおりです。

  1. ユニットテスト

  2. コードビルド

  3. リソースプロビジョニング

  4. 統合テスト

パイプラインのいずれかの段階でエラーが発生したり、テストが失敗したりすると、現在のステージは前の状態に戻り、パイプラインは終了します。その後の変更はコードリポジトリで開始し、完全な CI/CD プロセスを経る必要があります。