Azure での宣言型デプロイをシンプルにする

2020年6月22日 に投稿済み

Chief Technology Officer, Microsoft Azure

Azure では、Azure Resource Manager (ARM) テンプレートを使用して、宣言によってインフラストラクチャのプロビジョニングと管理を行うシンプルかつ直感的な方法がお客様に提供されます。テンプレート言語を使用して Azure 環境全体を記述してから、お気に入りの CI/CD またはスクリプト ツールを使用してその環境を数分で立ち上げることができます。ARM テンプレート言語は JSON 形式でリソース スキーマを直接表現するものです。したがって、初日から ARM テンプレートを使用してどのような Azure リソースでも作成でき、リソースのあらゆる設定を構成することができます。ARM テンプレートを使用すると、環境を構成するのに必要なリソースを宣言型のパラメーター化された方法で記述できます。ARM テンプレートは宣言型であるため、お客様は必要なものを指定するだけで、それ以外は Azure Resource Manager によって判断されます。

ここ 2、3 か月の間に、ARM テンプレートのデプロイに関して Microsoft が重視する点が新しくなって、お客様によって報告された重要な課題のいくつかに対処することに重点が置かれました。本日は、これらの課題のいくつかに対処するために行われた投資の一部を共有いたします。

Visual Studio Code を使用した作成エクスペリエンスがシンプルに

ARM テンプレートをゼロから作成および編集する場合に初めは気後れしてしまうことがあることが最近のユーザーによって報告されています。必要なリソースを Azure portal で作成し、再利用できる ARM テンプレートをエクスポートできるようにすることで、作業を始める際のエクスペリエンスがシンプルになりました。また、リソースをプロビジョニングするための 800 個以上のサンプル テンプレートがあるテンプレート クイックスタート ギャラリーも用意されています。しかし、お客様のためにさらに一歩先に進めたものがあります。

Visual Studio Code の新しい Azure Resource Manager (ARM) Tools で、スニペット (あらかじめ作成されたリソース定義)、IntelliSense、色付け、ARM テンプレートのアウトライン、コメントがサポートされるようになりました。ARM テンプレートでコメントがサポートされるので、CLI、PowerShell、Azure portal を使用してコメントを含むあらゆるテンプレートをデプロイでき、問題なく機能します。VS Code における新しい ARM テンプレートの作成エクスペリエンスに関する短いビデオをご覧ください。

what-if: デプロイ前の影響分析

画像2デプロイされたリソースの変更を送信する前に、環境に対するデプロイの影響の評価がお客様に必要になることがよくあります。Azure の新しい what-if 機能を使用すると、お客様はデプロイ前の評価を行って、リソースのプロパティの変更を含め、どのリソースが作成、更新、または削除されるかを特定できます。what-if コマンドによって、環境の現在の状態がリアルタイムでチェックされ、あらゆる状態の管理が不要になります。what-if を使い始める場合はこちらをご覧ください。what-if は現在プレビュー中ですので、GitHub リポジトリで問題と機能のリクエストについてお知らせください。

デプロイ スクリプト: "ラスト マイル" シナリオの完了

環境のセットアップを完了するために、ARM テンプレートのデプロイにおいてカスタム スクリプト コードの実行がお客様に必要になるシナリオがよくあります。以前はテンプレートのデプロイ外の手順が必要だったこれらのスクリプトは、deploymentScript リソースを使用してテンプレートのデプロイ内で実行できるようになりました。新しい deploymentScript リソースでは、テンプレートのデプロイの一部としてすべての PowerShell または Bash スクリプトが実行されます。このスクリプトは、ARM テンプレートの一部として含めることもできますし、外部ソースから参照することもできます。デプロイ スクリプトによって、1 つの ARM テンプレートでエンドツーエンドの環境のセットアップを完了できるようになりました。デプロイ スクリプトの詳細については、このドキュメントをご覧ください。Microsoft の API で公開されていない特定の Azure リソース アクションを、Microsoft のコントロール プレーンでネイティブに表示されるようにするには、こちらでリクエストを申請してください。

管理グループとサブスクリプションの大規模なプロビジョニング

組織が Azure の使用を拡大するにつれて、環境、アプリケーション、課金、またはセキュリティの確実な分離のために、管理グループ (MG) 階層 (グループ化構成体) と Azure サブスクリプションを作成する必要性について話し合われることがよくあります。お客様には、時間とリソースを節約するために、管理グループとサブスクリプションのプロビジョニングを行う一貫性のある宣言型の方法が必要です。新しいテナントと MG デプロイ API によって、ARM テンプレートを使用した MG とサブスクリプションのプロビジョニングがサポートされるようになりました。これにより、1 つの ARM テンプレートで、資産全体および関連付けされたインフラストラクチャ リソースのセットアップを自動化できます。こちらで詳細をご覧になってサンプル テンプレートを入手できます。さらに、サブスクリプションのタグ付けがサポートされるようになり、リソース グループあたり 800 件のデプロイという制限が排除され、デプロイあたりのリソース グループ数の上限が 800 個に増加され、Enterprise Agreement (EA) アカウントあたりのサブスクリプション数が 2,000 個に増加されたので、大規模なプロビジョニングと管理が可能になりました。

ARM1

品質と信頼性に関する継続的な取り組み

品質と信頼性は、Microsoft で行われるすべての中心にあります。これは Microsoft が継続的に重視してきた領域で、スキーマの品質を向上させて、すべてのリソースをスキーマの対象にすることから始まりました。このことのメリットは、作成エクスペリエンスの向上とテンプレートのエクスポート機能で確認できます。Microsoft では、デプロイ前に問題を見つけられるよう、エラー メッセージの改善と、事前検証の品質の向上に懸命に取り組んでいます。また、テンプレート リファレンスのすべての API バージョンを公開することによってドキュメントの改善に重点的に投資し、テンプレート スニペットをリソース ドキュメントに追加しました。

Microsoft では、ARM テンプレートのコードのテストに役立つように、ARM テンプレートがベスト プラクティスに従っていることを確認するために Microsoft の社内で使用されている ARM テンプレート ツールキットをオープンソース化しました。最後に、Microsoft は速さが重要であることを認識していて、大規模なデプロイのデプロイ時間を約 75% 削減するために大幅な改善を行いました。

Azure Resource Manager テンプレートを使用した Infrastructure as Code の未来

Microsoft は ARM テンプレートのデプロイの強化に取り組み始めたばかりで、チームは現在のギャップに対処するために意識的に尽力し、将来のために革新を行っています。最近行われた Microsoft Build 2020 カンファレンスで共有された Microsoft による今後の投資の一部についてお聞きいただけます。

Microsoft では、ARM のデプロイに関する継続的なフィードバックをお待ちしております。エンジニアリング チームとのより詳細な話し合いに興味がある場合は、デプロイとガバナンスの Yammer グループに参加してください。