Azure Appサービスで、私が誰かがコメントするのに十分なほど親切になることを期待しています。Azure App-Service Swapソースとデスティネーションの間で「Bounce」
再生手順(すべてのAzureのステップがポータルで行うことができます):
- 例えば、(標準価格レベル、単一のインスタンスで結構です)アプリケーションサービスで、新しいWebアプリケーションを作成します。そのアプリケーションのための
mysite
- Create a new staging slot
mysite-staging
- 展開コンテンツ
//ONE
- は、ファイル/スクリプト/テストで
mysite-staging
に最低限のASP.NETアプリケーションを展開したファイル/scripts/test.jsとmysite
への最低限のASP.NETアプリスワップ開始直後コンテンツ//TWO
- Swap the deployment slots
- を持っているの.jsは、(継続的にブラウザーの力リフレッシュを行うことによって)
mysite.azurewebsites.net/scripts/test.js
に移動して、スワップ操作中に返された内容を監視します私は実際に見る何
- ある時点でのスワップ時に、シームレス/一貫/不可逆的
//ONE
から//TWO
へのコンテンツの変更:
- スワップ操作中に、内容が
//ONE
と//TWO
の間で "点滅"/"バウンス"します。スワップ操作が完了すると、動作が安定しており、//TWO
は一貫して観察された行動は、すべてのトラフィックが新しいバージョンに行くことと言えるれる時間には単一のポイントが存在しないことを示唆している
私が見ることを期待します
返されます。ユーザーは、この「バウンス」段階で、ページの「V2」バージョンとで応答し、ページmysite.azurewebsites.netを要求
- :
これは私に関する理由は、次のシナリオですCDNホストスクリプトへのリンク
mycdn.com/scripts/test.js?v2
(?v2
は新しいクエリ文字列) - ブラウザはCDNからスクリプトを要求し、そのスクリプトは
mysite.azurewebsites.net
からスクリプトを要求します。今回は、「バウンス」は応答をスクリプトのv1バージョンにします。 - は、今、私たちは、その地域内のすべてのユーザーがページのV2バージョンでロードするCDNでキャッシュされたスクリプトのV1バージョンを持っている
私の質問:この「バウンス」動作が中にですスワップ操作は「設計上」ですか?もしそうなら、上の病理学的なケースを解決するために推奨されるアプローチは何ですか?
「コンピュータサイエンスにはキャッシュの無効化と名前付けという2つの難しいことがあります」(Phil Karlton)スワップ操作のようなサウンドは、フロントエンドインスタンスのキャッシュエントリを無効にする必要があります。私はあなたが達成するためにこれが自明ではないと思います。私の場合の回避策は、CDNが正しい内容を保持していることを確かめるために、スワップ操作が終了した直後にCDNの内容を消去することです。 – sammy34