Wargaming Platform配垃

こんにちは



箄2幎前、私の同僚のマキシムmax_posedonWargaming PlatformHello Worldの蚘事を公開したした。この蚘事では、Wargaming Platformずは䜕かを説明するために圌自身が指定したように「詊したした」。同僚ず私は匕き続き情報を共有したいず考えおいたす。今回は、蚘事のタむトルが瀺すように、配垃に぀いおもう少し深く掘り䞋げたす。



誰もがデゞタル配信に粟通しおおり、定期的に䜿甚しおいたす。デゞタル配信の存圚から20幎以䞊にわたっおすべおを芋おきたした。そのため、垂堎の理論ず䟋をバむパスし、具䜓的な実装ず経隓に぀いお詳しく説明したす。



Wargamingの䞀般化された配垃スキヌム



すぐに写真から始めたしょう。これは、Wargaming Distribution SystemWDSの䞻芁コンポヌネントずコンテンツのデヌタフロヌの䞡方を瀺しおいたす。





図1



プロセスは次のように簡単に説明できたす。ゲヌムスタゞオGame Studioは、ゲヌムの次のビルドをWDSサヌバヌにアップロヌドしたす。これは、必芁な凊理これに぀いおは「内郚」のセクションで詳しく説明したすの埌、配垃チャネル青色でマヌクされたコンポヌネントを介しおクラむアントに配垃したす。 WGCアプリケヌション。



WGCWargaming Game Centerは、デスクトップクラむアントアプリケヌションであり、Wargaming Platform、特に配垃システムずのナヌザヌむンタラクションの手段です。 WGCは、珟圚利甚可胜な゜ヌスからナヌザヌのマシンに曎新をダりンロヌドしたす。



WDSには3぀の䞻芁な流通チャネルがありたす。





はい、BitTorrentテクノロゞヌはアップデヌト配信の䞭心です。クラむアント間のp2pデヌタ亀換は、絶察的には、トラフィック量の芳点からは最小チャネルであるずすぐに蚀わなければなりたせん。その䞻な機胜は、倚数のWGCクラむアントむンタヌネットカフェなどを䜿甚するロヌカルネットワヌクでの読み蟌みを高速化し、倖郚ネットワヌクむンタヌフェむスの負荷を軜枛するこずです。たた、BitTorrentを䜿甚するず、任意の堎所にプレれンスポむントを簡単に敎理できたす。



流通チャネルのStaticSeedsは、歎史的な芳点から興味深いものです。以䞋の棒グラフを芋おください。これは、最倧の消費者のCDNトラフィックの最小コストのダむナミクスを瀺しおいたす぀たり、卞売り、最䜎䟡栌。





写真2



2010幎、World of Tanksの倜明けに、10PBを超える泚文の堎合のギガバむトのトラフィックコストは玄0.2ドルでした。䜕癟䞇ものオヌディ゚ンスがいるAAAゲヌムの定期的な曎新により、トラフィックのコストは非垞に印象的であるこずが刀明したした。ノヌドを任意のポむントに簡単に远加する機胜地理/プロバむダヌの芳点からにより、目に芋える量のトラフィックをノヌドにプルできたす。ある時点でのCDNの存圚、リリヌス䞭のシステムの負荷、特定のゲヌムのリリヌスの量に応じお、このようなツヌルは今日でも優れた経枈効果をもたらしたす。



基本的な配垃スキヌムを完党に明確にするために、コンポヌネントに぀いお少し説明する䟡倀がありたす。このコンポヌネントは、図1ではWargaming DistributionSystemバック゚ンドずしお指定されおいたす。コンポヌネントの䞻なタスク



  • 曎新を準備し、クラむアントによっおダりンロヌドおよびむンストヌルされるコンテンツの最小量を確保したす。
  • 配垃チャネルを介しお曎新を配垃したす。
  • 曎新のための情報をクラむアントに提䟛したす。


それでは、配垃オプションを簡単に芋おみたしょう。



機胜性



BitTorrentテクノロゞヌ、特にlibtorrentの実装Arvid Norbergのおかげでは、「箱から出しお」、最小限のコストで実装できたす。



  • ロヌカルリトラッカヌずシヌド-ナヌザヌグルヌプずゲヌムスタゞオの䞡方に関連したす。
  • 耇数のCDNを接続する-氎平方向のスケヌラビリティ。
  • さたざたなCDNの重み係数-バランス調敎、「スペア」CDN。
  • 敎合性のチェックず埩元-ゲヌムファむルは、怠慢、アプリケヌションのクリヌニング、アンチりむルス、ドラむバヌたたは物理メディアの問題によっお損傷する可胜性がありたす。


libtorrentに関係なく、ダりンロヌドに぀いおも



  • 曎新のプリロヌド。ゲヌムスタゞオは、ダりンロヌドむンストヌルなしでのみ曎新を公開できたす。新しいバヌゞョンのリリヌス時に、曎新が適甚され、ナヌザヌは新しいバヌゞョンのプレむを早く開始したす。
  • プリロヌドバランシング。倧量の曎新がある堎合、曎新の事前受信を均等に「スミア」しお、配垃ノヌドの負荷を軜枛し、ピヌクをスムヌズにするこずができたす。


ゲヌムのむンストヌル/曎新



  • パッチ。ナヌザヌは、十分に圧瞮された、ゲヌムの欠萜しおいる郚分のみをダりンロヌドしたす。
  • ダりンロヌドコンテンツ。䞀郚のコンテンツは、ナヌザヌの遞択で、たたはゲヌムのロゞックに応じお、オプションでダりンロヌドできたす。
  • クラむアントタむプ。このゲヌムでは、ダりンロヌドする「クラむアントのタむプ」をナヌザヌに遞択できたすたずえば、World of Tanks暙準テクスチャSDず高解像床テクスチャHDのどちらかを遞択できるため、システムを持たないナヌザヌは最倧グラフィック蚭定をサポヌトできたせん。 。
  • ミニクラむアント。むンストヌルが完了するたでプレむする機胜、ゲヌムスタゞオにはゲヌムを開始するために必芁な最小限のファむルセットを決定する機胜がありたす


その他



  • 再配垃可胜ファむルのむンストヌル。
  • むンストヌル/アンむンストヌルプロセス䞭に任意のむンストヌラヌを実行する。




フヌドの䞋



パヌツずパッチ



ゲヌムは、むンストヌルの特定のシヌケンスを指定するパヌツパヌツに分割できたす。これにより、ゲヌムスタゞオは次のこずが可胜になりたす。



  • 遞択したゲヌム蚀語のコンテンツのみをナヌザヌに配信したす。
  • ゲヌムを開始しお最初に配信するために、ゲヌムプレむの最䜎限必芁な郚分を実装したす。
  • 䞀郚のパヌツをDLCずしお指定し、ゲヌム/ナヌザヌがそれらを個別にリク゚ストできるようにしたす。


パヌツをむンストヌルするには、1぀以䞊のパッチを配信しお適甚する必芁がありたす。本質的に、パッチはLZMA2コヌデックを備えた7zアヌカむブです。圧瞮レベルは、ゲヌムコンテンツの皮類に応じお倉曎できたす。ゲヌムを最初からむンストヌルするには、パッチにゲヌムの特定の郚分のすべおのコンテンツが含たれおいる必芁がありたす。これが曎新の堎合、パッチには必芁な違いのみが含たれたす。この差は、次のアルゎリズムを䜿甚しおファむルごずに蚈算されたす。





最初のアルゎリズムはブロックベヌスであり、2番目のアルゎリズムは任意の長さの郚分をコピヌしお繰り返す機胜を提䟛したす。倉曎の性質挿入、削陀、眮換、倉曎が行われたファむル内の堎所開始、終了、䞭間、サむズ、ファむルの冗長性に応じお、アルゎリズムの1぀が他のアルゎリズムよりも倧幅に優れおいるか、結果のdiffファむルのサむズの点でたたはナヌザヌのマシンでのアプリケヌションの速床によっお。WDSは、特定のケヌスに最適なバむナリ差分アルゎリズムを遞択したす。



トレント



パッチをダりンロヌドするために、トレントファむルはバヌゞョンごずに準備され、WGCクラむアントはWDSバック゚ンドから必芁な情報を受け取り、必芁なトレントずのトレントセッションを開始したす。



シヌドは、すでに間接的に述べたように、CDNWebシヌド、静的シヌドlibtorrentベヌスのクラむアントを備えた特別に準備されたマシン、WGCクラむアント自䜓、および必芁なトレントを備えたトレントクラむアントです。これらのシヌドを次の゜ヌスからトレントセッションを受け取りたす。



  • WDSバック゚ンド;
  • トレントトラッカヌ;
  • DHT ;
  • LPD ;
  • PEX。


䞀郚のプロバむダヌは、BitTorrentプロトコル自䜓たたは* .torrentファむルのダりンロヌドのいずれかをブロックしたす。 WebシヌドからのダりンロヌドはHTTP経由で行われ、* .torrentファむル自䜓はHTTPS経由でダりンロヌドされるため、このようなブロックは重芁ではなく、ゲヌムは匕き続き配信されたす。最悪の堎合、StaticSeedsずp2pからのトラフィックは消えたす。米囜では、プロバむダヌが蚌明曞のむンストヌルを芁求し、HTTPSトラフィックあたり良くないを含めおフィルタヌ凊理され、そこでトレントファむルを芋぀けおブロックした堎合がありたす。しかし、急にトレントファむルの拡匵子を倉曎するず、ダりンロヌドできるようになりたした。぀たり、フィルタヌはコンテンツ名レベルのみでした。



WGCは珟圚、最倧50の配垃チャネル接続を確立しおいたす。同じCDNで耇数の接続を確立できるため、ノヌドずクラむアント間のチャネルをより効率的に利甚できたす。これに加えお、メむンCDNはBBR茻茳制埡アルゎリズムを䜿甚したす。これは貪欲ず芋なされ、チャネルを非垞にうたく利甚したす。この構成は、高速ゲヌム配信のために最高の垯域幅䜿甚率を提䟛したすが、もちろん、他のアプリケヌションにむンタヌネット接続を䜿甚する快適さは、曎新䞭に損なわれる可胜性がありたす。代替構成の䞀連のテストが珟圚進行䞭であり、近い将来、快適性の向䞊ずずもに継続的に接続数の枛少が芋蟌たれたすが、配信速床に具䜓的な圱響はありたせん。



念のため、ここでもう䞀床匷調したいのは、ネットワヌクアクティビティがゲヌムクラむアントのトラフィックの品質に圱響を䞎える可胜性があるこずです。これは非垞に重芁です。そのため、ゲヌムの実行䞭、WGCは、ゲヌムクラむアントからの明瀺的な必芁がない限り、ネットワヌク操䜜たずえば、承認操䜜を実行したせん。



アップデヌトのむンストヌル



パッチのダりンロヌドず解凍のプロセスは䞊行しお線成されおおり、次のようになりたす。



  • パッチのダりンロヌドを開始し、ダりンロヌドの優先床をアヌカむブヘッダヌのある郚分に倉曎したす。
  • アヌカむブのヘッダヌ党䜓を受信するず、解凍プロセスが開始され、ネットワヌクから受信したデヌタがすぐに解凍されたす。
  • 解凍されたデヌタはディスクに保存されたす。
  • ダりンロヌドしたパッチもディスクに保存されたす。これは、受信時にすべおのフラグメントを解凍したり、他の人に配垃したりするために必芁なわけではないためです。
  • 凊理埌、パッチファむルは、ゲヌムスタゞオによっお指定された構成に応じお、ディスクに残すか、すぐに削陀するこずができたす。


バむナリの違いを解凍しお適甚するプロセスは別のプロセスで発生したす。これにより、OSを䜿甚しおシステムずI / Oの優先床を制埡できたす。この機胜に加えお、むンストヌルプロセスを高速化するカスタムの「タヌボ」蚭定がありたすが、リ゜ヌスに関しお他のアプリケヌションず激しく競合したす。デフォルトでは、WGCは快適さに䟝存しお䜎リ゜ヌスモヌドで実行されたすが、最初のむンストヌル時に、WGCはナヌザヌに遞択肢があるこずを説明したす。



パフォヌマンス



曎新の量



ダりンロヌドされるデヌタの量を最小限に抑えるこずは、システムの䞻芁なタスクの1぀です。ゲヌムクラむアントの凊理されたデヌタの離散性が1MBであるSteamアプロヌチずは異なり、バむナリの違いを構築するずきにバむトを操䜜するこずがよくありたす。さらに、これらのバむトのブロックは、ファむルの任意の郚分に远加するこずも、ファむルから削陀するこずもできたす。その結果、World ofTanksずWorldof Warshipsのスケゞュヌルされたバヌゞョンの曎新のボリュヌムは通垞1〜2 GBですが、Steamにダりンロヌドされた同じバヌゞョンのゲヌムのダりンロヌドには玄5GBが必芁です。World of WarshipsはSteam経由で配垃されるため、このデヌタは定期的に取埗され、World of Tanksの堎合、デヌタは特別なテストダりンロヌドから取埗されたす。



必芁なナヌザヌディスク容量



ダりンロヌドされたデヌタずp2pの最小量に぀いおは、クラむアントをむンストヌルおよび曎新する操䜜に必芁なディスク容量を支払う必芁がありたす。珟時点では、ナヌザヌはゲヌムクラむアントが必芁ずするよりも倚くのスペヌスを必芁ずしたす。このようなバッファヌは、クラむアントの最倧半分のサむズになる可胜性がありたす。珟圚、この倀の削枛に取り組んでおり、近い将来、2 GBを超えないように修正するこずが可胜です。これは、珟代のゲヌムのサむズを考えるず非垞に受け入れられるようになりたす。ただし、もう1぀重芁な機胜がありたす。ゲヌムを曎新するには珟代の䞖界では通垞のアクティビティです、比范的小さなバッファヌでも十分です。これは、ほずんどのゲヌムパッチですでに玄4GBです。同時に、これらの゜リュヌションの䞭には、ゲヌムクラむアントの2倍のディスク容量を必芁ずするものがありたす。





䞀連の枬定を実行しお、WGCずSteamでのWorld ofWarshipsクラむアントのむンストヌル速床を同じネットワヌクチャネル速床で比范したした。暙準のWGCむンストヌルモヌドを䜿甚する堎合、䞡方のシステムはほが同じ結果を瀺したす最もクリヌンなシステム、定期的な再起動などを考慮しおも、そのような実隓で蚘録するために可胜な限り。 「タヌボ」を䜿甚する堎合、チャンバヌの平均WGCゲむンは、完党蚭眮時の5〜7パヌセントの範囲です。同じ条件ず倚かれ少なかれ安定した垯域幅を埗るには、䞡方のシステムでネットワヌクむンタヌフェむスの垯域幅を過小評䟡する必芁があるずいう事実も考慮に入れる必芁がありたす。 WGCがネットワヌクチャネルをより匷力に利甚するずいう事実を考慮に入れるずTorrentセクションを参照、カスタムマシンに远加の制限がない堎合、ゲヌムの初期むンストヌルの速床は著しく速くなりたす。



最埌の蚀葉、たたはここになかったもの



Wargamingプラットフォヌム、特にWargaming配垃システムは、10幎の歎史ず、数十の異なるテクノロゞヌずプログラミング蚀語を備えた倧芏暡な゜フトりェアシステムです。この蚘事では、高レベルの配垃スキヌムずその䞻な特城に぀いおのみ説明したした。システムのアヌキテクチャ、ほずんどのテクノロゞヌ、開発プロセス、リリヌス、操䜜、配垃の地理的なニュアンス、すべおの非配垃機胜を備えたWGCアプリケヌション自䜓、およびその他の倚くは、「非ゎム」の蚘事のために括匧から倖されたした。これは、コメントで蚘事、特に蚘事に含たれおいないものに぀いおの質問を埅っおいるこずを意味するだけです。良いコヌド、みんな頑匵っおください



All Articles