Azure の達人にいくつか質問があります。私はソフトウェア開発会社で働いており、Azure インフラストラクチャの構築について尋ねられました。私が考えたのは、次の部門に 3 つの Pay-As-You-Go サブスクリプションを設定することです。
1) 生産(ライブ環境)。2) 品質保証。3) テスト。
私の質問は次のとおりです:
1) Web サイトや仮想マシンなどのリソースを作成する場合、それらをさまざまなサブスクリプション間で移行できますか? シナリオは次のとおりです。新しいアプリケーションを起動しますが、まずテストする必要があります。そのため、最初にテストに配置します。厳密なテストを実行したら、品質保証に移動します。その後、すべての品質チェックが完了したら、運用 (ライブ環境) に移動します。 2) また、ある部門のユーザーが別の部門の何も変更できないセキュリティ マトリックスも開発しています。
皆さんはどう思いますか?それは実現可能でしょうか?
答え1
Michael - 使用する移行プロセスは、使用している基盤となるインフラストラクチャ/サービスに大きく依存します。
まず、ビルドサービスを使用して、作成したソフトウェアを自動デプロイする方法を検討することをお勧めします。MSDNドキュメント良い出発点です。
- Web サイトとクラウド サービス (Web またはワーカー ロール): 適切なサブスクリプションの適切なインスタンスにコードを再デプロイする必要があります。基盤となるホスティング インフラストラクチャを「移動」することはできません。
- 仮想マシンでホストされるサービス: サブスクリプション間で VM を移動できますが、他の依存関係 (ネットワーク、データベースなど) に応じてかなりの労力が必要になります。最善の方法は、Web サイトやクラウド サービスの場合と同じアプローチを試してみることです。
- Azure SQL データベース: サブスクリプション間でデータベースをバックアップ/復元する必要があります。
- その他の Azure サービス: 何がデプロイされているかによって大きく異なります (あいまいで申し訳ありませんが、Azure には多くの可動部分があります)。
通常、構築するソリューションの展開/再展開をスクリプト化または自動化する方法を見つけることは、シナリオにおいて時間を有効に活用することになります。
答え2
当社では、さまざまな Azure 環境への自動ビルドとデプロイメントに Visual Studio Online (VSO) を使用しています。これは、異なるサブスクリプションで環境を分離している場合でも、同じサブスクリプションで異なるリソース グループを使用している場合でも機能します。
私たちの設定では、すべてのコード チェックインによってビルドがスピンオフされ、ユニット テストが実行され、成功した場合はテスト環境にデプロイされます。
次に、QA 部門は、特定の変更セット/日付を選択して、VSO を通じてビルドを定期的にキューに入れます。ビルドとユニット テストが成功すると、QA へのデプロイがトリガーされます。このビルドは技術的には本番環境向けにもビルドされますが、本番環境にはデプロイされません。
彼らはすべての品質保証作業を行い、問題がなければ、VSO に組み込まれているゲートキーパー ロジックの承認を提出します。その後、他の 2 人がそのビルドを本番環境にプッシュすることを承認するように設定されています (即時またはスケジュールで実行できます)。
オンプレミスの場合は、本質的に同じものである TFS を使用できます。
TLDR: これは VSO を通じて実現でき、認証と制御のために Azure Active Directory と統合できます。