継続的インテグレーションのための実用最小限のパイプラインから開始する
継続的デリバリーへ向けた組織の歩みは、実用最小限のパイプライン (MVP) から始まります。「継続的インテグレーションと継続的デリバリーの実装」で説明したように、チームは、コードスタイルのチェックやデプロイのない単一のユニットテストを実行するパイプラインの実装などの非常にシンプルなプロセスから開始することができます。
主なコンポーネントは、継続的デリバリーのオーケストレーションツールです。このパイプラインの構築を支援するために、Amazon は AWS CodeStar
AWS CodeStar 設定ページ
AWS CodeStar では、AWS CodePipeline、AWS CodeBuild、AWS CodeCommit、AWS CodeDeploy を使用して、セットアッププロセス、ツール、テンプレート、ダッシュボードが統合されています。AWS CodeStar は、AWS でアプリケーションを迅速に開発、構築、およびデプロイするために必要なすべてを提供します。これにより、お客様のコードのリリースの高速化が可能になります。既に AWS マネジメントコンソールに精通し、より高いレベルの制御を求めるお客様は、最適なデベロッパーツールを手動で設定し、必要に応じて個々の AWS サービスをプロビジョンできます。
AWS CodeStar ダッシュボード
AWS CodePipeline は、迅速かつ信頼性の高いアプリケーションおよびインフラストラクチャの更新のために、AWS CodeStar または AWS マネジメントコンソールを通じて使用できる CI/CD サービスです。AWS CodePipeline は、お客様の定義するリリースプロセスモデルに基づいて、コードの変更があるたびに、コードの構築、テスト、デプロイを実施します。これにより、機能と更新をすばやく、信頼性の高い方法でデリバリーできます。GitHub などの広く利用されているサードパーティーサービス用の構築済みプラグインを使用したり、独自のカスタムプラグインをリリースプロセスの任意のステージに統合したりすることで、エンドツーエンドソリューションを簡単に構築できます。AWS CodePipeline では、実際に使用した分に対してのみお支払いいただきます。前払い金や長期契約はありません。
AWS CodeStar と AWS CodePipeline のステップは、 ソース、ビルド、ステージング、および本稼働の CI/CD ステージに直接マッピングされます。継続的デリバリーが望ましいですが、ソースレポジトリをチェックしてビルドアクションを実行する単純な 2 ステップパイプラインから開始することができます。
AWS CodePipeline — ソースステージとビルドステージ
AWS CodePipeline では、ソースステージは GitHub、AWS CodeCommit、および Amazon Simple Storage Service (Amazon S3) からの入力を受け入れることができます。ビルドプロセスの自動化は、継続的デリバリーを実装して継続的デプロイに移行するための重要な最初のステップです。ビルドアーティファクト作成への人的関与を排除することにより、チームの負担を軽減し、手作業のパッケージングによるエラーを最小限に抑え、消費可能なアーティファクトのより頻繁なパッケージ化を開始できます。
AWS CodePipeline は、フルマネージド型ビルドサービスである AWS CodeBuild とシームレスに連携するため、コードをパッケージ化しユニットテストを実行するパイプラインに容易にビルドステップを設定できます。AWS CodeBuild により、ビルドサーバーのプロビジョン、管理、またはスケールが不要になります。AWS CodeBuild では、スケールが継続的に行われ、複数のビルドが同時に実行されます。ビルドの実行までキューを待つ必要はありません。AWS CodePipeline は、Jenkins、Solano CI、TeamCity などのビルドサーバーとも統合されています。
例えば、以下のビルドステージでは、3 つのアクション (ユニットテスト、コードスタイルチェック、およびコードメトリクス収集) が並行して実行されます。AWS CodeBuild を使用することで、ロードを処理するためにビルドサーバーを構築またはインストールする必要なく、これらのステップを新しいプロジェクトとして追加できます。
AWS CodePipeline — ビルド機能
図 AWS CodePipeline — ソースおよびビルドステージに示されているソースおよびビルドステージは、サポートプロセスとオートメーションとともに、継続的インテグレーションへのチーム移行を支援します。この成熟度では、デベロッパーはビルドおよびテスト結果に定期的に注意を払う必要があります。また、デベロッパーは健全なユニットテスト基盤を成長させ、保守する必要もあります。これにより、チーム全体の CI/CD パイプラインへの信頼が増し、さらなる導入が支持されるようになります。
AWS CodePipeline ステージ