View a markdown version of this page

CI/CD パイプラインのリトマステスト - AWS 規範ガイダンス

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

CI/CD パイプラインのリトマステスト

化学において、リトマス試験紙は物質の酸性度を判定するために使用される、特殊な赤色または青色の染料で処理された薄い紙片です。酸は青色のリトマス紙を赤色に変え、塩基は赤色のリトマス紙を青色に変え、中性物質は紙の色にまったく影響を与えません。

リトマス試験紙が酸性度を判定する方法は、物質の pH レベルを測定することによるものです。pH レベルが 8 より大きい場合は酸性、5 未満の場合は塩基性、5 から 8 の間の場合は中性です。同様に、CI/CD リトマステストは、パイプラインの CI/CD レベルを測定するのに役立ちます。

パイプラインが完全に CI/CD であるかどうかをテストする方法
  1. スコア 0 から開始します。

  2. 次の各質問に回答し、はいと回答するたびにスコアに 1 を加算します。

    • 各リポジトリには、環境へのデプロイに使用されるメインブランチが 1 つだけありますか?

    • メインブランチに頻繁にコードをコミットし、機能ブランチが長時間実行されることを避けていますか?

    • パイプラインには単一のエントリポイントがありますか? つまり、パイプラインは各リポジトリから 1 回だけコードをプルしますか?

    • 複数のデプロイ環境がありますか?

    • パイプラインが実行されていないときに、上位環境と下位環境は一般的に同期されていますか?

    • デプロイする前にコードのテストを実行していますか?

    • 次の環境に昇格する前に、環境のテストを実行していますか?

    • パイプラインは失敗の後に完全なロールバックを実行して終了しますか?

    • パイプラインは失敗から回復するときに最初のステップから再開しますか?

    • 本番環境のバグを修正する際のプロセスは機能を本番環境にリリースする際のプロセスと同じですか?

    • コードをデプロイする際に何らかの形式の Infrastructure as Code (IaC) テンプレートを使用していますか?

  3. 次の各質問に回答し、いいえと回答するたびにスコアに 1 を加算します。

    • メインブランチ以外のブランチからデプロイ環境に直接デプロイすることはありますか?

    • 任意のブランチから上位環境または本番環境へ直接デプロイすることはありますか?

    • 下位環境には存在しなかったバグが上位環境で見つかることが頻繁にありますか?

    • デプロイ時に下位環境をバイパスすることはありますか?

    • 本番環境にデプロイする際に、スケジュールされたリリース時間まで待ちますか?

    • 本番環境のコンソールで定期的に更新を行いますか?

    • デプロイを完了するために本番環境のコンソールで実行する必要がある手動のデプロイステップはありますか?

    • 複数のユーザーが本番環境に対する書き込みアクセス権を持っていますか?

    • 6 人以上のユーザーが本番環境に対する書き込みアクセス権を持っていますか?

  4. スコアを 2 で除算します。これがパイプラインの CI/CD スコアになります。

  5. パイプラインの CI/CD スコアを次の表と比較して、パイプラインの CI/CD レベルを判別します。

    CI/CD スコア

    CI/CD レベル

    9.5 以降

    完全な CI/CD

    8~9

    ほぼ CI/CD

    5~7

    普通

    5 未満

    CI/CD ではない

スコアが 8 未満の場合は、次のレベルに段階的に移行する目標を設定することを推奨します。その目標が達成されたら、製品のステークホルダーは、新しい目標を設定すべきかどうか、いつ設定すべきかを評価する必要があります。この取り組みの目的は、必ずしもパイプラインの変更を提唱することではなく、完全な CI/CD デプロイプロセスがどのようなものであるか、そして現在の自分のパイプラインがその領域においてどこに位置しているのかを認識してもらうことです。