SUS06-BP03 ビルド環境の利用率を高める
リソースの使用率を上げて、ワークロードを開発、テスト、構築します。
一般的なアンチパターン:
-
ビルド環境を手動でプロビジョニングおよび停止している。
-
テスト、ビルド、リリースアクティビティとは無関係にビルド環境を実行し続けている (例えば、開発チームメンバーの就業時間外に環境を実行している)。
-
ビルド環境にリソースを過剰プロビジョニングしている。
このベストプラクティスを活用するメリット: ビルド環境の使用率を上げることで、構築者が効率的に開発、テスト、構築できるようにリソースを配分しながら、クラウドワークロード全体の効率を上げることができます。
このベストプラクティスが確立されていない場合のリスクレベル: 低
実装のガイダンス
オートメーションと Infrastructure as Code を使用して、必要に応じてビルド環境を起動し、使用しないときは停止します。一般的なパターンとしては、開発チームのメンバーの勤務時間と重なるように可用性期間のスケジュールを設定することがあります。テスト環境は、本稼働構成とよく似たものにする必要があります。ただし、バーストキャパシティ、Amazon EC2 スポットインスタンス、自動スケールするデータベースサービス、コンテナ、サーバーレステクノロジーを備えたインスタンスタイプを使用して、開発およびテストのキャパシティを使用に合わせて調整できる機会を探ります。データ量を、テスト要件を満たす量だけに制限します。本稼働データをテストに使用する場合は、データを移動するのではなく、本稼働環境とデータを共有できる可能性を探ります。
実装手順
-
Infrastructure-as-Code を使用してビルド環境をプロビジョニングします。
-
オートメーションを使用して開発環境とテスト環境のライフサイクルを管理し、ビルド用リソースの効率を最大化します。
-
開発環境とテスト環境を最大限に活用する戦略を使用します。
-
最小限に実行可能である代表的な環境を使用して、潜在的な改善を開発およびテストします。
-
可能な限り、サーバーレス技術を利用します。
-
オンデマンドインスタンスを使用して開発者のデバイスを補完します。
-
バーストキャパシティ、スポットインスタンス、その他のテクノロジーを備えたインスタンスタイプを使用して、ビルドキャパシティを使用状況に合わせて調整します。
-
踏み台ホストのフリートをデプロイするのではなく、ネイティブなクラウドサービスを採用して、インスタンスシェルのアクセスを保護します。
-
ビルドジョブに合わせてビルドリソースを自動的にスケールします。
-
リソース
関連するドキュメント:
関連動画:
-
Continuous Integration Best Practices
(継続的インテグレーションのベストプラクティス)