App Service に配置する

完了

開発チームごとに独自の要件があり、それによって、クラウド サービスで効率的なデプロイ パイプラインの実装が困難になる可能性があります。 App Service では、自動デプロイと手動デプロイの両方がサポートされます。

自動化されたデプロイ

自動デプロイ、または継続的デプロイは、エンド ユーザーへの影響を最小限に抑えつつ、短期間かつ反復的なパターンで新機能とバグ修正を提供するために使用されるプロセスです。

Azure App Service では、継続的インテグレーションとデプロイ (CI/CD) パイプラインの一部として、複数のソース管理システムからの自動デプロイがサポートされています。 次のオプションを使用できます。

  • Azure DevOps Services: Azure DevOps Services にコードをプッシュし、クラウドでコードをビルドし、テストを実行し、コードからリリースを生成し、最後にコードを Azure Web アプリにプッシュできます。
  • GitHub: Azure では、GitHub から直接、自動デプロイをサポートします。 自動デプロイのために GitHub リポジトリを Azure に接続すると、GitHub 上の運用ブランチにプッシュするすべての変更が自動的にデプロイされます。
  • Bitbucket: Bitbucket はサポートされていますが、GitHub と Azure DevOps はより一般的に使用され、統合が強化されています。

手動デプロイ

手動でコードを Azure にプッシュするために使用できるいくつかのオプションがあります。

  • Git:App Service Web アプリには、リモート リポジトリとして追加できる Git URL があります。 リモート リポジトリにプッシュすると、アプリがデプロイされます。
  • CLI: az webapp up は、アプリをパッケージ化してデプロイする az コマンドライン インターフェイスの機能です。 他のデプロイ方法とは異なり、az webapp up は新しい App Service Web アプリを作成できます。
  • Zip デプロイ: curl または同様の HTTP ユーティリティを使用し、アプリケーション ファイルの ZIP を App Service に送信します。
  • FTP/S:FTP または FTPS は、App Service を含む、さまざまなホスティング環境にコードをプッシュする従来の方法です。

App Service では、Git および zip ベースのデプロイに Kudu を使用します。 Kudu は、ファイル同期トリガーとデプロイ トリガーを処理します。

デプロイ スロットの使用

新しい運用ビルドをデプロイするときは、可能な限り、デプロイ スロットを使用してください。 Standard App Service 以上のプラン レベルを使用する場合は、ステージング環境にアプリをデプロイし、ステージング スロットと運用スロットをスワップすることができます。 スワップ操作によって、必要なワーカー インスタンスが運用規模に合わせてウォームアップされるため、ダウンタイムがなくなります。

コードを継続的にデプロイする

プロジェクトでテスト、QA、ステージング用のブランチを指定する場合は、それらの各ブランチをステージング スロットに継続的にデプロイする必要があります。 これにより、関係者はデプロイされたブランチに簡単にアクセスしてテストできます。

コンテナーを継続的にデプロイする

Azure Container Registry またはその他のコンテナー レジストリのカスタム コンテナーの場合は、イメージをステージング スロット内にデプロイし、ダウンタイムを防ぐために運用環境にスワップします。 イメージをコンテナー レジストリにプッシュし、webapp でイメージ タグを更新する必要があるため、オートメーションは、コードのデプロイよりも複雑になります。

  • イメージをビルドしてタグ付けする:ビルド パイプラインの一部として、Git コミット ID、タイムスタンプ、またはその他の識別可能な情報を使用してイメージにタグ付けします。 既定の "最新" タグは使用しないことをお勧めしています。 そうしないと、現在デプロイされているコードの追跡が困難になり、デバッグがはるかに難しくなります。
  • タグ付けされたイメージをプッシュする: イメージがビルドされてタグ付けされると、パイプラインによってイメージがコンテナー レジストリにプッシュされます。 次の手順では、デプロイ スロットが、タグ付けされたイメージをコンテナー レジストリからプルします。
  • 新しいイメージ タグでデプロイ スロットを更新します。このプロパティが更新されると、サイトは自動的に再起動し、新しいコンテナー イメージをプルします。

サイドカー コンテナー

Azure App Service では、サイドカー対応カスタム コンテナー アプリごとに最大 9 つのサイドカー コンテナーを追加できます。 サイドカー コンテナーは Linux ベースのカスタム コンテナー アプリでサポートされており、メイン アプリケーション コンテナーに緊密に結合することなく、追加のサービスと機能をデプロイできます。 たとえば、監視、ログ記録、構成、ネットワーク サービスをサイドカー コンテナーとして追加できます。

サイドカー コンテナーは、アプリの管理ページの Deployment Center を使用して追加できます。