自動化されたアプリ デプロイ ソリューションを設計する

完了

クラウドへの移行にあたり、多くのチームがアジャイル開発方法を採用します。 これらのチームはソリューションをすばやく反復処理して、クラウドに繰り返しデプロイする必要があります。 チームは、そのインフラストラクチャが信頼性の高い状態にあることを保証される必要があります。 アプリケーション コードは、統合されたプロセスで管理する必要があります。

Tailwind Traders の設計でこれらの課題に対応するために、あなたはコードとしてのインフラストラクチャのプラクティスを使用してデプロイを自動化する方法を調査しています。 アプリケーションをデプロイおよび自動化するための 2 つの Azure ソリューション (Azure Resource Manager テンプレートと Azure Automation) について調べてみましょう。

Azure Resource Manager テンプレートについて知っておくべきこと

Azure Resource Manager (ARM) テンプレートは、デプロイのためのインフラストラクチャと構成を定義するファイルです。 ARM テンプレートを作成する場合は、宣言型アプローチをリソースのプロビジョニングに採用します。 ARM テンプレートにはデプロイ内の各リソースが記述されていますが、リソースのデプロイ方法は記述されていません。

リソースのプロビジョニングに ARM テンプレートを使用することには多くの利点があります。 利点を確認するときは、Tailwind Traders アーキテクチャ ソリューションで ARM テンプレートを使用する方法について考えてください。

  • ARM テンプレートはべき等です。つまり、同じテンプレートを繰り返しデプロイし、同じ結果を取得できます。

  • ARM テンプレートのデプロイが Azure Resource Manager に送信されると、その ARM テンプレート内のリソースが並列にデプロイされます。 このオーケストレーション機能プロセスにより、デプロイがより早く終了します。

  • PowerShell や Azure CLI で使用可能な WhatIf パラメーターを使用すると、ARM テンプレートをデプロイする前に環境への変更をプレビューできます。 このパラメーターを使用すると、そのテンプレートで実行されるすべての作成、変更、削除の詳細が表示されます。

  • Resource Manager に送信された ARM テンプレートが、デプロイ プロセスの前に検証されます。 この検証により、リソースのプロビジョニング前に、テンプレート内のエラーが通知されます。

  • ARM テンプレートを小さなコンポーネントに分割し、それらをデプロイ時にまとめてリンクできます。

  • ARM テンプレートを Azure Pipelines や GitHub Actions などの複数の CI/CD ツールに統合できます。

  • デプロイ スクリプトを使用すると、ARM テンプレート内から Bash または PowerShell スクリプトを実行できます。 拡張性により、1 つのテンプレートを使用して完全なソリューションをデプロイできます。

ARM テンプレートの形式

ARM テンプレートと Azure リソース デプロイには、JSON と Bicep の 2 つの形式があります。 JavaScript Object Notation (JSON) は、複数の言語で使用できるオープン標準ファイル形式です。 Bicep は、より簡単な構文を使用してテンプレートを作成するために最近開発されたドメイン固有言語です。 Bicep CLI を使用すると、任意の JSON テンプレートを Bicep テンプレートに逆コンパイルできます。

Azure Batch テンプレートについて知っておくべきこと

Bicep は、Azure リソースを宣言的にデプロイするために使用される ARM テンプレート言語です。 Bicep は、特定のシナリオまたはドメイン向けに設計されたドメイン固有言語です。 Bicep は ARM テンプレートを作成するために使用されます。

Bicep ARM テンプレートを使用し、Azure への JSON ARM テンプレートを介して作成するプロセスを示す図。

コードしてのインフラストラクチャ デプロイ用の主要ツール セットとして Bicep を選択する理由は多数あります。

  • Bicep は Azure エコシステムにネイティブです。 新しい Azure リソースがリリースまたは更新された場合、Bicep はそれらの機能をその日からサポートします。

  • JSON および Bicep テンプレートは、Azure プラットフォーム内に完全に統合されています。 Resource Manager ベースのデプロイを使用すると、Azure portal 内でデプロイの進行状況を監視できます。

  • Bicep は、Microsoft サポートによって完全にサポートされている製品です。

  • 状態はすべて Azure に格納されます。 ユーザーは共同作業を行うことができ、更新プログラムが想定どおりに処理されることを確信できます。

  • 宣言型テンプレート言語として既に JSON テンプレートを使用している場合、Bicep に移行することは難しくありません。 Bicep CLI を使用すると、任意のテンプレートを Bicep テンプレートに逆コンパイルできます。

Azure Automation について知っておくべきこと

Azure Automation は、Azure 環境と Azure 以外の環境にまたがる一貫した管理をサポートするクラウド ベースの自動化および構成サービスを提供します。 Azure Automation を使用すると、プロセス自動化、構成管理、更新管理という 3 つのサービス領域を完全に制御できます。 このサービスの詳細を調べて、Tailwind Traders アプリケーション アーキテクチャでそれを実装するにはどうすればよいかを検討しましょう。

サービス 説明
プロセスの自動化 プロセスの自動化を行えば、頻繁に必要で、時間がかかり、エラーが発生しやすいクラウド管理タスクを自動化できます。 このサービスを利用して、ビジネスの価値を高める作業に集中できます。 また、エラーを減らして効率性を向上できるため、運用コストの削減にも役立ちます。 このサービスを使用すると、PowerShell で、または Python を使用して、Runbook をグラフで作成できます。
構成管理 構成管理を使用すれば、変更履歴とインベントリ、ならびに Azure Automation State Configuration という 2 つの機能へのアクセスが可能になります。 このサービスでは、環境内のサービス、デーモン、ソフトウェア、レジストリ、ファイル間の変更追跡をサポートします。 変更の追跡は、不要な変更を診断し、アラートを生成するのに役立ちます。
Update Management 更新管理サービスには、Windows システムと Linux システムのハイブリッド環境全体に対する更新管理機能が含まれています。 この機能を使用すると、デプロイ スケジュールを作成して、定義済みのメンテナンス期間中に更新プログラムがインストールされるように調整できます。