Petualangan Kubernetes Dailymotion: nggawe infrastruktur ing awan + ing papan

Petualangan Kubernetes Dailymotion: nggawe infrastruktur ing awan + ing papan

Cathetan. nerjemahake.: Dailymotion minangka salah sawijining layanan hosting video paling gedhe ing donya lan mulane dadi pangguna Kubernetes sing misuwur. Ing materi iki, arsitek sistem David Donchez nuduhake asil nggawe platform produksi perusahaan adhedhasar K8s, sing diwiwiti kanthi instalasi maya ing GKE lan rampung minangka solusi hibrida, sing ngidini wektu nanggepi luwih apik lan ngirit biaya infrastruktur.

Mutusake kanggo mbangun maneh inti API Dailymotion telung taun kepungkur, kita pengin ngembangake cara sing luwih efisien kanggo dadi tuan rumah aplikasi lan nggawe luwih gampang proses ing pembangunan lan produksi. Kanggo tujuan iki, kita mutusake nggunakake platform orkestrasi wadah lan kanthi alami milih Kubernetes.

Napa sampeyan kudu nggawe platform sampeyan dhewe adhedhasar Kubernetes?

API tingkat produksi kanthi cepet nggunakake Google Cloud

Musim panas 2016

Telung taun kepungkur, sanalika sawise Dailymotion dituku dening Vivendi, tim teknik kita fokus ing siji tujuan global: nggawe produk Dailymotion sing anyar.

Adhedhasar analisis kontainer, solusi orkestrasi, lan pengalaman kepungkur, kita yakin yen Kubernetes minangka pilihan sing tepat. Sawetara pangembang wis duwe pangerten babagan konsep dhasar lan ngerti carane nggunakake, sing dadi kauntungan gedhe kanggo transformasi infrastruktur.

Saka perspektif infrastruktur, sistem sing kuat lan fleksibel dibutuhake kanggo dadi tuan rumah jinis aplikasi asli awan anyar. Kita milih tetep ing méga ing wiwitan perjalanan supaya bisa mbangun platform on-premise sing paling kuat kanthi tentrem. Kita mutusake kanggo nyebarake aplikasi nggunakake Google Kubernetes Engine, sanajan kita ngerti manawa cepet utawa mengko kita bakal pindhah menyang pusat data dhewe lan ngetrapake strategi hibrida.

Kenapa sampeyan milih GKE?

Kita nggawe pilihan iki utamane amarga alasan teknis. Kajaba iku, perlu kanthi cepet nyedhiyakake infrastruktur sing nyukupi kabutuhan bisnis perusahaan. Kita duwe sawetara syarat kanggo aplikasi hosting, kayata distribusi geografis, skalabilitas lan toleransi kesalahan.

Petualangan Kubernetes Dailymotion: nggawe infrastruktur ing awan + ing papan
Kluster GKE ing Dailymotion

Wiwit Dailymotion minangka platform video sing kasedhiya ing saindenging jagad, kita pancene pengin nambah kualitas layanan kanthi nyuda wektu tunggu (latensi). sadurunge API kita mung kasedhiya ing Paris, kang suboptimal. Aku pengin bisa dadi tuan rumah aplikasi ora mung ing Eropa, nanging uga ing Asia lan AS.

Sensitivitas kanggo latensi iki tegese karya serius kudu ditindakake ing arsitektur jaringan platform. Nalika umume layanan maya meksa sampeyan nggawe jaringan dhewe ing saben wilayah banjur nyambungake liwat VPN utawa sawetara layanan sing dikelola, Google Cloud ngidini sampeyan nggawe jaringan tunggal sing bisa diruteake kanthi lengkap kanggo kabeh wilayah Google. Iki minangka tambahan gedhe babagan operasi lan efisiensi sistem.

Kajaba iku, layanan jaringan lan penyeimbang muatan saka Google Cloud nindakake tugas sing apik banget. Dheweke mung ngidini sampeyan nggunakake alamat IP umum sing sewenang-wenang saka saben wilayah, lan protokol BGP sing apik banget ngurusi liyane (yaiku panganggo pangalihan menyang kluster paling cedhak). Temenan, yen ana kegagalan, lalu lintas bakal kanthi otomatis menyang wilayah liyane tanpa campur tangan manungsa.

Petualangan Kubernetes Dailymotion: nggawe infrastruktur ing awan + ing papan
Ngawasi Google Load Balancing

Platform kita uga akeh nggunakake GPU. Google Cloud ngidini sampeyan nggunakake kanthi efektif kanthi langsung ing kluster Kubernetes.

Ing wektu kasebut, tim infrastruktur utamane fokus ing tumpukan warisan sing dipasang ing server fisik. Pramila nggunakake layanan sing dikelola (kalebu master Kubernetes) nyukupi syarat lan ngidini kita nglatih tim supaya bisa nggarap kluster lokal.

Akibaté, kita bisa miwiti nampa lalu lintas produksi ing infrastruktur Google Cloud mung 6 sasi sawise wiwitan kerja.

Nanging, senadyan sawetara kaluwihan, nggarap panyedhiya maya digandhengake karo biaya tartamtu, sing bisa nambah gumantung saka beban. Pramila kita kanthi ati-ati nganalisa saben layanan sing dikelola sing digunakake, ngarep-arep bisa ngetrapake ing papan ing mangsa ngarep. Nyatane, implementasi kluster lokal diwiwiti ing pungkasan taun 2016 lan strategi hibrida diwiwiti ing wektu sing padha.

Bukak platform orkestrasi wadah lokal Dailymotion

Autumn 2016

Ing kahanan nalika kabeh tumpukan siap kanggo produksi, lan bisa ing API terus, iku wektu kanggo musataken ing kluster regional.

Ing wektu iku, pangguna nonton luwih saka 3 milyar video saben wulan. Mesthine, kita duwe Jaringan Pangiriman Konten sing ekstensif sajrone pirang-pirang taun. Kita pengin njupuk kauntungan saka kahanan iki lan nyebarake klompok Kubernetes ing pusat data sing wis ana.

Prasarana Dailymotion kalebu luwih saka 2,5 ewu server ing enem pusat data. Kabeh mau dikonfigurasi nggunakake Saltstack. Kita wiwit nyiapake kabeh resep sing dibutuhake kanggo nggawe kelenjar master lan buruh, uga kluster etcd.

Petualangan Kubernetes Dailymotion: nggawe infrastruktur ing awan + ing papan

bagean jaringan

Jaringan kita wis rampung dialihake. Saben server ngiklanake IP ing jaringan nggunakake Exabgp. Kita mbandhingake sawetara plugin jaringan lan siji-sijine sing nyukupi kabeh kabutuhan (amarga pendekatan L3 sing digunakake) yaiku Calico. Cocog banget karo model infrastruktur jaringan sing ana.

Amarga kita pengin nggunakake kabeh unsur infrastruktur sing kasedhiya, sing kudu ditindakake yaiku ngerteni utilitas jaringan asale (digunakake ing kabeh server): gunakake kanggo ngiklanake kisaran alamat IP ing jaringan kanthi node Kubernetes. We ngidini Calico kanggo nemtokake alamat IP kanggo pods, nanging ora lan isih ora digunakake kanggo sesi BGP ing peralatan jaringan. Nyatane, nuntun ditangani dening Exabgp, sing ngiklanake subnet sing digunakake dening Calico. Iki ngidini kita tekan polong apa wae saka jaringan internal (lan utamane saka penyeimbang beban).

Carane kita ngatur lalu lintas ingress

Kanggo ngarahake panjalukan sing mlebu menyang layanan sing dikarepake, diputusake nggunakake Ingress Controller amarga integrasi karo sumber daya ingress Kubernetes.

Telung taun kepungkur, nginx-ingress-controller minangka pengontrol sing paling diwasa: Nginx wis suwe saya suwe lan dikenal kanthi stabilitas lan kinerja.

Ing sistem kita, kita mutusake kanggo nyelehake pengontrol ing server blade 10-Gigabit sing darmabakti. Saben controller disambungake menyang endpoint kube-apiserver saka kluster sing cocog. Server kasebut uga nggunakake Exabgp kanggo ngiklanake alamat IP umum utawa pribadi. Topologi jaringan kita ngidini kita nggunakake BGP saka pengontrol iki kanggo nuntun kabeh lalu lintas langsung menyang pods tanpa nggunakake layanan kaya NodePort. Pendekatan iki mbantu ngindhari lalu lintas horisontal ing antarane simpul lan nambah efisiensi.

Petualangan Kubernetes Dailymotion: nggawe infrastruktur ing awan + ing papan
Gerakan lalu lintas saka Internet menyang pods

Saiki kita ngerti platform hibrida, kita bisa nyelidiki luwih jero babagan proses migrasi lalu lintas dhewe.

Migrasi lalu lintas saka Google Cloud menyang infrastruktur Dailymotion

Autumn 2018

Sawise meh rong taun mbangun, nguji, lan nyetel, pungkasane kita duwe tumpukan Kubernetes lengkap sing siap nampa lalu lintas.

Petualangan Kubernetes Dailymotion: nggawe infrastruktur ing awan + ing papan

Strategi rute saiki cukup prasaja, nanging cukup kanggo nyukupi kabutuhan. Saliyane IP umum (ing Google Cloud lan Dailymotion), AWS Route 53 digunakake kanggo nyetel kabijakan lan pangalihan panganggo menyang kluster sing dipilih.

Petualangan Kubernetes Dailymotion: nggawe infrastruktur ing awan + ing papan
Conto kabijakan routing nggunakake Route 53

Kanthi Google Cloud, iki gampang amarga nuduhake IP siji ing kabeh klompok lan pangguna dialihake menyang klompok GKE sing paling cedhak. Kanggo kluster kita, teknologi kasebut beda, amarga IP sing beda.

Sajrone migrasi, kita ngupaya ngarahake panjalukan regional menyang klompok sing cocog lan ngevaluasi keuntungan saka pendekatan iki.

Amarga kluster GKE kita dikonfigurasi kanggo skala otomatis nggunakake Metrik Kustom, ukurane munggah/mudhun adhedhasar lalu lintas mlebu.

Ing mode normal, kabeh lalu lintas regional diarahake menyang kluster lokal, lan GKE serves minangka cadangan ing cilik saka masalah (pemeriksaan kesehatan digawa metu dening Route 53).

...

Ing mangsa ngarep, kita pengin ngotomatisasi kabijakan rute kanggo entuk strategi hibrida otonom sing terus nambah aksesibilitas kanggo pangguna. Kajaba iku, biaya awan wis suda banget lan wektu nanggepi API malah wis suda. Kita dipercaya platform maya sing diasilake lan siap ngarahake lalu lintas luwih akeh yen perlu.

PS saka penerjemah

Sampeyan bisa uga kasengsem ing kiriman Dailymotion liyane babagan Kubernetes. Iku darmabakti kanggo panyebaran aplikasi karo Helm ing akeh klompok Kubernetes lan diterbitake udakara sewulan kepungkur.

Waca uga ing blog kita:

Source: www.habr.com

Add a comment