16 November 2023, 15:53

Untuk mendapatkan maklumat terkini, ikuti kami melalui Telegram

Langgan Sekarang

Laman web perkongsian video, YouTube telah memulakan operasinya pada tahun 2005. Dalam tempoh yang singkat, platform ini telah meraih jumlah tontonan yang tinggi.

Disebabkan YouTube mempunyai kelebihan dan kadar penembusan pasaran yang tinggi, maka laman ini menjadi tumpuan dalam kalangan pelabur, termasuklah syarikat modal teroka dan syarikat teknologi multinasional. Akhirnya, pada November 2006, YouTube telah dibeli oleh syarikat teknologi multinasional, Google LLC dengan harga USD1.65 bilion.

Walaupun kelihatan seperti sebuah organisasi yang besar, YouTube sebelum dibeli oleh Google hanyalah dikendalikan oleh sekumpulan tenaga kerja yang kecil tetapi berwibawa. Pada awal penubuhannya, pasukan YouTube terdiri daripada dua pentadbir sistem, dua arkitek perisian yang memberikan perhatian kepada kebolehskalaan tapak, dua pembangun ciri, dua jurutera rangkaian dan seorang pentadbir pangkalan data.

Dari segi seni bina YouTube, perkhidmatan mikro bahagian belakang platform tersebut ditulis menggunakan Python, C, C++, Java dengan rangka kerja Guice dan Go. JavaScript digunakan untuk pemprograman antara muka pengguna. Pada peringkat awal, YouTube dibangunkan dengan menggunakan bahasa pengaturcaraan PHP dengan sokongan HTML, CSS dan JavaScript.

Selepas diambil alih oleh Google, syarikat gergasi itu mahukan laman web YouTube lebih lasak, mempunyai daya tahan yang tinggi dan lebih terbuka, namun pada masa yang sama, selamat digunakan dan senang diselenggarakan.

Oleh hal yang demikian, bermula dari tahun 2007 hingga tahun 2010, YouTube mengalami fasa peralihan dengan menggunakan Phyton sebagai bahasa pengaturcaraan utama. Phyton memiliki beberapa kelebihan berbanding dengan PHP, khususnya dalam kegunaan berskala besar di samping membantu memudahkan penggunaan antara muka pengguna yang memberikan kesan positif kepada pengalaman pengguna.

MySQL ialah pangkalan data utama YouTube yang dikuasakan oleh Vitess, iaitu sistem pengelompokan pangkalan data untuk penskalaan mendatar MySQL. Dengan merangkumkan logik penghalaan serpihan, Vitess membenarkan kod aplikasi dan pertanyaan pangkalan data kekal agnostik kepada pengedaran data ke berbilang serpihan.

Dalam bahasa yang lebih mudah, Vitess ialah sistem penyelesaian pangkalan data yang digunakan untuk menskala dan menguruskan kelompok besar data seperti pangkalan data sumber terbuka. Vitess menyokong MySQL dan Pelayan Percona untuk MySQL. Sistem ini direka bentuk untuk berfungsi dengan berkesan dalam seni bina awan awam atau persendirian seperti yang dilakukan pada perkakasan khusus.

Memcache pula digunakan untuk pengagregatan, manakala Zookeeper digunakan untuk penyelarasan nod. Memcache selalunya digunakan untuk mempercepat tapak web yang dipacu oleh pangkalan data dinamik dengan menyimpan data dan objek dalam ingatan capaian rawak (RAM) untuk mengurangkan bilangan kali sumber data luaran yang mesti dibaca.

Memcache ialah perisian percuma dan sumber terbuka yang dilesenkan di bawah Revised BSD. Zookeeper pula ialah perisian peringkat tinggi yang dibangunkan oleh Apache yang bertindak sebagai perkhidmatan terpusat dan digunakan untuk mengekalkan data penamaan dan konfigurasi serta menyediakan penyegerakan yang fleksibel dan mantap dalam sistem yang diedarkan.

Video popular atau video yang selalu dicapai pengguna disajikan daripada content delivery network atau content distributed network (CDN), manakala video yang kurang dimainkan atau yang dicapai secara sederhana diambil daripada pangkalan data. Setiap video yang dimuat naik akan diberikan pengecam unik dan diproses oleh kerja kelompok yang menjalankan beberapa proses automatik seperti menjana perwakilan kecil, metadata, transkrip video, pengekodan, menetapkan status pengewangan dan sebagainya.

CODEC VP9 & H.264/MPEG-4 AVC (Pengekodan Video Lanjutan) digunakan untuk pemampatan video yang mengekod video dengan kualiti ketumpatan tinggi (HD) dan 4K pada kadar arau ukuran separuh lebar jalur yang diperlukan oleh CODEC lain. Sementara itu, penstriman adaptif dinamik melalui protokol HTTP digunakan untuk penstriman video dengan menggunakan teknik penstriman kadar bit adaptif yang membolehkan penstriman video berkualiti tinggi melalui web dilakukan daripada pelayan web HTTP konvensional.

Melalui teknik ini, kandungan disediakan kepada penonton pada kadar bit yang berbeza. Klien YouTube secara automatik akan menyesuaikan pemaparan video mengikut kelajuan sambungan Internet pengguna, sekali gus mengurangkan penimbalan sebanyak mungkin.

Seni bina YouTube.

Memandangkan laman web YouTube mendapat daya tarikan, maka pembangun terpaksa menskalakan pangkalan data hubungan secara mendatar untuk memenuhi permintaan queries per second (QPS) yang semakin meningkat. Replika juga telah ditambahkan pada contoh pangkalan data induk.

Permintaan baca telah dihalakan kepada kedua-dua induk dan replika secara selari untuk mengurangkan beban pada induk. Proses penambahan replika ini dapat membantu menghilangkan kesesakan, meningkatkan daya baca dan menambah ketahanan pada sistem. Nod induk berfungsi mengendalikan trafik tulis, manakala nod induk dan replika bertugas untuk mengendalikan trafik baca.

Walau bagaimanapun, dalam senario ini, terdapat kemungkinan bahawa berlakunya perolehan data lapuk daripada replika yang dibaca. Jika permintaan mengambil data daripadanya berlaku sebelum dikemas kini oleh induk dengan maklumat baharu, maka tindakan tersebut akan mengembalikan maklumat lapuk kepada pengguna. Pada ketika ini, data antara induk dengan replika akan menjadi tidak konsisten.

Sebagai contohnya, ketidakkonsistenan dalam senario ini boleh menyebabkan berlakunya perbezaan dalam kiraan tontonan untuk video tertentu, yakni antara induk dengan replika. Namun begitu, ketidakkonsistenan ini masih boleh diterima kerana data antara induk dengan replika lambat laun akan menjadi konsisten.

Dalam aspek ini, pengenalan replika menjadikan jurutera dan pengguna berasa gembira mengikut perspektif masing-masing. Hal ini dikatakan demikian kerana laman web tersebut akan terus mendapat populariti dan QPS menjadi semakin meningkat. Walau bagaimanapun, strategi penyalinan induk–replika selanjutnya akan berhadapan dengan cabaran untuk bersaing dengan peningkatan trafik di tapak web.

Strategi seterusnya adalah untuk memecahkan pangkalan data agar pangkalan data hubungan dapat diskalakan. Sekiranya pemecahan tidak dilakukan, maka pengurusan akan menjadi lebih sukar kerana meningkatnya kerumitan sistem dengan jumlah pemprosesan sistem yang ketara.

Pangkalan data perlu dipecahkan untuk memenuhi peningkatan dalam QPS. Selepas pembangun memecahkan pangkalan data, data itu akan tersebar di beberapa mesin dan keadaan ini akan meningkatkan daya pemprosesan sistem. Hasilnya, daripada hanya induk tunggal yang mengendalikan penulisan, kini operasi tulis boleh dilakukan pada berbilang mesin yang dipecahkan. Selain itu, setiap mesin replika yang berasingan telah dicipta untuk lebihan dan pemprosesan.

Platform ini akan terus meledak disebabkan populariti dan sejumlah besar data yang terus ditambah ke dalam pangkalan data oleh pencipta kandungan. Untuk mengelakkan kehilangan data atau perkhidmatan tidak tersedia disebabkan oleh kegagalan mesin atau sebarang kejadian luar yang tidak dijangka, maka ciri pengurusan bencana dimasukkan ke dalam sistem.

Pengurusan bencana bermaksud sistem mempunyai keadaan luar jangka untuk bertahan daripada gangguan bekalan elektrik dan bencana alam seperti gempa bumi, serta kebakaran. Keadaan ini memerlukan adanya lebihan kerja dan data pengguna disandarkan pada pusat data yang terletak di zon geografi yang berbeza di seluruh dunia. Hal ini dikatakan demikian kehilangan data pengguna atau perkhidmatan tidak tersedia dianggap sebagai bukan pilihan.

Selain itu, YouTube mempunyai beberapa pusat data di seluruh dunia yang turut membantu platform ini mengurangkan kependaman sistem. Hal ini dilakukan untuk mengalihkan permintaan pengguna ke pusat data terdekat berbanding dengan dihalakan ke pelayan asal yang terletak di benua lain.

Pada kebiasaannya, pertanyaan imbasan jadual penuh yang tidak dioptimumkan akan menghapuskan keseluruhan pangkalan data. Sistem ini perlu dilindungi daripada pertanyaan yang tidak baik. Semua pelayan juga perlu dijejaki untuk memastikan perkhidmatan yang cekap. Oleh sebab itu, pembangun memerlukan sistem sedia ada yang akan mengabstrak kerumitan sistem bagi membolehkan mereka menangani cabaran berskala dan menguruskan sistem dengan usaha yang minimum. Disinilah letaknya keperluan Vitess dalam sistem.

Vitess juga memiliki keupayaan berterusan untuk melancarkan dan mengalihkan sandaran secara automatik ke tempat yang sangat dipercayai, mentadbir pelayan dan meningkatkan prestasi pangkalan data dengan bijak dengan menulis semula pertanyaan intensif sumber dan melaksanakan penyimpanan data sementara dengan pantas. Selain YouTube, teknologi ini juga digunakan oleh pemain besar dalam industri digital berasaskan platform awan seperti GitHub, Slack, Square dan New Relic.

Dari segi sejarah, Vitess telah dibangunkan dan diperkenalkan pada tahun 2010 untuk menyelesaikan cabaran penskalaan MySQL yang dihadapi oleh pasukan pembangun dan pentadbir sistem di YouTube. Vitess kemudiannya telah dikeluarkan secara Open Source agar pembangunannya dapat dimanfaatkan untuk mana-mana projek berskala besar.

Dengan adanya Vitess, YouTube dapat mengalih keluar logik daripada kod sumber, memperkenalkan proksi antara aplikasi dengan pangkalan data untuk dihalakan ke tempat yang sesuai dan menguruskan interaksi pangkalan data. Sejak itu, YouTube telah meningkatkan kapasiti pangkalan pengguna untuk menyiarkan lebih banyak halaman, memproses video yang baru dimuat naik dan sebagainya.

YouTube memanfaatkan ciri kependaman rendah (low latency) dan penghantaran kandungan berkos rendah (low cost) apabila menggunakan rangkaian global Google. YouTube juga mengambil faedah fungsi Edge points of presence (POP) yang diedarkan secara global untuk membolehkan penggunanya mengambil data dengan lebih cepat berbanding dengan mengambilnya daripada pelayan asal.

Video yang dimuat naik pengguna disimpan dalam pemacu keras yang berada di pusat data Google berskala gudang. Data diuruskan oleh Google File System (GFS) dan BigTable.

GFS ialah sistem fail teragih yang dibangunkan oleh Google untuk menguruskan data berskala besar dalam persekitaran teragih. BigTable pula ialah sistem storan data teragih kependaman rendah yang dibina pada GFS untuk menangani data skala petabait yang tersebar di beribu-ribu mesin yang digunakan oleh lebih daripada 60 produk Google.

YouTube memerlukan lebih daripada satu petabait storan baharu setiap hari. Pemacu cakera keras berputar menjadi medium storan utama kerana kos dan kebolehpercayaan yang rendah. Walaupun solid-state drives (SSD) yang menggunakan teknologi separa konduktor lebih berprestasi tinggi berbanding dengan cakera berputar, namun penggunaannya untuk proses yang berskala besar agak mahal dan cenderung mengalami kehilangan data secara beransur-ansur dari semasa ke semasa. Faktor tersebut menjadikan SSD tidak begitu sesuai untuk penyimpanan data arkib.

Secara ringkasnya, dua perkara yang mungkin perlu diketahui pengguna tentang seni bina YouTube yang agak kompleks ini adalah tentang cakera keras dan pangkalan data. Cakera keras ialah tempat video dimasukkan dan disimpan, manakala pangkalan data yang merujuk MySQL merujuk tempat perhubungan, metadata, pilihan pengguna, maklumat profil, tetapan akaun dan data yang berkaitan atau yang diperlukan untuk mengambil video daripada storan dimasukkan.

Artikel ini ialah © Hakcipta Terpelihara JendelaDBP. Sebarang salinan tanpa kebenaran akan dikenakan tindakan undang-undang.
Buletin JendelaDBP
Inginkan berita dan artikel utama setiap hari terus ke e-mel anda?

Kongsi

error: Artikel ini ialah Hakcipta Terpelihara JendelaDBP.