Microsoft Azureのアプリケーションのゼロダウンタイムアップグレード。 パート1:PaaS

アプリケーションのライフサイクルは、そのサポートを意味します。 任意のパッチ、ホットフィックス、新しいバージョンなどが可能です。 デスクトップアプリケーションの場合、すべてが非常に明確で使い慣れています。 ただし、クラウドでホストされている場合、アプリケーションの更新メカニズムがどのように発生するかを見てみましょう。 今回のケースでは、Microsoft Azureクラウドについて説明します。



そのため、Microsoft Azureはアプリケーションを自動的に更新するための非常に広範な手段を提供し、原則として他の人が現在アプリケーションを使用しているため、最も重要な問題はオンザフライで、つまり目に見えないように更新することです。 Microsoft Azureアプリケーションに適用できるすべての可能な方法を見てみましょう。





Web展開


この更新メカニズムは、テストおよび開発プロセスでのみ適用されます。 ご存じのとおり、Microsoft AzureはPaaSとIaaSの2つのアプリケーション展開メカニズムをサポートしています。 Web配置バリアントは、PaaSの一部として実行されます。 一般的に、Visual Studioからのアプリケーションの公開メカニズムは次のとおりです。



開発チームのメンバーが新しい機能を積極的に導入しており、その一部はすでにテスターが確認できているとします。 完全な展開プロセスには多くの時間がかかるため、いくつかの小さな変更のため、毎回実行する必要はありません。 この場合、WebDeployメカニズムを使用できます。 そのスキームを以下に示します。







このメカニズムは次のように機能します。 アプリケーションのバージョン1.0を実行している仮想マシンがすでにあるとします。 かなり小さな変更が加えられた1.0.1に更新する必要があるため、変更のデルタ(アーカイブサイズ)は小さくなります。 この場合、Web Deployはプロジェクトを(自然に)ビルドし、変更されたファイルのみをアーカイブし、変更を含むアーカイブをAzure Storageにアップロードします。 その後、RDPプロトコル(仮想マシンの必須要件)を使用して、 動作中の仮想マシンに変更を加えたアーカイブをコピーします。 アーカイブが解凍され、IISディレクトリ内の変更されたファイルの置換があります。 その後、IISが再起動します。







このアプローチの長所と短所を見てみましょう。

長所:



短所:



ご覧のとおり、この方法は生産と見なすことはほとんどできませんが、独自の利点もあるため、生命の権利があります。



VIPスワップ


PaaS展開の一環として、引き続きアプリケーションのアップグレードオプションを検討します。 前のバージョンとは異なり、次のアプローチは非常に適用可能で、実稼働環境に適用されます。



顧客が(contoso.cloudapp.net)でアプリケーションバージョン1.0を使用するとします。 私たちのタスクは、ユーザーに見えないようにアプリケーションのバージョンを1.1に更新することです。



Microsoft Azureは、クラウドサービスのスロットという便利な概念を提供します。 Visual Studioを介してクラウドにアプリケーションを公開するとき、アプリケーションを公開するスロット(ステージングまたはプロダクション)を常に尋ねられます。







したがって、これらのスロットの違いは、実稼働スロットに特定の名前(test-app-1.cloudapp.netのテスト)に関連付けられたDNSがあり、ステージングにはGUID.cloudapp.netという形式の名前があることだけです。 したがって、同じアプリケーションの複数のバージョンを1つのクラウドサービスに同時に保持できます。 上で述べたように、顧客は実稼働スロットを使用し、リリース用の環境のテストまたは準備にステージングを使用できます。







クラウドサービスを作成するとき、Azureの内部ロードバランサーは特定のDNS名に関連付けられたIPアドレスのテーブルを作成します。 VIPスワップのアイデアは非常にシンプルです。ステージングスロットに関連付けられているマシンのIPアドレスを、実稼働スロットに関連付けられているマシンのIPアドレスに置き換えます。 Azure Load Balancerの内部IPアドレステーブルの更新操作には数秒かかります。 したがって、ユーザーの観点からは、アプリケーションを新しいバージョンにすぐに更新します。







このアプローチの長所と短所を見てみましょう。

長所:



短所:





この更新方法を分析すると、実稼働環境での使用に非常に適していることがわかります。 アプリケーションの展開にPaaSアプローチを使用する場合、これは最も最適な方法の1つです。



今日は、これが私があなたに伝えたかったことのすべてです。 次回は、IaaSの一部としてデプロイされたアプリケーションをアップグレードするために使用できるMicrosoft Azureツールを確認します。 切り替えないでください!



All Articles