OPS06-BP02 テストデプロイ - オペレーショナルエクセレンスの柱

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

OPS06-BP02 テストデプロイ

本番環境と同じデプロイ設定、セキュリティ管理、手順、プロシージャを使用して、本番稼働前にリリース手順をテストします。ファイル、設定、サービスの検査など、デプロイされたすべての手順が期待どおりに完了することを確認します。さらに、機能テスト、統合テスト、負荷テストによってすべての変更をテストして、ヘルスチェックなどのモニタリングも行います。これらのテストを行うことで、デプロイの問題を早期に特定し、本番稼働前に計画を立てて問題を軽減するよう対応できます。

すべての変更をテストするための一時的な並列環境を作成できます。Infrastructure as Code (IaC) を使用してテスト環境のデプロイを自動化することで、必要な作業量を減らし、安定性と一貫性を確保すると共に、より迅速に機能を提供できます。

期待される成果: 組織が、デプロイのテストを含むテスト駆動開発文化を採用します。これにより、チームはリリースの管理ではなくビジネス価値の提供に集中できます。チームはデプロイのリスクを早期に特定し、適切な緩和策を決定できます。

一般的なアンチパターン:

  • 未テストのデプロイで、トラブルシューティングとエスカレーションを必要とする問題が頻発します。

  • リリースには、既存のリソースを更新する Infrastructure as Code (IaC) が含まれています。IaC が正常に実行されるか、またはリソースに影響を及ぼすか確信がありません。

  • あなたは、新しい機能をアプリケーションにデプロイします。しかし、意図したとおりに機能せず、影響を受けたユーザーからの報告を受けるまで問題を認識できません。

  • あなたは、証明書を更新します。証明書を間違ったコンポーネントにインストールしてしまいますが、検出はされないままです。そのため、ウェブサイトへの安全な接続が確立されず、ウェブサイトの訪問者に影響が及びます。

このベストプラクティスを活用するメリット: デプロイ手順とデプロイによって生じる変更を本番稼働前に十分にテストすることで、デプロイ手順による本番環境への潜在的な影響を最小限に抑えることができます。これにより、変更の提供を遅らせることなく、本番リリースでの自信が高まり、運用サポートが最小限に抑えられます。

このベストプラクティスを活用しない場合のリスクレベル:

実装のガイダンス

デプロイプロセスをテストすることは、デプロイによって生じる変更をテストすることと同じくらい重要です。そのためには、本番環境にできるだけ近い本番稼働前の環境でデプロイ手順をテストします。その結果、不完全または不正確なデプロイ手順、または設定ミスなどの一般的な問題を、本番リリース前に検出できます。さらに、復旧手順をテストすることもできます。

お客様事例

継続的統合と継続的デリバリー (CI/CD) パイプラインの一環として、 AnyCompany Retail は、本番環境のような環境で、お客様のインフラストラクチャとソフトウェアの更新をリリースするために必要な定義されたステップを実行します。このパイプラインは、デプロイ前にリソースのドリフトを検出する (IaC 外で実行されたリソースへの変更を検出する) 事前チェックと、IaC の開始時に実行されるアクションの検証で構成されます。ロードバランサーに再登録する前に、特定のファイルや設定が整っていること、サービスが実行中の状態にあって、ローカルホストでのヘルスチェックに正しく応答していることを確認するなど、デプロイ手順が検証されます。さらに、すべての変更は、機能テスト、セキュリティテスト、リグレッションテスト、統合テスト、負荷テストなど、多くの自動テストにフラグを立てます。

実装手順

  1. インストール前のチェックを実行して、本番環境をミラーリングした本番稼働前の環境を設定します。

    1. ドリフト検出を使用して、 の外部でリソースが変更されたときを検出します AWS CloudFormation。

    2. 変更セットを使用して、スタック更新のインテントが、変更セットの開始時に AWS CloudFormation 実行するアクションと一致することを確認します。

  2. これにより、AWS CodePipeline の手動承認ステップがトリガーされ、本番稼働前の環境へのデプロイが認可されます。

  3. AWS CodeDeploy AppSpec ファイルなどのデプロイ設定を使用して、デプロイと検証の手順を定義します。

  4. 必要に応じて、AWS CodeDeploy 他の AWS サービスと統合するか、パートナー製品およびサービス AWS CodeDeploy と統合します

  5. Amazon CloudWatch、 AWS CloudTrail、および Amazon SNSイベント通知を使用してデプロイをモニタリングします

  6. 機能テスト、セキュリティテスト、リグレッションテスト、統合テスト、負荷テストなど、デプロイ後の自動テストを実行します。

  7. デプロイ問題をトラブルシューティングします。

  8. 上記の手順の検証が成功すると、本番環境へのデプロイを承認するための手動承認ワークフローが開始されます。

実装計画に必要な工数レベル:

リソース

関連するベストプラクティス:

関連ドキュメント:

関連動画:

関連する例: