ゲームとアセットのCDN: TTFBが世界中で減少
1) iGamingの「高速」とは何ですか?
重要なUXポイント:- ロビーとメディア(ゲームアイコン、プレビュー、バナー)-インスタントレンダリング;
- スロット/ライブテーブルの開始-最小リダイレクトとオーバーロード;
- フィード/リスト(ゲームカタログ、ルール、翻訳)-安価なキャッシュされたJSON;
- ビデオ/ブロードキャスト(予告編、ストリーム用HLS/DASH);
- 静的フロントアセット(JS/CSS/フォント)。
- 全体的なTTFB: ≤ 150-250 ms/static、端でキャッシュされるスピーカーごとの≤ 300-400 ms;
- Time-to-First-Spin (TTFS):プロバイダの最初のリクエストに800ミリ秒を≤します(ロビーをレンダリングした後)。
- p95アイコンのダウンロード:≤ 200ms。
2) CDNレイヤーアーキテクチャ: パフォーマンスパイ
1.Anycast PoP worldwide:最寄りのサイトの自動選択、RTTの減少。
2.階層型キャッシュ+起源シールド:PoP→リージョナルキャッシュ→1-2シールドノードを起源の前に置き、ミス・ストームを消滅させます。
3.マルチオリジンンセットまたはアセットスタンバイ(EU/US/APAC)、ヘルスチェック、スマートルーティング。
4.エッジ関数:origin (A/B、 geo、 signatures、 URL/ヘッダー正規化)への簡単なロジック。
5.プライベートバックボーンCDN:遠い地域で「ワイルド」インターネットコアを渡します。
3)現金戦略: 何、どこで、どのくらい
原理:可能であれば不変、ダイナミクスの短いTTL、バーストのSWR (stale-while-revalidate)、決定論的なキー。
TTL行列(例):重要:キャッシュするAPI-GETでは、ブラウザの停滞を防ぐために、Surrogate-Control (CDN用)とshort 'Cache-Control(ブラウザ用)を使用します。
4)キャッシュヘッダーとキー: ミスを最小限に抑える
キャッシュキー='scheme+host+path+normalized query+variations'。
クエリパラメータの順序を正規化し、「garbage」 ('utm _'、' fbclid'など)を投げます。
ヘッダーオプション:"Accept-Encoding" (Brotli/Zstd/Gzip)、 "Accept' (AVIF/WebP/JPEG)、" DPR"(クライアントヒント)、"Accept-Language"。
見出し参照(不変資産用):
キャッシュ制御:パブリック、max-age=31536000、不変
ETag: 「sha256- <hash>」
Content-Encoding: br#および/またはzstd/gzip、以下を参照
さまざまな:Accept-Encoding、 Accept、 DPR、 Save-Data
キャッシュ制御:public、 max-age=60、 stale-while-revalidate=300
サロゲート制御:max-age=300、 stale-while-revalidate=6005)圧縮とフォーマット: バイト数が少ない-TTFB以下
HTTP/3+QUICは、ハンドシェイクのレイテンシーを低減し、パケット損失に耐性があります。
テキスト資産(JS/CSS/JSON)のBrotli、レベル5-7 (CPU残高/利点)。
JSON/NDJSON用のZstd (CDNがサポートされている場合)は、低遅延で優れた圧縮です。
画像のWebP/AVIF ("Accept'で自動調整)。
すべてを引っ張らないようにビデオ/大きなファイルの範囲要求。
6)端による配達: プリフェッチおよびスマートなロビー
ロビーからプリフェッチ:ゲームカードが見えるエリアにあるとすぐに、アイコン、ルール、プロバイダの小さな「manivest」をロードします。
初期のヒント(103)とCDNホストへの「プリコネクト」。
Edge-function-warm-up:イベントで「ゲームをトップに置く」-最寄りのPoPマーケットプロモーションでトップアイコンと設定をウォームアップします。
適応ペイロード:3G/Save-Dataのモバイルで軽量リスト(10-20ゲーム)を送信します。
7)起源シールドと「ミス嵐」に対する防御"
重複排除されたフェッチをオンにする:何百ものパラレルミス(合体)を持つ原点への1つの旅行。
Jitter TTL (± 20%)は多数のキーの「同時」の有効期限のために。
カナリアリリース:世界の障害者に5〜10%のエッジトラフィックに関する新しいカタログ/ルールをロールアウトします。
開始前のトーナメントでは'404/204'のネガティブキャッシュ(非常に短い、1-5秒)が「ハンマー」の起源ではないように。
8)地理的制約、ライセンスおよびセキュリティ
オフライセンス国のためのエッジ上のジオフェンシングは、迅速かつ中立的な応答です(403)。
プライベートコンテンツの署名されたURL/クッキー (VIP資料、ボーナスリソース)。
ホットリンクとリファラーに対する保護、キャッシュするAPI-GETのPoPに関するWAF規則(有効なJSONスキーム、IP/ASN制限)。
TLS 1。3、 HSTS、 CDNフロントドメインにOCSPステープル。
9)バージョン管理と障害
ファイル名のコンテンツハッシュ:'app。 
JSON/カタログ/バナー:イベント障害(CMS/管理パネルからのwebhook)+自動ウォーミングトップキー。
全体的なパージを避けて下さい;接頭辞/タグによるポイントのパージを行います。
10)ビデオとストリーム: CDN上のHLS/DASH
短いセグメント(2-4s)+'#EXT-X-PREFETCH'/低遅延HLSをサポート。
セグメントのPoP間の階層キャッシュ;'Cache-Control: public、 max-age=3600'。
地域ごとのプレイリスト(ビットレートのオプション)とローカル字幕;範囲に優しい。
11)ゲームプロバイダーの詳細
プロバイダメタデータ(リスト、制限、ロケール)-'SWR'でキャッシュされたJSON。
アイコンとプロモメディアプロバイダ-彼らのCDNドメイン上でホストを再(彼らの遅い起源に苦しまないように)。
CDNドメインプール(ただし、ドメインシャーディングなし-HTTP/2/3は必要ありません)-ポリシーを分離するために、大きなビデオ/静的/APIを分離します。
12)ルールの例(擬似、エッジ関数)
js export default async (req)=>{{js export default asy{
//reqキーを正規化します。url=normalizeQuery (req。url、 ['lang'、 'dpr'、 'v']) ;//garbage dump
//if(!isLicensed (req。geo。country)) return geoBlock();
//プライベートプレフィックスif (req。パス。startsWith ('/vip/')) verifySignatureOr403 (req);
//ポリシーキャッシュif (req。パス。match(/\。(js    CSS    woff2)$/)&&hasHash (req。(パス))
setHeader ('Cache-Control'、' public、 max-age=31536000、 immutable');
}else if (req。パス。endsWith ('/games。json'))
setHeader ('Cache-Control'、' public、 max-age=60、 stale-while-revalidate=300');
setHeader ('Surrogate-Control'、' max-age=300、 stale-while-revalidate=600');
}
//Compression negotiateEncoding (['br'、 'zstd'、 'gzip']);
return fetchFromCacheThenOrigin (req);
}13) CDNおよびSLOの観測可能性
RUM: 'TTFB'、 'LCP'、 'first paint'をリージョン/ネットワーク(モバイルvs Wi-Fi)で収集します。
エッジメトリック:hit/miss、 shield hit-ratio、 prefix misses、 outgoing traffic volume、 '4xx/5xx'コード。
アラート:ヒット率ドロップ、地域TTFB上昇、「ミス・ストーム」、'429' スパイク/ASNボット。
トレース:'edge→shield→origin'をマークして'burns'を表示します。
14)費用: 過払いしない方法
重くてホットなキャッシュ(アイコン/ビデオ/ディレクトリ)-原点からの脱出を低減します。
キーのカーディナリティを低減します(ゴミのクエリ/UAバリエーションを削除します)。
階層キャッシュと地域シールドノードはバックエンド要求を保存します。
圧縮(Brotli/Zstd)はトラフィックを削減します。AVIF/WebP-写真のためのマストハイブ。
15)生産準備チェックリスト
- ターゲット市場(EU、 LatAm、 MENA、 APAC)のカバレッジを持つAnycast CDN;含まれているHTTP/3。
- コンテンツハッシュによる不変アセット;'Cache-Control: max-age=1y、 immutable'。
- カタログ/JSON-SWR+サロゲートコントロール、TTL 30-300 s、 CMSからのポイント障害。
- 階層キャッシュ+起源シールド、合体、TTLジッタ。
- フォーマット:AVIF/WebP、 Brotli/Zstd、ビデオの範囲。
- エッジ関数:クエリ正規化、ジオフィルタ、URL署名、A/B。
- PoP上の地理拘束とWAF;HTTPSのみ(HSTS)、 TLS 1。3.
- 観測可能性:RUM TTFB/LCP、ヒット率、地域警報。
- プロモーション/ストリーム、カナリア計算の前にウォームアップ手順。
- キーのドキュメント、障害ポリシー、および「ミス・ストーム」ランブックをキャッシュします。
履歴書のサマリー
世界中のTTFBを実際に削減するには、Anycast+階層型キャッシュ+オリジンシールドを使用し、すべてのバージョンで不変にする、ダイナミックリストにSWRを使用する、カットバイト(Brotli/Zstd、 AVIF/WebP)、エッジ上でキーをノーマライズする、geoを追加するフィルターと署名。プロモーションの前にトップゲームをウォームアップし、RUMを介してTTFB/LCPを測定し、ヒット率を制御してください。このようにしてロビーが瞬時に開き、ゲームは一時停止せずに開始され、原点は寒くて安いままです。
