Matukio ya Kubernetes Dailymotion: kuunda miundombinu katika mawingu + kwenye majengo

Matukio ya Kubernetes Dailymotion: kuunda miundombinu katika mawingu + kwenye majengo

Kumbuka. tafsiri.: Dailymotion ni mojawapo ya huduma kubwa zaidi za upangishaji video duniani na kwa hivyo ni mtumiaji mashuhuri wa Kubernetes. Katika nyenzo hii, mbunifu wa mfumo David Donchez anashiriki matokeo ya kuunda jukwaa la uzalishaji wa kampuni kulingana na K8s, ambayo ilianza na usakinishaji wa wingu katika GKE na kumalizika kama suluhisho la mseto, ambalo liliruhusu nyakati bora za majibu na kuokoa gharama za miundombinu.

Kuamua Kuunda Upya API ya Msingi Dailymotion miaka mitatu iliyopita, tulitaka kutengeneza njia bora zaidi ya kupangisha programu na kuifanya iwe rahisi michakato katika maendeleo na uzalishaji. Kwa kusudi hili, tuliamua kutumia jukwaa la ochestration la chombo na kwa asili tukachagua Kubernetes.

Kwa nini inafaa kujenga jukwaa lako mwenyewe kulingana na Kubernetes?

API ya kiwango cha uzalishaji kwa haraka kwa kutumia Wingu la Google

Majira ya joto 2016

Miaka mitatu iliyopita, mara baada ya Dailymotion ilinunuliwa na Vivendi, timu zetu za uhandisi zimezingatia lengo moja la kimataifa: kuunda bidhaa mpya kabisa ya Dailymotion.

Kulingana na uchanganuzi wetu wa vyombo, suluhu za okestra, na uzoefu wetu wa zamani, tunasadikishwa kuwa Kubernetes ndilo chaguo sahihi. Watengenezaji wengine tayari walikuwa na uelewa wa dhana za msingi na walijua jinsi ya kuitumia, ambayo ilikuwa faida kubwa kwa mabadiliko ya miundombinu.

Kwa mtazamo wa miundombinu, mfumo wenye nguvu na unaonyumbulika ulihitajika ili kupangisha aina mpya za programu asilia za wingu. Tulichagua kusalia kwenye wingu mwanzoni mwa safari yetu ili tuweze kujenga jukwaa thabiti zaidi la jukwaani tukiwa na amani ya akili. Tuliamua kupeleka programu zetu kwa kutumia Google Kubernetes Engine, ingawa tulijua kwamba mapema au baadaye tutahamia vituo vyetu vya data na kutumia mkakati mseto.

Kwanini umechagua GKE?

Tulifanya chaguo hili hasa kwa sababu za kiufundi. Kwa kuongeza, ilikuwa ni lazima kutoa haraka miundombinu ambayo inakidhi mahitaji ya biashara ya kampuni. Tulikuwa na baadhi ya mahitaji ya kupangisha maombi, kama vile usambazaji wa kijiografia, ukubwa na uvumilivu wa makosa.

Matukio ya Kubernetes Dailymotion: kuunda miundombinu katika mawingu + kwenye majengo
Vikundi vya GKE katika Dailymotion

Kwa kuwa Dailymotion ni jukwaa la video linalopatikana duniani kote, tulitaka sana kuboresha ubora wa huduma kwa kupunguza muda wa kusubiri (kuchelewa)... Awali API yetu ilipatikana tu huko Paris, ambayo ilikuwa ndogo. Nilitaka kuwa na uwezo wa kukaribisha maombi si tu katika Ulaya, lakini pia katika Asia na Marekani.

Usikivu huu wa muda wa kusubiri ulimaanisha kwamba kazi nzito itabidi ifanywe kwenye usanifu wa mtandao wa jukwaa. Ingawa huduma nyingi za wingu zilikulazimisha kuunda mtandao wako mwenyewe katika kila eneo na kisha kuziunganisha kupitia VPN au aina fulani ya huduma inayodhibitiwa, Google Cloud ilikuruhusu kuunda mtandao mmoja unaoweza kuendeshwa kikamilifu unaojumuisha maeneo yote ya Google. Hii ni pamoja na kubwa katika suala la uendeshaji na ufanisi wa mfumo.

Kwa kuongeza, huduma za mtandao na usawazishaji wa mizigo kutoka Google Cloud hufanya kazi nzuri. Zinakuruhusu tu kutumia anwani za IP za umma kutoka kwa kila eneo, na itifaki nzuri ya BGP inashughulikia zingine (yaani, kuelekeza watumiaji kwenye nguzo iliyo karibu). Ni wazi, katika tukio la kutofaulu, trafiki itaenda moja kwa moja kwa mkoa mwingine bila uingiliaji wowote wa kibinadamu.

Matukio ya Kubernetes Dailymotion: kuunda miundombinu katika mawingu + kwenye majengo
Kufuatilia Usawazishaji wa Mzigo wa Google

Jukwaa letu pia linatumia sana GPU. Wingu la Google hukuruhusu kuzitumia kwa ufanisi mkubwa moja kwa moja katika makundi ya Kubernetes.

Wakati huo, timu ya miundombinu ililenga hasa safu ya urithi iliyotumwa kwenye seva halisi. Ndiyo maana kutumia huduma inayodhibitiwa (ikiwa ni pamoja na Kubernetes masters) ilitimiza mahitaji yetu na kuturuhusu kutoa mafunzo kwa timu kufanya kazi na vikundi vya ndani.

Kwa hivyo, tuliweza kuanza kupokea trafiki ya uzalishaji kwenye miundombinu ya Wingu la Google miezi 6 tu baada ya kuanza kwa kazi.

Hata hivyo, licha ya idadi ya faida, kufanya kazi na mtoa huduma wa wingu kunahusishwa na gharama fulani, ambazo zinaweza kuongezeka kulingana na mzigo. Ndiyo maana tulichanganua kwa makini kila huduma inayodhibitiwa tuliyotumia, tukitumai kuzitekeleza majumbani siku zijazo. Kwa hakika, utekelezaji wa nguzo za ndani ulianza mwishoni mwa 2016 na mkakati wa mseto ulianzishwa wakati huo huo.

Uzinduzi wa jukwaa la ochestration la vyombo vya ndani Dailymotion

Vuli 2016

Katika hali wakati mkusanyiko mzima ulikuwa tayari kwa uzalishaji, na ufanyie kazi API iliendelea, ilikuwa ni wakati wa kuzingatia makundi ya kikanda.

Wakati huo, watumiaji walikuwa wakitazama zaidi ya video bilioni 3 kila mwezi. Bila shaka, tumekuwa na Mtandao wetu wa kina wa Uwasilishaji wa Maudhui kwa miaka mingi. Tulitaka kunufaika na hali hii na kupeleka makundi ya Kubernetes katika vituo vya data vilivyopo.

Miundombinu ya Dailymotion ilikuwa na seva zaidi ya elfu 2,5 katika vituo sita vya data. Zote zimeundwa kwa kutumia Saltstack. Tulianza kuandaa mapishi yote muhimu kwa kuunda nodi za bwana na mfanyakazi, pamoja na nguzo ya etcd.

Matukio ya Kubernetes Dailymotion: kuunda miundombinu katika mawingu + kwenye majengo

Sehemu ya mtandao

Mtandao wetu umesambaratika kabisa. Kila seva inatangaza IP yake kwenye mtandao kwa kutumia Exabgp. Tulilinganisha programu-jalizi kadhaa za mtandao na moja pekee ambayo ilikidhi mahitaji yote (kutokana na mbinu ya L3 iliyotumika) ilikuwa Calico. Inafaa kabisa katika muundo wa miundombinu ya mtandao uliopo.

Kwa kuwa tulitaka kutumia vipengele vyote vya miundombinu vinavyopatikana, jambo la kwanza tulilopaswa kufanya ni kubaini matumizi yetu ya mtandao wa nyumbani (yanayotumiwa kwenye seva zote): itumie kutangaza safu za anwani za IP kwenye mtandao na nodi za Kubernetes. Tuliruhusu Calico kugawa anwani za IP kwa maganda, lakini hatukutumia na bado hatukuitumia kwa vipindi vya BGP kwenye vifaa vya mtandao. Kwa kweli, uelekezaji unashughulikiwa na Exabgp, ambayo inatangaza subnets zinazotumiwa na Calico. Hii inatuwezesha kufikia ganda lolote kutoka kwa mtandao wa ndani (na hasa kutoka kwa wasawazishaji wa mizigo).

Jinsi tunavyodhibiti trafiki inayoingia

Ili kuelekeza upya maombi yanayoingia kwa huduma inayotakiwa, iliamuliwa kutumia Ingress Controller kutokana na kuunganishwa kwake na rasilimali za Kubernetes ingress.

Miaka mitatu iliyopita, nginx-ingress-controller alikuwa mtawala aliyekomaa zaidi: Nginx alikuwapo kwa muda mrefu na alijulikana kwa utulivu na utendaji wake.

Katika mfumo wetu, tuliamua kuweka vidhibiti kwenye seva zilizojitolea za blade 10-Gigabit. Kila kidhibiti kiliunganishwa kwenye sehemu ya mwisho ya kube-apiserver ya nguzo inayolingana. Seva hizi pia zilitumia Exabgp kutangaza anwani za IP za umma au za kibinafsi. Topolojia ya mtandao wetu huturuhusu kutumia BGP kutoka kwa vidhibiti hivi kuelekeza trafiki yote moja kwa moja kwenye maganda bila kutumia huduma kama NodePort. Njia hii husaidia kuzuia trafiki ya usawa kati ya nodi na inaboresha ufanisi.

Matukio ya Kubernetes Dailymotion: kuunda miundombinu katika mawingu + kwenye majengo
Usogeaji wa trafiki kutoka kwa Mtandao hadi kwenye maganda

Kwa kuwa sasa tunaelewa jukwaa letu la mseto, tunaweza kutafakari kwa kina mchakato wa uhamiaji wa trafiki wenyewe.

Uhamishaji wa trafiki kutoka kwa Wingu la Google hadi miundombinu ya Dailymotion

Vuli 2018

Baada ya takriban miaka miwili ya kujenga, kujaribu na kurekebisha, hatimaye tuna rundo kamili la Kubernetes tayari kukubali trafiki fulani.

Matukio ya Kubernetes Dailymotion: kuunda miundombinu katika mawingu + kwenye majengo

Mbinu ya sasa ya uelekezaji ni rahisi sana, lakini inatosha kukidhi mahitaji. Kando na IP za umma (kwenye Google Cloud na Dailymotion), Njia ya 53 ya AWS inatumika kuweka sera na kuwaelekeza watumiaji kwenye kundi tunalochagua.

Matukio ya Kubernetes Dailymotion: kuunda miundombinu katika mawingu + kwenye majengo
Mfano wa sera ya uelekezaji kwa kutumia Njia ya 53

Kwa Wingu la Google hii ni rahisi tunaposhiriki IP moja kwenye makundi yote na mtumiaji anaelekezwa kwingine kwenye nguzo iliyo karibu ya GKE. Kwa makundi yetu teknolojia ni tofauti, kwani IPs zao ni tofauti.

Wakati wa uhamiaji, tulijaribu kuelekeza maombi ya kikanda kwenye vikundi vinavyofaa na kutathmini manufaa ya mbinu hii.

Kwa sababu makundi yetu ya GKE yamesanidiwa kuwa ya kiotomatiki kwa kutumia Metriki Maalum, yanaongezeka/chini kulingana na trafiki inayoingia.

Katika hali ya kawaida, trafiki yote ya kikanda inaelekezwa kwa nguzo ya ndani, na GKE hutumika kama hifadhi katika kesi ya matatizo (ukaguzi wa afya unafanywa na Njia ya 53).

...

Katika siku zijazo, tunataka kuhariri sera za uelekezaji kiotomatiki kikamilifu ili kufikia mkakati wa mseto unaojiendesha ambao huendelea kuboresha ufikiaji wa watumiaji. Kwa upande mzuri, gharama za wingu zimepunguzwa sana na nyakati za majibu ya API zimepunguzwa. Tunaamini jukwaa la wingu linalotokana na tuko tayari kuelekeza upya trafiki zaidi kwake ikihitajika.

PS kutoka kwa mtafsiri

Unaweza pia kupendezwa na chapisho lingine la hivi majuzi la Dailymotion kuhusu Kubernetes. Imejitolea kwa utumaji wa maombi na Helm kwenye vikundi vingi vya Kubernetes na ilichapishwa takriban mwezi mmoja uliopita.

Soma pia kwenye blogi yetu:

Chanzo: mapenzi.com

Kuongeza maoni