翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
OPS06-BP03 安全なデプロイ戦略を採用する
安全な本番環境のロールアウトでは、変化による顧客への影響を最小限に抑えることを目的として、有益な変化の流れを管理します。安全管理は、期待される結果を検証し、変更やデプロイの失敗によって生じた不具合による影響の範囲を制限するための検査メカニズムを提供します。安全なロールアウトには、機能フラグ、ワンボックス、ローリング (canary リリース)、イミュータブル、トラフィック分割、ブルー/グリーンデプロイなどの戦略が含まれる場合があります。
期待される成果: 組織は、安全なロールアウトを自動化する機能を備えた継続的インテグレーションと継続的デリバリー (CI/CD) システムを使用します。チームは適切な安全なロールアウト戦略を使用する必要があります。
一般的なアンチパターン:
-
あなたは、失敗した変更を一度にすべての本稼働環境にデプロイします。その結果、すべての顧客に一斉に影響が及びます。
-
全システムへの同時デプロイで生じた不具合により、緊急リリースが必要となります。すべての顧客への影響を修正するには数日かかります。
-
本番リリースを管理するために、複数のチームの計画と参加が必要です。これにより、顧客のために頻繁に機能を更新する能力が制限されます。
-
あなたは、既存のシステムを変更することにより、変更可能なデプロイを実行します。変更の失敗が判明した後、あなたは、システムを再度変更して古いバージョンを復元することを強いられ、これにより復旧にかかる時間が長くなります。
このベストプラクティスを活用するメリット: 自動デプロイにより、ロールアウトの速度と、顧客に一貫して有益な変更を提供することのバランスを取ることができます。影響を制限することで、コストのかかるデプロイの失敗を防ぎ、チームが失敗に効率的に対応する能力を最大限に高めることができます。
このベストプラクティスを活用しない場合のリスクレベル: 中
実装のガイダンス
継続的デリバリーの失敗は、サービス可用性の低下と、カスタマーエクスペリエンスの低下につながる可能性があります。デプロイの成功率を最大化するには、デプロイの失敗をゼロにすることを目標に、リリースプロセスに end-to-end安全コントロールを実装してデプロイエラーを最小限に抑えます。
お客様事例
AnyCompany 小売業は、ダウンタイムのデプロイを最小限からゼロにすることをミッションとしています。つまり、デプロイ中にユーザーに認識できる影響はありません。これを実現するために、同社はローリングデプロイやブルー/グリーンデプロイなどのデプロイパターン (次のワークフロー図を参照) を確立しました。すべてのチームが、CI/CD パイプラインでこれらのパターンを 1 つ以上採用しています。
CodeDeploy Amazon のワークフロー EC2 | CodeDeploy Amazon のワークフロー ECS | CodeDeploy Lambda のワークフロー |
---|---|---|
|
|
|
実装手順
-
承認ワークフローを使用して、本番環境に移行する際に、一連の本番環境のロールアウト手順を開始します。
-
などの自動デプロイシステムを使用しますAWS CodeDeploy。 AWS CodeDeploy デプロイオプションには、EC2/オンプレミスのインプレースデプロイ、EC2/オンプレミスのブルー/グリーンデプロイ AWS Lambda、および Amazon ECS (前のワークフロー図を参照) が含まれます。
-
Amazon Aurora や Amazon などのデータベースには、ブルー/グリーンデプロイを使用しますRDS。
-
Amazon CloudWatch、 AWS CloudTrail、および Amazon Simple Notification Service (Amazon SNS) イベント通知を使用してデプロイをモニタリングします。
-
機能テスト、セキュリティテスト、リグレッションテスト、統合テスト、負荷テストといった、デプロイ後の自動テストを実行します。
-
デプロイ問題をトラブルシューティングします。
実装計画に必要な工数レベル: 中
リソース
関連するベストプラクティス:
関連ドキュメント:
関連動画:
関連する例: