Teknologi yang memungkinkan distribusi skala YouTube?

34

Youtube seperti yang kita tahu, sangat besar. Ia memiliki ribuan pengguna bersamaan yang mengalirkan setidaknya 2 megabyte per video. Jelas, itu akan menjadi banyak lalu lintas ... terlalu banyak untuk satu server.

Teknologi jaringan apa yang memungkinkan mendorong 4 miliar video sehari?

pengguna1034912
sumber

Jawaban:

51

Penskalaan pada backend

Dalam pengaturan yang sangat sederhana, satu entri DNS masuk ke satu IP yang milik satu server. Semua orang di seluruh dunia pergi ke satu mesin itu. Dengan lalu lintas yang cukup, itu terlalu banyak untuk ditangani jauh sebelum Anda mencapai ukuran YouTube. Dalam skenario sederhana, kami menambahkan penyeimbang beban. Tugas load balancer adalah untuk mengarahkan lalu lintas ke berbagai server back-end saat muncul sebagai satu server.

Dengan data sebanyak yang dimiliki YouTube, akan terlalu banyak berharap semua server dapat melayani semua video, jadi kami memiliki lapisan tipuan lain untuk ditambahkan: sharding . Dalam contoh yang dibuat-buat, satu server bertanggung jawab untuk semua yang dimulai dengan "A", yang lain memiliki "B", dan seterusnya.

Pindahkan tepi lebih dekat

Namun, pada akhirnya, bandwidth menjadi intens dan Anda memindahkan BANYAK data ke satu ruangan. Jadi, sekarang kita sangat populer, kita memindahkannya keluar dari ruangan itu. Dua teknologi yang penting di sini adalah Jaringan Distribusi Konten dan Anycasting .

Di mana saya mendapatkan file statis besar yang diminta di seluruh dunia, saya berhenti mengarahkan tautan langsung ke server hosting saya. Yang saya lakukan adalah memasang tautan ke server CDN saya. Ketika seseorang meminta untuk melihat video, mereka meminta server CDN saya untuk itu. CDN bertanggung jawab karena sudah memiliki video, meminta salinan dari server hosting, atau mengarahkan saya. Itu akan bervariasi berdasarkan arsitektur jaringan.

Bagaimana CDN itu membantu? Ya, satu IP mungkin sebenarnya milik banyak server yang ada di banyak tempat di seluruh dunia. Ketika permintaan Anda meninggalkan komputer Anda dan pergi ke ISP Anda, router mereka memetakan jalur terbaik (terpendek, tercepat, paling murah ... apa pun metriknya) ke IP itu. Seringkali untuk CDN, yang ada di atau di sebelah jaringan Tier 1 terdekat .

Jadi, saya meminta video dari YouTube. Mesin yang sebenarnya disimpan setidaknya iad09s12.v12.lscache8.c.youtube.comdan tc.v19.cache5.c.youtube.com. Itu muncul di sumber halaman web saya yang saya lihat dan disediakan oleh beberapa bentuk server pengindeksan. Sekarang, dari Maine saya menemukan server tc19 berada di Miama, Florida. Dari Washington, saya menemukan server tc19 berada di San Jose, California.

Jeff Ferland
sumber
4
Contoh buat-buat Anda tentang sharding adalah yang terbaik yang pernah saya lihat. Semua orang tampaknya membuat kerumitan besar dari konsep sederhana ini karena suatu alasan.
kizzx2
@ Jeff, Akan lebih bagus jika Anda menambahkan beberapa kutipan atau memperjelas bahwa ini adalah spekulasi pengguna akhir.
Pacerier
23

Beberapa teknik digunakan untuk situs besar.

www.youtube.com -> sejumlah alamat IP

Mari kita lihat di 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

Jadi www.youtube.com sebenarnya bisa pergi ke beberapa alamat IP.

alamat IP yang disiarkan

Satu IP dapat ditangani oleh sejumlah Sistem Otonom (Jaringan di internet) secara bersamaan. Misalnya, banyak server DNS root dan juga server DNS Google 8.8.8.8disiarkan di banyak titik di seluruh dunia. Idenya adalah bahwa jika Anda berada di AS, Anda menekan jaringan AS dan jika Anda berada di Inggris, Anda menekan jaringan Inggris.

media yang berasal dari server yang berbeda

Hanya karena Anda aktif www.youtube.com, itu tidak berarti bahwa semua konten harus berasal dari server yang sama. Tepat di situs ini, sumber daya statis dilayani sstatic.netalih-alih serverfault.com.

Misalnya, jika kita menonton Slave Leia PSA milik Kaley Cuococ, kita dapati bahwa media dilayani oleh v10.lscache5.c.youtube.com.

beberapa koneksi internet

Saya yakinkan Anda, Youtube memiliki lebih dari satu koneksi internet. Terlepas dari semua teknik lain, bahkan jika Youtube benar-benar satu situs dan satu server, secara teori bisa saja memiliki koneksi ke setiap jaringan lain yang digunakannya untuk melayani video. Di dunia nyata itu tentu saja tidak mungkin, tetapi pertimbangkan idenya.

Setiap atau semua gagasan ini (dan banyak lagi!) Dapat digunakan untuk mendukung Jaringan Pengiriman Konten . Baca artikel itu jika Anda ingin tahu lebih banyak.

MikeyB
sumber
"Secara teori bisa saja memiliki koneksi ke setiap jaringan lain tempat video itu ditayangkan. Di dunia nyata itu tentu saja tidak mungkin, tetapi pertimbangkan idenya." Mengapa itu tidak mungkin di dunia nyata? Anda dapat berlangganan banyak penyedia internet
user1034912
Anda benar-benar ingin memiliki koneksi independen ke lebih dari tiga puluh lima ribu jaringan terpisah? Itu tidak praktis.
MikeyB
12

Anda salah membayangkan bahwa YouTube (alias Google) hanya memiliki satu server; informasi ini dapat membantu menggambarkan skala sistem yang mendukung layanan itu.

Bahkan jika Anda hanya memiliki satu titik keberadaan Anda benar-benar dapat memiliki lebih dari satu server di belakang satu nama, dan bahkan IP, menggunakan alat seperti load balancers dan semuanya.

Google, bagaimanapun, memiliki banyak sekali poin kehadiran, dan menggunakan alat-alat seperti AnyCast - sebuah teknik untuk menerbitkan IP yang sama di banyak tempat di Internet, dan membuat orang-orang diarahkan ke kumpulan server terdekat yang memilikinya - untuk mendukung infrastruktur.

Daniel Pittman
sumber
1
Bagaimana cara Google menempatkan jutaan server di seluruh dunia? Apakah mereka menyewa server? Tidakkah akan sulit bagi mereka untuk menjaga keamanan data mengelola semua server pihak ketiga itu?
user1034912
2
Mereka memiliki semuanya. Serius, mereka membeli - yah, buat, hari ini - mereka. Biaya ini sebanyak yang Anda bayangkan, dalam beberapa hal, tetapi lebih sedikit pada yang lain.
Daniel Pittman
1
investor.google.com/financial/tables.html dapat membantu; Q4, 2011, 10.000-ish ... juta dolar masuk. Serius, mereka pada skala yang tidak dapat Anda bayangkan.
Daniel Pittman
2
@ user1034912 - ya, ini mengejutkan. Tapi ini Google , jadi kenapa tidak? Ada ribuan pusat data di seluruh dunia, Google kebetulan mengoperasikan sebagian kecil dari mereka.
tombull89
1
@Tomtom - Mengapa tidak sulit untuk mempercayai pengguna yang tidak terbiasa dengan teknologi server? Adalah kasar dan sangat ofensif untuk mengatakan bahwa seseorang yang tidak tahu Google memiliki ratusan server hidup di bawah batu. Pergi ke luar dan minta beberapa non-techies biasa dan saya jamin mereka tidak tahu skala server Google atau bahkan apa itu. Juga, apakah orang-orang biasa biasanya menelusuri neraca? Apakah Anda selalu harus membaca semua berita tentang pusat data? Jujur, saya tidak peduli berapa banyak rep yang Anda miliki tetapi bersikap kasar, tidak sopan dan merendahkan membuat Anda tidak ada dalam hidup.
DMan
3

Saya akan sedikit menyentuh sisi jaringan: Google memiliki Point of Presence (PoP) di 73 pusat data unik di seluruh dunia (tidak termasuk milik mereka). Mereka adalah anggota dari 69 pertukaran internet unik . Google berada di lebih banyak pusat data dan titik-titik Internet Exchange daripada jaringan lain yang terdaftar di peeringdb.

Total kapasitas pertukaran internet Google adalah> 1,5Tbps, dan 1,5Tbps dicadangkan untuk jaringan dengan> 100Mbps lalu lintas dengan Google, tetapi kurang dari yang saya kira sekitar 2-3Gbps. Setelah Anda memiliki 'volume yang cukup' , Anda dipindahkan ke private peering (PNI).

Selain peering Internet Exchange dan peering pribadi (dengan AS15169), YouTube juga mengoperasikan jaringan transit: AS43515, dan jaringan lain yang saya anggap untuk peering / overflow berbayar, AS36040. Google juga mengoperasikan server Google Global Cache , agar ISP dapat menyebar lebih lokal di jaringan mereka. (Data dari peeringdb, bgp.he.net).

Berdasarkan pengalaman saya, saya percaya YouTube menggunakan lebih dari sekadar geolokasi IP atau Anycast untuk memilih lokasi untuk menayangkan video.

Google menjalankan jaringan tulang punggung global yang besar, mereka memiliki serat gelap , mereka telah membiayai kabel bawah laut . Volume lalu lintas yang dihasilkan YouTube sangat besar! Saya kira YouTube memiliki volume lalu lintas puncak> 12Tbps. Google mewakili setidaknya 7% (dan mungkin> 10%) dari semua lalu lintas internet antar-domain.

Jadi untuk benar-benar menjawab pertanyaan Anda, dari perspektif jaringan, untuk skala seperti YouTube Anda harus melakukan investasi besar-besaran di jaringan Anda - dari serat di tanah ke gigi WDM, dan router. Anda harus mendapatkan konten dan jaringan sedekat mungkin dengan pengguna Anda. Ini biasanya berarti peering, IXs, dan mungkin sedikit transit. Anda harus dapat memberi tahu pengguna secara cerdas dari mana mendapatkan konten agar lalu lintas didistribusikan secara merata dan semurah mungkin. Dan tentu saja, Anda harus memiliki infrastruktur server besar untuk menyimpan, memproses, mengkonversi, dan memberikan 4 miliar tampilan sehari!

Jika Anda ingin tahu tentang sisi server, saya menulis posting blog yang memecah beberapa gambar pusat data yang baru dirilis.

hampir tidak
sumber
Bagaimana Anda bekerja untuk Google?
Pacerier
2

Jika Anda ingin tahu lebih banyak tentang sistem skala besar dan teknologi yang digunakan perusahaan ini, sumber terbaik sekarang adalah http://highscalability.com

Perusahaan terbesar seperti Google atau Akamai, mereka selalu memiliki komponen yang mereka tulis / ciptakan sendiri. (misalnya Akamai mengembangkan server web untuk layanan mereka)

Gabor Vincze
sumber
Beberapa data di sana sudah ketinggalan zaman ....
Pacerier