環境
継続的デリバリー プロセスを使用して、新しい価値を迅速かつ安全に運用環境に提供します。 小さな変更を頻繁に配信できるため、問題のリスクが軽減されます。
その他の要因は、複数の配信/デプロイ環境の導入など、"運用環境へのデプロイの問題" に影響します。 マルチ環境アプローチを使用すると、コードをより高速かつ頻繁にビルド、テスト、リリースすることで、デプロイをできるだけ単純にすることができます。 手動によるオーバーヘッドと手動リリースのリスクを取り除き、代わりにさまざまな環境を対象とするマルチステージ プロセスを使用して開発を自動化できます。
一般的なマルチ環境アーキテクチャには、次の 4 つの層が含まれています。
- 開発
- テスト
- ステージング
- Production
このアーキテクチャでは、製品は開発 (ソフトウェアの変更を開発する環境) から運用 (ユーザーが直接操作する環境) に順番に移行します。 エンド ツー エンドのビジネス フローを検証するためのユーザー受け入れテスト (UAT) 環境を導入することもできます。
環境 | 説明 |
---|---|
開発 | 開発環境 (開発) では、ソフトウェアに対する変更が開発されます。 |
テスト | テスト環境では、人間のテスト担当者または自動テストで新しいコードと更新されたコードを試すことができます。 開発者は、開発環境の単体テストを通じて新しいコードと構成を受け入れてから、それらの項目を 1 つ以上のテスト環境に移す必要があります。 |
ステージング | ステージングは、運用環境にデプロイする直前に最終テストを行う場所です。 各ステージング環境は、可能な限り正確に、実際の運用環境をミラーリングしている必要があります。 |
UAT | ユーザー受け入れテスト (UAT) を使用すると、ソフトウェア アプリケーションを運用環境に移行する前に、エンド ユーザーまたはクライアントがソフトウェア システムを検証して受け入れるためのテストを実行できます。 |
実稼働 | 運用環境 (運用) は "ライブ" と呼ばれることもあり、これはユーザーが直接操作する環境です。 |
設計上の考慮事項
Azure ランディング ゾーンと Azure ワークロード開発の両方に次の考慮事項を適用します。
- テスト環境が重要なのは、運用環境にデプロイする前にプラットフォーム開発者が変更をテストすることで、運用環境での配信に関連するリスクが軽減されるためです。
- 環境を可能な限り類似したものに保つことで、テストの最初のフェーズで環境関連のエラーを簡単に見つけることができ、これによって開発とテストの速度と信頼性が向上します。
- 環境の構成に不一致がある場合は、"構成のずれ" が発生し、データの損失、デプロイの速度低下、および障害が発生する可能性があります。
- コードとしてのインフラストラクチャ (IaC) を採用することで、デプロイを高速化し、環境の一貫性を向上させ、環境間の "構成のずれ" を減らすことができます。
- 運用環境の限られた一連のテスト ユーザーのみが新しい機能を利用できるようにし、運用環境にリリースする時間を短縮するのに役立つ、カナリア デプロイやブルーグリーン デプロイなどの方法を採用することを検討してください。
- 開発環境から運用環境へのコードの切り替えを制御するために、テスト結果のチェックを使用します。 これらの制御を自動化して、テストに失敗したときに、変更が次の環境に自動的にデプロイされないようにすることができます。
- コードが運用環境にデプロイされる前に、指定されたユーザーにプル要求を確認してもらいます。 ブランチ戦略でリポジトリを使用して、レビュー プロセスを管理することを検討してください。
- すべての開発者がすべての環境にアクセスできるようにすることで、サイロを回避します。
ワークロード
ワークロードの環境を管理する方法については、「エンタープライズ規模の FAQ」を参照してください。
Azure ランディング ゾーン
顧客が新しい Azure Policy 割り当て、Azure RBAC ロールの割り当て、Microsoft Entra グループ メンバーシップ、Azure リソースの作成などの効果と結果をテストする場合は、Azure ランディング ゾーンのデプロイに複数の環境を採用するのが一般的です。
エンタープライズ規模のテスト アプローチでは、次の 2 つの異なる導入方法について説明します。
- カナリア環境と運用環境での管理グループ階層のレプリケーション
- サンドボックス サブスクリプション
フォローするアプローチに関係なく、常に次の操作を行う必要があります。
- テスト用に少なくとも 1 つの環境を採用します。
- 環境を保護するために、テストと運用の目的で個別のサービス プリンシパルを使用します。
- 特定の環境に変更をデプロイする前に、変更を検証および承認するための自動のチェックと承認を実装します