
ShĂ«n. pĂ«rk.: Dailymotion â njĂ« nga shĂ«rbimet mĂ« tĂ« mĂ«dha nĂ« botĂ« pĂ«r hostimin e videove dhe prandaj njĂ« pĂ«rdorues i njohur i Kubernetes. NĂ« kĂ«tĂ« material, arkitekti i sistemeve David Donchez ndan rezultatet e krijimit tĂ« platformĂ«s prodhim tĂ« kompanisĂ« bazuar nĂ« K8s, e cila filloi me njĂ« instalim nĂ« cloud nĂ« GKE dhe pĂ«rfundoi si njĂ« zgjidhje hibride, e cila lejoi arritjen e kohĂ«zgjatjes mĂ« tĂ« mirĂ« dhe kursimin e kostove tĂ« infrastrukturĂ«s.
Kur morëm vendimin për të ristrukturuar API-në kryesore tre vjet më parë, ne donim të zhvillonim një mënyrë më efikase për të vendosur aplikacione dhe për të lehtësuar . Për këtë qëllim, ne vendosëm të përdorim platformën e orkestrimit të kontejnerëve dhe natyrshëm zgjedhëm Kubernetes.
Pse ia vlen të krijosh një platformë të vetën mbi Kubernetes?
API në nivel prodhimi në një kohë të shkurtër me ndihmën e Google Cloud
Vera e vitit 2016
Tre vjet më parë, menjëherë pas blerjes së Dailymotion nga , ekipet tona inxhinierike u përqendruan në një qëllim global: të krijojmë një produkt krejt të ri Dailymotion.
Pas pas analizës së kontejnerëve, zgjidhjeve për orkestrimin dhe përvojës tonë të kaluar, arritëm në përfundimin se Kubernetes është zgjedhja e duhur. Pjesa e zhvilluesve tashmë kishte njohuri mbi konceptet bazë dhe dinin si ta përdorin, gjë që ishte një avantazh i madh për transformimin e infrastrukturës.
Nga perspektiva e infrastrukturës, na duhej një sistem i fuqishëm dhe fleksibël për të akomoduar lloje të reja aplikacionesh cloud-native. Ne preferuam të qëndronim në cloud në fillim të udhëtimit tonë, për të ndërtuar pa stress një platformë lokale sa më të besueshme. Aplikacionet tonë i zgjodhëm t'i vendosnim përmes Google Kubernetes Engine, megjithëse e dinim se herët a vonë do të kalonim në Qendrat tona të të Dhënave dhe do të aplikonim një strategji hibrid.
Përse zgjodhëm GKE?
Ky vendim u mor kryesisht për arsye teknike. Për më tepër, ishte e nevojshme të ofronim shpejt infrastrukturë që i përgjigjej nevojave të biznesit. Kishim disa kërkesa për vendosjen e aplikacioneve, siç janë shpërndarja gjeografike, shkallëzueshmëria dhe qëndrueshmëria ndaj dështimeve.

Klasterët GKE në Dailymotion
Dailymotion është një platformë video globale, dhe ne doja të përmirësonim cilësinë e shërbimit duke reduktuar kohën e pritjes (latencë). Më parë ishte në dispozicion vetëm në Paris, që ishte e papërshtatshme. Donim të kishim mundësinë për të vendosur aplikacionet jo vetëm në Evropë, por edhe në Azi dhe SHBA.
Kjo ndjeshmëri ndaj vonesave nënkuptonte se do të duhej të punonim shumë në arkitekturën rrjetit të platformës. Ndërsa shumica e shërbimeve cloud kërkonin krijimin e rrjetit të tyre në çdo rajon dhe pastaj t'i lidhin ato përmes VPN-së ose ndonjë shërbimi të menaxhuar, Google Cloud lejonte të krijohej një rrjet tërësor i menaxhueshëm që mbulonte të gjitha rajonet e Google. Kjo është një avantazh i madh për operimin dhe efikasitetin e sistemit.
PĂ«r mĂ« tepĂ«r, shĂ«rbimet rrjet dhe balancuesit e ngarkesĂ«s nga Google Cloud pĂ«rmirĂ«sojnĂ« jashtĂ«zakonisht mirĂ« punĂ«n e tyre. Ato thjesht lejojnĂ« pĂ«rdorimin e IP-ve publike nga çdo rajon, dhe protokolli i mrekullueshĂ«m BGP do tĂ« kujdeset pĂ«r gjithçka tjetĂ«r (domethĂ«nĂ«, do t'i drejtojĂ« pĂ«rdoruesit nĂ« grupin mĂ« tĂ« afĂ«rt). ĂshtĂ« e qartĂ« se nĂ« rast tĂ« njĂ« dĂ«shtimi, trafiku do tĂ« kalojĂ« automatikisht nĂ« njĂ« rajon tjetĂ«r pa ndonjĂ« ndĂ«rhyrje tĂ« njeriut.

Monitorimi i balancimit të ngarkesave në Google
Platforma jonë gjithashtu përfshin aktive grafikët e procesorëve. Google Cloud lejon përdorimin e tyre mjaft efikas direkt në klasteret Kubernetes.
Në të njëjtën kohë, ekipi ynë i infrastrukturës u përqendrua kryesisht në stakun e vjetër, të vendosur në serverat fizikë. Kjo është arsyeja pse përdorimi i shërbimeve të menaxhuara (përfshirë komponentët kryesorë të Kubernetes) përmbushi kërkesat tona dhe ua mundësoi ekipeve të mësojnë se si të punojnë me klasteret lokale.
Si rezultat, ne arritëm të fillojmë të pranojmë trafik production në infrastrukturën Google Cloud vetëm 6 muaj pas fillimit të punës.
Megjithatë, pavarësisht një sërë përfitimesh, puna me ofruesin e shërbimeve në cloud ka kosto të caktuara, të cilat mund të rriten në varësi të ngarkesës. Kjo është arsyeja pse ne e analizuam me kujdes çdo shërbim të menaxhuar që përdorim, me synimin për ta implementuar atë vetë në të ardhmen. Në të vërtetë, implementimi i klasterëve lokalë filloi në fund të vitit 2016 dhe po atëherë u nis strategjia hibride.
Lançimi i platformës lokale të orkestrimit të kontejnerëve Dailymotion
Autumn 2016
Në kushtet kur e gjithë staku ishte gati për prodhim, dhe puna mbi API , ishte koha për t'u përqendruar në klasterët rajonalë.
Në atë kohë, përdoruesit shihnin më shumë se 3 miliard video çdo muaj. Natyrisht, ne kishim një rrjet të gjerë të Content Delivery Network që funksiononte prej vitesh. Ne donim të përfitojmë nga kjo mundësi dhe të vendosnim klasterë Kubernetes në qendrat ekzistuese të të dhënave.
Infrastrukturë Dailymotion ka më shumë se 2,5 mijë servera në gjashtë qendra të të dhënave. Të gjithë ata konfigurohen me Saltstack. Ne filluam të përgatisim të gjitha recetat e nevojshme për krijimin e master- dhe worker-nodëve, si dhe të klasterit etcd.

Pjesa rrjetë
Rrjeti ynĂ« Ă«shtĂ« plotĂ«sisht i ĐŒĐ°ŃŃŃŃtueshĂ«m. Ădo server shpall IP-nĂ« e tij nĂ« rrjet me ndihmĂ«n e Exabgp. Ne krahasuam disa shtesa tĂ« rrjetit dhe i vetmi qĂ« pĂ«rmbushte tĂ« gjitha nevojat (pĂ«r shkak tĂ« qasjes sĂ« pĂ«rdorur nĂ« nivelin L3) ishte . Ai u pĂ«rshtat mrekullisht nĂ« modelin ekzistues tĂ« rrjetit tĂ« infrastrukturĂ«s.
Duke donim me gjithĂ« elementet e infrastrukturĂ«s, sĂ« pari duhej tĂ« kuptonim utilitarin tonĂ« tĂ« rrjetit (i pĂ«rdorur nĂ« tĂ« gjitha ŃĐ”ŃĐČĐ”ŃĂ«t): ta pĂ«rdorim atĂ« pĂ«r tĂ« shpallur rangjet e adresave IP nĂ« rrjet me nodet e Kubernetes. I lejuam Calico qĂ« tĂ« caktonte adresat IP pĂ«r pod-et, por nuk e pĂ«rdorĂ«m asnjĂ«herĂ« pĂ«r seancat BGP nĂ« pajisjet rrjetĂ«sore. NĂ« fakt, rrugĂ«s merret Exabgp, i cili shpall subnetet qĂ« pĂ«rdoren nga Calico. Kjo na lejon tĂ« arrijmĂ« çdo pod nga rrjeti intern (dhe veçanĂ«risht nga balancuesit e ngarkesĂ«s).
Si e menaxhojmë trafikun ingress
Për të ridrejtuar kërkesat e ardhshme në shërbimin e duhur, vendosëm të përdorim Ingress Controller për shkak të integrimit të tij me burimet ingress të Kubernetes.
Tre vjet më parë, nginx-ingress-controller ishte kontrolluesi më i pjekur: Nginx ishte përdorur prej kohësh dhe ishte i njohur për stabilitetin dhe performancën e tij.
Sistemi ynĂ« vendosi tĂ« vendosĂ« kontrollues nĂ« serverat blerĂ« tĂ« veçantĂ« me 10 gigabita. Ădo kontrollues u lidh me endpoint-in e kube-apiserver tĂ« klasterit pĂ«rkatĂ«s. KĂ«ta serverĂ« gjithashtu pĂ«rdorĂ«n Exabgp pĂ«r tĂ« shpallur adresat IP publike ose private. Topologjia e rrjetit tonĂ« lejon pĂ«rdorimin e BGP nga kĂ«ta kontrollues pĂ«r tĂ« drejtuar tĂ« gjithĂ« trafikun direkt nĂ« pod-et pa pĂ«rdorur njĂ« shĂ«rbim si NodePort. Ky qasje ndihmon nĂ« shmangien e trafikut horizontal midis nyjeve dhe rrit efikasitetin.

Lëvizja e trafikut nga interneti drejt pod-eve
Tani që jemi përgatitur me platformën tonë hibride, mund të thellohemi në procesin e migrimit të trafikut.
Migrimi i trafikut nga Google Cloud në infrastrukturën e Dailymotion
Vjeshta 2018
Pas pothuajse dy vitesh ndërtimi, testimi dhe konfigurimi, ne përfunduam me një stak të plotë Kubernetes, të gatshëm për të pranuar një pjesë të trafikut.

Strategjia aktuale e marrjes së vendimeve është mjaft e thjeshtë, por plotëson nevojat. Përshtatëset IP publike (në Google Cloud dhe Dailymotion) përdorin AWS Route 53 për të vendosur politika dhe për të drejtuar përdoruesit në klasterin sipas zgjedhjes sonë.

Shembulli i politikës së routing-ut duke përdorur Route 53
Me Google Cloud, kjo është e thjeshtë, pasi ne përdorim një IP të vetme për të gjithë klasterët dhe përdoruesi drejtohet në klasterin më të afërt GKE. Për klasterët tanë, teknologjia është ndryshe, pasi IP-të e tyre ndryshojnë.
Gjatë migrimit, ne synuam të drejtonim kërkesat rajonale në klasterët përkatës dhe vlerësuam përfitimet e këtij qasje.
Sepse klasterët tanë GKE janë konfiguruar për shkallëzim automatik duke përdorur Metrika të Personalizuara, ata rrisin/reduktin kapacitetet në varësi të trafikut që hyn.
Në mënyrë normale, gjith trafiku rajonal drejtohet në klasterin lokal, ndërsa GKE shërben si rezervë në rast të problemeve (kontrolli i shëndetit kryhet nga Route 53).
âŠ
Në të ardhmen, ne duam të automatizojmë plotësisht politikat e routing-ut për të krijuar një strategji hibride autonome, e cila përmirëson vazhdimisht aksesin për përdoruesit. Në lidhje me përfitimet: shpenzimet për cloud janë reduktuar ndjeshëm dhe gjithashtu kemi arritur të zvogëlojmë kohën e reagimit të API. Ne besojmë në platformën e cloud që kemi krijuar dhe jemi të gatshëm të drejtojmë më shumë trafik në të nëse është e nevojshme.
P.S. nga përkthyesi
Ndoshta do t'ju interesojë një publikim tjetër të fundit nga Dailymotion në lidhje me Kubernetes. Ai është dedikuar deploy-it të aplikacioneve me Helm në shumë klastera Kubernetes dhe rreth një muaji më parë.
Lexoni gjithashtu në blogun tonë:
- «».
- «»;
- «»;
- «»;
- «»;
- «»;
- «»;
- «»;
- «»;
- «»;
- «».
Burimi: habr.com
