PiezÄ«me. tulk.: Dailymotion ir viens no pasaulÄ lielÄkajiem video mitinÄÅ”anas pakalpojumiem un tÄpÄc ievÄrojams Kubernetes lietotÄjs. Å ajÄ materiÄlÄ sistÄmas arhitekts Deivids DonÄess dalÄs ar uzÅÄmuma K8s bÄzes ražoÅ”anas platformas izveides rezultÄtiem, kas sÄkÄs ar mÄkoÅa instalÄciju GKE un beidzÄs kÄ hibrÄ«ds risinÄjums, kas ļÄva nodroÅ”inÄt labÄkus reakcijas laikus un ietaupÄ«t infrastruktÅ«ras izmaksas.
LÄmums atjaunot galveno API Dailymotion Pirms trim gadiem mÄs vÄlÄjÄmies izstrÄdÄt efektÄ«vÄku veidu lietojumprogrammu mitinÄÅ”anai un atvieglot to izstrÄdes un ražoÅ”anas procesi. Å im nolÅ«kam mÄs nolÄmÄm izmantot konteineru orÄ·estrÄÅ”anas platformu un dabiski izvÄlÄjÄmies Kubernetes.
KÄpÄc ir vÄrts izveidot savu platformu, pamatojoties uz Kubernetes?
RažoÅ”anas lÄ«meÅa API Ä«sÄ laikÄ, izmantojot Google Cloud
2016. gada vasara
Pirms trim gadiem, uzreiz pÄc tam, kad Dailymotion iegÄdÄjÄs Vivendi, mÅ«su inženieru komandas ir koncentrÄjuÅ”Äs uz vienu globÄlu mÄrÄ·i: izveidot pilnÄ«gi jaunu Dailymotion produktu.
Pamatojoties uz mÅ«su konteineru analÄ«zi, orÄ·estrÄÅ”anas risinÄjumiem un mÅ«su iepriekÅ”Äjo pieredzi, mÄs esam pÄrliecinÄti, ka Kubernetes ir pareizÄ izvÄle. Daži izstrÄdÄtÄji jau saprata pamatjÄdzienus un prata to izmantot, kas bija milzÄ«ga priekÅ”rocÄ«ba infrastruktÅ«ras pÄrveidoÅ”anai.
No infrastruktÅ«ras viedokļa bija nepiecieÅ”ama jaudÄ«ga un elastÄ«ga sistÄma, lai mitinÄtu jauna veida mÄkoÅdatoÅ”anas lietojumprogrammas. Ceļojuma sÄkumÄ mÄs izvÄlÄjÄmies palikt mÄkonÄ«, lai ar mierÄ«gu sirdi varÄtu izveidot visspÄcÄ«gÄko iespÄjamo lokÄlo platformu. MÄs nolÄmÄm izvietot savas lietojumprogrammas, izmantojot Google Kubernetes Engine, lai gan zinÄjÄm, ka agrÄk vai vÄlÄk pÄrcelsimies uz saviem datu centriem un izmantosim hibrÄ«da stratÄÄ£iju.
KÄpÄc izvÄlÄjÄties GKE?
Å o izvÄli izdarÄ«jÄm galvenokÄrt tehnisku iemeslu dÄļ. TurklÄt bija nepiecieÅ”ams operatÄ«vi nodroÅ”inÄt uzÅÄmuma biznesa vajadzÄ«bÄm atbilstoÅ”u infrastruktÅ«ru. Mums bija dažas prasÄ«bas lietojumprogrammu mitinÄÅ”anai, piemÄram, Ä£eogrÄfiskais sadalÄ«jums, mÄrogojamÄ«ba un kļūdu tolerance.
GKE kopas pakalpojumÄ Dailymotion
TÄ kÄ Dailymotion ir visÄ pasaulÄ pieejama video platforma, mÄs patieÅ”Äm vÄlÄjÄmies uzlabot pakalpojuma kvalitÄti, samazinot gaidÄ«Å”anas laiku (latents)... IepriekÅ” mÅ«su API bija pieejams tikai ParÄ«zÄ, kas nebija optimÄls. Es gribÄju, lai varÄtu uzÅemt aplikÄcijas ne tikai EiropÄ, bet arÄ« ÄzijÄ un ASV.
Å Ä« jutÄ«ba pret latentumu nozÄ«mÄja, ka bÅ«s jÄveic nopietns darbs pie platformas tÄ«kla arhitektÅ«ras. Lai gan lielÄkÄ daļa mÄkoÅpakalpojumu lika jums izveidot savu tÄ«klu katrÄ reÄ£ionÄ un pÄc tam savienot tos, izmantojot VPN vai kÄdu pÄrvaldÄ«tu pakalpojumu, Google Cloud ļÄva jums izveidot pilnÄ«bÄ marÅ”rutÄjamu vienotu tÄ«klu, kas aptver visus Google reÄ£ionus. Tas ir liels pluss sistÄmas darbÄ«bas un efektivitÄtes ziÅÄ.
TurklÄt Google Cloud tÄ«kla pakalpojumi un slodzes balansÄtÄji paveic lielisku darbu. Tie vienkÄrÅ”i ļauj izmantot patvaļīgas publiskÄs IP adreses no katra reÄ£iona, un brÄ«niŔķīgais BGP protokols rÅ«pÄjas par pÄrÄjo (t.i., lietotÄju novirzÄ«Å”anu uz tuvÄko kopu). AcÄ«mredzot neveiksmes gadÄ«jumÄ satiksme automÄtiski virzÄ«sies uz citu reÄ£ionu bez cilvÄka iejaukÅ”anÄs.
Google slodzes lÄ«dzsvaroÅ”anas pÄrraudzÄ«ba
Mūsu platforma arī intensīvi izmanto GPU. Google Cloud ļauj tos ļoti efektīvi izmantot tieŔi Kubernetes klasteros.
TajÄ laikÄ infrastruktÅ«ras komanda galvenokÄrt koncentrÄjÄs uz mantoto steku, kas tika izvietots fiziskajos serveros. TÄpÄc pÄrvaldÄ«ta pakalpojuma izmantoÅ”ana (tostarp Kubernetes meistari) atbilda mÅ«su prasÄ«bÄm un ļÄva mums apmÄcÄ«t komandas darbam ar vietÄjiem klasteriem.
RezultÄtÄ mÄs varÄjÄm sÄkt saÅemt ražoÅ”anas trafiku Google Cloud infrastruktÅ«rÄ tikai 6 mÄneÅ”us pÄc darba sÄkuma.
TomÄr, neskatoties uz vairÄkÄm priekÅ”rocÄ«bÄm, darbs ar mÄkoÅpakalpojumu sniedzÄju ir saistÄ«ts ar noteiktÄm izmaksÄm, kuras var palielinÄties atkarÄ«bÄ no slodzes. TÄpÄc mÄs rÅ«pÄ«gi analizÄjÄm katru izmantoto pÄrvaldÄ«to pakalpojumu, cerot nÄkotnÄ tos ieviest uz vietas. Faktiski vietÄjo klasteru ievieÅ”ana sÄkÄs 2016. gada beigÄs un tajÄ paÅ”Ä laikÄ tika uzsÄkta hibrÄ«dstratÄÄ£ija.
ApstÄkļos, kad visa kaudze bija gatava ražoÅ”anai, un darbs pie API turpinÄjÄs, bija laiks koncentrÄties uz reÄ£ionÄlajÄm kopÄm.
TajÄ laikÄ lietotÄji katru mÄnesi skatÄ«jÄs vairÄk nekÄ 3 miljardus videoklipu. Protams, mums jau daudzus gadus ir savs plaÅ”s satura piegÄdes tÄ«kls. MÄs vÄlÄjÄmies izmantot Å”o apstÄkli un esoÅ”ajos datu centros izvietot Kubernetes klasterus.
Dailymotion infrastruktÅ«ru veidoja vairÄk nekÄ 2,5 tÅ«kstoÅ”i serveru seÅ”os datu centros. Visi tie ir konfigurÄti, izmantojot Saltstack. MÄs sÄkÄm sagatavot visas nepiecieÅ”amÄs receptes, lai izveidotu galveno un darbinieku mezglus, kÄ arÄ« etcd klasteru.
Tīkla daļa
MÅ«su tÄ«kls ir pilnÄ«bÄ marÅ”rutÄts. Katrs serveris reklamÄ savu IP tÄ«klÄ, izmantojot Exabgp. MÄs salÄ«dzinÄjÄm vairÄkus tÄ«kla spraudÅus, un vienÄ«gais, kas apmierinÄja visas vajadzÄ«bas (lietotÄs L3 pieejas dÄļ), bija Calico. Tas lieliski iekļaujas esoÅ”ajÄ tÄ«kla infrastruktÅ«ras modelÄ«.
TÄ kÄ mÄs vÄlÄjÄmies izmantot visus pieejamos infrastruktÅ«ras elementus, pirmais, kas mums bija jÄdara, bija izdomÄt mÅ«su paÅ”mÄju tÄ«kla utilÄ«tu (tiek izmantota visos serveros): izmantojiet to, lai reklamÄtu IP adreÅ”u diapazonus tÄ«klÄ ar Kubernetes mezgliem. MÄs atļÄvÄm Calico pieŔķirt IP adreses podiem, taÄu neizmantojÄm un joprojÄm neizmantojam to BGP sesijÄm tÄ«kla iekÄrtÄs. Faktiski marÅ”rutÄÅ”anu apstrÄdÄ Exabgp, kas reklamÄ Calico izmantotos apakÅ”tÄ«klus. Tas ļauj mums sasniegt jebkuru podziÅu no iekÅ”ÄjÄ tÄ«kla (un jo Ä«paÅ”i no slodzes balansÄtÄjiem).
KÄ mÄs pÄrvaldÄm ienÄkoÅ”o trafiku
Lai novirzÄ«tu ienÄkoÅ”os pieprasÄ«jumus uz vÄlamo pakalpojumu, tika nolemts izmantot Ingress Controller, jo tas ir integrÄts ar Kubernetes ieejas resursiem.
Pirms trim gadiem nginx-ingress-controller bija visnobrieduÅ”Äkais kontrolieris: Nginx bija pieejams jau ilgu laiku un bija pazÄ«stams ar savu stabilitÄti un veiktspÄju.
MÅ«su sistÄmÄ mÄs nolÄmÄm novietot kontrolierus uz Ä«paÅ”iem 10 gigabitu asmens serveriem. Katrs kontrolieris bija savienots ar atbilstoÅ”Ä klastera kube-apiserver gala punktu. Å ie serveri arÄ« izmantoja Exabgp, lai reklamÄtu publiskas vai privÄtas IP adreses. MÅ«su tÄ«kla topoloÄ£ija ļauj mums izmantot BGP no Å”iem kontrolieriem, lai novirzÄ«tu visu trafiku tieÅ”i uz podiem, neizmantojot tÄdu pakalpojumu kÄ NodePort. Å Ä« pieeja palÄ«dz izvairÄ«ties no horizontÄlas satiksmes starp mezgliem un uzlabo efektivitÄti.
Satiksmes kustība no interneta uz podiem
Tagad, kad esam izpratuÅ”i mÅ«su hibrÄ«dplatformu, varam iedziļinÄties paÅ”Ä satiksmes migrÄcijas procesÄ.
Trafika migrÄÅ”ana no Google Cloud uz Dailymotion infrastruktÅ«ru
2018. gada rudens
PÄc gandrÄ«z divu gadu izveides, testÄÅ”anas un regulÄÅ”anas mums beidzot ir pilna Kubernetes steka, kas ir gatava pieÅemt kÄdu trafiku.
PaÅ”reizÄjÄ marÅ”rutÄÅ”anas stratÄÄ£ija ir diezgan vienkÄrÅ”a, taÄu pietiekama, lai apmierinÄtu vajadzÄ«bas. Papildus publiskajÄm IP adresÄm (pakalpojumos Google Cloud un Dailymotion) AWS Route 53 tiek izmantots, lai iestatÄ«tu politikas un novirzÄ«tu lietotÄjus uz mÅ«su izvÄlÄto kopu.
MarÅ”rutÄÅ”anas politikas piemÄrs, izmantojot 53. marÅ”rutu
Izmantojot Google Cloud, tas ir vienkÄrÅ”i, jo mÄs koplietojam vienu IP visÄs kopÄs un lietotÄjs tiek novirzÄ«ts uz tuvÄko GKE kopu. MÅ«su klasteriem tehnoloÄ£ija ir atŔķirÄ«ga, jo to IP atŔķiras.
MigrÄÅ”anas laikÄ mÄs centÄmies novirzÄ«t reÄ£ionÄlos pieprasÄ«jumus uz atbilstoÅ”Äm kopÄm un novÄrtÄjÄm Ŕīs pieejas priekÅ”rocÄ«bas.
TÄ kÄ mÅ«su GKE kopas ir konfigurÄtas automÄtiskai mÄrogoÅ”anai, izmantojot pielÄgoto metriku, to mÄrogoÅ”ana tiek palielinÄta/samazinÄta, pamatojoties uz ienÄkoÅ”o trafiku.
NormÄlÄ režīmÄ visa reÄ£ionÄlÄ satiksme tiek novirzÄ«ta uz vietÄjo klasteru, un GKE kalpo kÄ rezerve problÄmu gadÄ«jumÄ (veselÄ«bas pÄrbaudes veic 53. marÅ”ruts).
...
NÄkotnÄ mÄs vÄlamies pilnÄ«bÄ automatizÄt marÅ”rutÄÅ”anas politikas, lai izveidotu autonomu hibrÄ«da stratÄÄ£iju, kas pastÄvÄ«gi uzlabo pieejamÄ«bu lietotÄjiem. PozitÄ«vi ir tas, ka mÄkoÅdatoÅ”anas izmaksas ir ievÄrojami samazinÄtas un API reakcijas laiks ir pat samazinÄts. MÄs uzticamies izveidotajai mÄkoÅa platformai un vajadzÄ«bas gadÄ«jumÄ esam gatavi uz to novirzÄ«t lielÄku trafiku.
PS no tulka
JÅ«s varÄtu interesÄt arÄ« cita nesenÄ Dailymotion ziÅa par Kubernetes. Tas ir paredzÄts lietojumprogrammu izvietoÅ”anai ar Helm daudzos Kubernetes klasteros un tika publicÄts apmÄram pirms mÄneÅ”a.