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.com
dan 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.
Beberapa teknik digunakan untuk situs besar.
www.youtube.com
-> sejumlah alamat IPMari kita lihat di DNS:
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.8
disiarkan 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 dilayanisstatic.net
alih-alihserverfault.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.
sumber
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.
sumber
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.
sumber
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)
sumber