YouTubeはご存知のように巨大です。ビデオあたり少なくとも2メガバイトをストリーミングする数千の同時ユーザーがいます。明らかに、それは大量のトラフィックになる... 1つのサーバーにとっては多すぎる。
1日あたり40億本の動画をプッシュできるネットワークテクノロジーはどれですか ?
非常に単純な設定では、1つのDNSエントリが1つのサーバーに属する1つのIPに送信されます。世界中の誰もがその単一のマシンに行きます。十分なトラフィックがあると、YouTubeのサイズになる前に処理するには長すぎます。簡単なシナリオでは、ロードバランサーを追加します。ロードバランサーの役割は、1つのサーバーのように見えながら、トラフィックをさまざまなバックエンドサーバーにリダイレクトすることです。
YouTubeと同じ量のデータがある場合、すべてのサーバーがすべての動画を提供できると期待するのは多すぎるため、追加の間接層を追加します sharding 。不自然な例では、1つのサーバーが「A」で始まるすべてのものを担当し、別のサーバーが「B」を所有します。
ただし、最終的には帯域幅が非常に大きくなり、大量のデータを1つの部屋に移動します。それで、私たちは超人気者になったので、それをその部屋の外に移動します。ここで重要な2つのテクノロジーは、コンテンツ配信ネットワークと エニーキャスティング です。
この大きな静的ファイルが世界中でリクエストされているので、ホスティングサーバーへの直接リンクを指定するのをやめます。代わりに、私のCDNサーバーへのリンクを張っています。誰かがビデオを見るように頼むとき、彼らはそれを私のCDNサーバーに頼みます。 CDNは、既にビデオを所有している、ホスティングサーバーからのコピーを要求する、またはリダイレクトする責任があります。ネットワークのアーキテクチャによって異なります。
そのCDNはどのように役立ちますか?まあ、1つのIPは実際には世界中の多くの場所にある多くのサーバーに属している可能性があります。リクエストがコンピューターを離れてISPに送信されると、ルーターは最適なパス(最短、最短、最小のコスト...あらゆるメトリック)をそのIPにマッピングします。多くの場合、CDNの場合、最も近い Tier 1 ネットワーク上またはその隣になります。
それで、YouTubeに動画をリクエストしました。それが格納された実際のマシンは少なくともiad09s12.v12.lscache8.c.youtube.com
およびtc.v19.cache5.c.youtube.com
。これらは、私が見ている私のWebページのソースに表示され、何らかの形のインデックスサーバーによって提供されました。今、メイン州から、tc19サーバーがフロリダ州ミアマにあることがわかりました。ワシントンから、tc19サーバーはカリフォルニア州サンノゼにあることがわかりました。
大規模なサイトでは、いくつかの手法が使用されています。
www.youtube.com
->任意の数のIPアドレスDNSを見てみましょう:
www.youtube.com is an alias for youtube-ui.l.google.com.
youtube-ui.l.google.com has address 74.125.226.14
youtube-ui.l.google.com has address 74.125.226.0
youtube-ui.l.google.com has address 74.125.226.1
youtube-ui.l.google.com has address 74.125.226.2
youtube-ui.l.google.com has address 74.125.226.3
youtube-ui.l.google.com has address 74.125.226.4
youtube-ui.l.google.com has address 74.125.226.5
youtube-ui.l.google.com has address 74.125.226.6
youtube-ui.l.google.com has address 74.125.226.7
youtube-ui.l.google.com has address 74.125.226.8
youtube-ui.l.google.com has address 74.125.226.9
youtube-ui.l.google.com has IPv6 address 2001:4860:800f::88
したがって、www.youtube.comは実際には複数のIPアドレスにアクセスできます。
単一のIPは、任意の数の自律システム(インターネット上のネットワーク)で同時に処理できます。たとえば、ルートDNSサーバーの多くとGoogleの8.8.8.8
DNSサーバーは、世界中の多くの場所でエニーキャストされています。あなたがアメリカにいるなら、あなたはアメリカのネットワークにヒットし、あなたがイギリスにいるなら、あなたはイギリスのネットワークにヒットするという考えです。
www.youtube.com
を使用しているからといって、すべてのコンテンツが同じサーバーから取得される必要があるという意味ではありません。このサイトでは、静的リソースはsstatic.net
ではなくserverfault.com
から提供されます。
たとえば、 Kaley CuocoのスレーブレイアPSA を見ると、メディアはv10.lscache5.c.youtube.com
によって提供されていることがわかります。
YouTubeには複数のインターネット接続があります。他のすべての手法にもかかわらず、Youtubeが実際には単一のサイトと単一のサーバーであったとしても、理論的には、YouTubeがビデオを配信している他のすべてのネットワークに接続できます。現実には不可能ですが、考えてみてください。
これらのアイデアの一部またはすべて(およびその他)を使用して、 コンテンツ配信ネットワーク をサポートできます。詳細については、その記事をご覧ください。
YouTube(別名Google)にサーバーが1つしかないことを想像するのは間違いです。 this inforgraphic は、そのサービスを支えるシステムの規模を示すのに役立ちます。
存在する場所が1つしかない場合でも、ロードバランサーなどのツールを使用して、1つの名前の背後に複数のサーバーを確実に配置できます。
しかし、Googleには非常に多くの拠点があり、AnyCast(インターネット上の複数の場所で同じIPを公開し、それを所有する最も近いサーバープールにルーティングする人々)のようなツールを使用してインフラストラクチャを支援しています。
これらの企業が使用する大規模システムとテクノロジーについて詳しく知りたい場合は、現時点で最良のソースは http://highscalability.com です。
GoogleやAkamaiのような最大の企業は、常に自社で作成/作成したコンポーネントを持っています。 (たとえば、アカマイはサービス用にWebサーバーを開発しました)
少しネットワークの側面について触れます。Googleは、世界中の73の固有のデータセンター(独自のものを含まない)にPoint of Presence(PoP)を持っています。彼らは 69のユニークなインターネット交換 のメンバーです。 Googleは、peeringdbにリストされている他のネットワークよりも多くのデータセンターとInternet Exchangeポイントにあります。
Googleの総インターネット交換容量は1.5Tbpsを超え、その1.5Tbpsは、Googleのトラフィックが100Mbpsを超えるネットワーク用に予約されていますが、2〜3Gbpsとは思われません。 '十分なボリューム' を取得すると、プライベートピアリング(PNI)に移動します。
インターネットエクスチェンジピアリングとプライベートピアリング(AS15169を使用)に加えて、YouTubeはトランジットネットワークAS43515と、有料ピアリング/オーバーフロー用のAS36040と私が想定する別のネットワークも運用しています。 Googleは Googleグローバルキャッシュ サーバーも運用しており、ISPはネットワーク内でさらにローカルに展開できます。 (peeringdb、bgp.he.netからのデータ)。
私の経験に基づいて、YouTubeはIPジオロケーションまたはエニーキャストだけでなく、ビデオを提供する場所を選択するために使用していると思います。
グーグルは巨大なグローバルバックボーンネットワークを運営しています 彼ら自身の暗いファイバー 、彼らは ファイナンスされた海底ケーブル を持っています。 YouTubeが生成するトラフィックの量は膨大です。 YouTubeのピーク時のトラフィック量は> 12Tbpsだと思います。 Googleはすべてのドメイン間インターネットトラフィックの 少なくとも7% (そしておそらく> 10%)を表しています。
ネットワークの観点から実際に質問に答えるには、YouTubeのように拡張するには、地面のファイバーからWDMギア、ルーターに至るまで、ネットワークに大規模な投資を行う必要があります。ユーザーにできるだけ近いコンテンツとネットワークを取得する必要があります。これは通常、ピアリング、IX、そしておそらく少しの通過を意味します。トラフィックをできるだけ均等に分散して安価に保つために、コンテンツの取得元をユーザーにインテリジェントに通知できる必要があります。そしてもちろん、1日あたり40億ビューを保存、処理、変換、配信するには、大規模なサーバーインフラストラクチャが必要です。
サーバーサイドに興味がある場合は、 ブログ投稿 を作成しました。これにより、最近リリースされたデータセンターイメージの一部が分解されます。