私の目標は、展開中のダウンタイムをゼロにすることです。私のサイトでは akamai を CDN として使用しています。IIS サーバーのプライマリ クラスタとセカンダリ クラスタがあるとします。デプロイ中に、セカンダリ クラスターに対して更新が行われます。プライマリからセカンダリに切り替える前に、アカマイにコンテンツをキャッシュして、指定した時間にカットオーバーを実行するようにリクエストできますか?
2 に答える
問題は、コンテンツがすべての akamai サーバーにキャッシュされることを保証することです。カットオーバーしたらすぐにコンテンツを強制的に更新したいという問題ですか?
ここにはいくつかのオプションがあります。
1 - リクエスト「?v=1」でバージョンを使用します。このバージョンは常にオリジンからリクエストされ、すべてのリクエストに追加されます。サイトを更新したらすぐにオリジンのバージョンを更新し、次のリクエストで「?v=2」が追加されるようにして、キャッシュを「破棄」し、すべてのリクエストでオリジン ヒットを強制します。
2 - akamai の設定を「ウェブサーバー TTL を尊重する」に変更します。次に、カットオーバーの直前に TTL を非常に低くまたはほぼ 0 に設定し、カットオーバー後に徐々に増加させることができます。
3 - If-MOdified-Since を使用するように akamai を設定します。これにより、リクエストが変更された場合、akamai は「検証」を強制されます。
4 - ディレクトリ全体をパージできる ECCU を使用します。ただし、これには最大 40 分かかる場合がありますが、メインウィンドウ中に管理できるはずです。
アカマイでの経験からすると、これは不可能だと思います(ただし、状況は私が追いつくよりも速く変化します)-コンテンツを手動で(コストをかけて)フラッシュできるので、/*以前はこれを行っていました展開中の特定のファイル(120万を超えるURLがあるため/ *ではありません)が、Akamaiがセカンダリドメインとオリジンを持たずにサイトの非表示バージョンをキャッシュして即座にカットオーバーする方法がわかりません。
ただし、アカマイは対処するのに非常に優れていることもわかりました。解決策に関しては、アカマイに連絡する価値があります。