Kubernetes Abenteuer Dailymotion: Schafe vun Infrastruktur an de Wolleken + on-premises

Kubernetes Abenteuer Dailymotion: Schafe vun Infrastruktur an de Wolleken + on-premises

Note. iwwersat.: Dailymotion ass ee vun de weltgréisste Videohostingservicer an dofir e Notabele Kubernetes Benotzer. An dësem Material deelt de Systemarchitekt David Donchez d'Resultater vun der Schafung vun der Produktiounsplattform vun der Firma baséiert op K8s, déi mat enger Cloudinstallatioun an GKE ugefaang huet an als Hybridléisung ofgeschloss ass, wat fir besser Äntwertzäiten a Spueren op Infrastrukturkäschten erlaabt huet.

Entscheede fir de Core API nei opzebauen Dailymotion Virun dräi Joer wollte mir e méi effiziente Wee entwéckelen fir Uwendungen ze hosten an et méi einfach ze maachen Prozesser an der Entwécklung a Produktioun. Fir dësen Zweck hu mir décidéiert eng Container-Orchestratiounsplattform ze benotzen an hunn natierlech Kubernetes gewielt.

Firwat ass et derwäert Är eege Plattform op Kubernetes ze bauen?

Produktiounsniveau API a keng Zäit mat Google Cloud

Summer 2016

Virun dräi Joer, direkt nodeems Dailymotion kaaft gouf vun Vivendi, eis Ingenieursteams konzentréieren sech op ee globalt Zil: e komplett neit Dailymotion Produkt ze kreéieren.

Baséierend op eiser Analyse vu Container, Orchestratiounsléisungen an eiser vergaangener Erfahrung, si mir iwwerzeegt datt Kubernetes déi richteg Wiel ass. E puer Entwéckler hate schonn e Verständnis vun de Basiskonzepter a woussten wéi se se benotzen, wat e grousse Virdeel fir d'Infrastrukturtransformatioun war.

Aus enger Infrastrukturperspektiv war e mächtege a flexibele System erfuerderlech fir nei Aarte vu Cloud-native Applikatiounen ze hosten. Mir hu gewielt fir am Ufank vun eiser Rees an der Wollek ze bleiwen, sou datt mir déi robustst on-premise Plattform méiglech mat Fridden vum Geescht bauen. Mir hunn decidéiert eis Uwendungen mat Google Kubernetes Engine z'installéieren, obwuel mir woussten datt desto oder spéider mir an eis eegen Datenzentere géife plënneren an eng Hybridstrategie uwenden.

Firwat hutt Dir GKE gewielt?

Mir hunn dëse Choix haaptsächlech aus technesche Grënn gemaach. Ausserdeem war et néideg fir séier Infrastrukturen ze bidden déi de Geschäftsbedürfnisser vun der Firma entsprécht. Mir haten e puer Ufuerderunge fir Hosting Uwendungen, wéi geographesch Verdeelung, Skalierbarkeet a Feelertoleranz.

Kubernetes Abenteuer Dailymotion: Schafe vun Infrastruktur an de Wolleken + on-premises
GKE Cluster am Dailymotion

Zënter Dailymotion ass eng Videoplattform déi weltwäit verfügbar ass, wollte mir wierklech d'Qualitéit vum Service verbesseren andeems d'Waardezäit reduzéiert gëtt (latency)... Virdrun eis API war nëmmen zu Paräis verfügbar, wat suboptimal war. Ech wollt fäeg sinn Uwendungen net nëmmen an Europa ze hosten, awer och an Asien an den USA.

Dës Sensibilitéit fir d'Latenz huet bedeit datt seriös Aarbecht un der Netzwierkarchitektur vun der Plattform gemaach musse ginn. Wärend déi meescht Cloud Servicer Iech gezwongen hunn Äert eegent Netzwierk an all Regioun ze kreéieren an se dann duerch e VPN oder eng Aart vu verwalteten Service ze verbannen, Google Cloud erlaabt Iech e komplett routablen eenzegen Netzwierk ze kreéieren deen all Google Regiounen ofdeckt. Dëst ass e grousse Plus a punkto Operatioun an Effizienz vum System.

Zousätzlech maachen Netzwierkservicer a Lastbalancer vu Google Cloud eng exzellent Aarbecht. Si erlaben Iech einfach arbiträr ëffentlech IP Adressen aus all Regioun ze benotzen, an déi wonnerbar BGP Protokoll këmmert sech ëm de Rescht (dh d'Benotzer an de nooste Stärekoup ëmgeleet). Natierlech geet de Verkéier am Fall vun engem Ausfall automatesch an eng aner Regioun ouni mënschlech Interventioun.

Kubernetes Abenteuer Dailymotion: Schafe vun Infrastruktur an de Wolleken + on-premises
Iwwerwaachung vu Google Load Balancing

Eis Plattform mécht och schwéier Notzung vu GPUs. Google Cloud erlaabt Iech se ganz effektiv direkt a Kubernetes Cluster ze benotzen.

Zu där Zäit war d'Infrastrukturteam haaptsächlech op de Legacy-Stack konzentréiert, deen op kierperleche Serveren ofgesat gouf. Dofir huet d'Benotzung vun engem verwalteten Service (inklusive Kubernetes Masters) eis Ufuerderungen erfëllt an eis erlaabt Teams ze trainéieren fir mat lokale Cluster ze schaffen.

Als Resultat konnte mir de Produktiounsverkéier op der Google Cloud Infrastruktur just 6 Méint nom Start vun der Aarbecht ufänken.

Wéi och ëmmer, trotz enger Rei vu Virdeeler, ass d'Aarbecht mat engem Cloud Provider mat bestëmmte Käschten assoziéiert, déi ofhängeg vun der Laascht eropgoen. Dofir hu mir all verwaltete Service suergfälteg analyséiert, dee mir benotzt hunn, an der Hoffnung, se an der Zukunft op der Plaz ëmzesetzen. Tatsächlech huet d'Ëmsetzung vu lokale Cluster Enn 2016 ugefaang an d'Hybridstrategie gouf zur selwechter Zäit initiéiert.

Lancéiere vun lokal Container Orchestratioun Plattform Dailymotion

Hierscht 2016

An Konditiounen wou de ganze Stack fir Produktioun prett war, an Aarbecht op der API weider, et war Zäit sech op regional Cluster ze konzentréieren.

Zu där Zäit hunn d'Benotzer all Mount méi wéi 3 Milliarde Videoe gekuckt. Natierlech hu mir eist eegent extensiv Content Delivery Network fir vill Joren. Mir wollte vun dëser Ëmstänn profitéieren an Kubernetes Cluster an existéierende Rechenzentren ofsetzen.

D'Infrastruktur vun Dailymotion bestoung aus méi wéi 2,5 Tausend Server a sechs Rechenzentren. All vun hinnen sinn mat Saltstack konfiguréiert. Mir hunn ugefaang all déi néideg Rezepter ze preparéieren fir Meeschter- an Aarbechtsknäppchen ze kreéieren, souwéi en etcd-Cluster.

Kubernetes Abenteuer Dailymotion: Schafe vun Infrastruktur an de Wolleken + on-premises

Netz Deel

Eist Netzwierk ass komplett geréckelt. All Server annoncéiert seng IP am Netz mat Exabgp. Mir verglach e puer Netzwierk Plugins an deen eenzegen deen all Bedierfnesser zefridden huet (wéinst der L3 Approche benotzt) war Calico. Et passt perfekt an déi existent Netzwierkinfrastrukturmodell.

Well mir all déi verfügbar Infrastrukturelementer benotze wollten, ass dat éischt wat mir hu misse maachen, eist hausgemaachte Netzwierk Utility erauszefannen (op all Server benotzt): benotzt se fir IP Adressbereich am Netz mat Kubernetes Noden ze advertéieren. Mir hunn Calico erlaabt IP Adressen un Pods ze ginn, awer hunn et net a benotzt se nach ëmmer net fir BGP Sessiounen op Netzwierkausrüstung. Tatsächlech gëtt Routing vum Exabgp gehandhabt, wat d'Subnets annoncéiert, déi vum Calico benotzt ginn. Dëst erlaabt eis all Pod aus dem internen Netzwierk z'erreechen (a besonnesch vu Lastbalancer).

Wéi mir den Ingressverkéier verwalten

Fir Entréeën Ufroen op de gewënschten Service ze redirectéieren, gouf decidéiert Ingress Controller ze benotzen wéinst senger Integratioun mat Kubernetes Ingress Ressourcen.

Virun dräi Joer war nginx-ingress-Controller dee meeschte reife Controller: Nginx war scho laang ronderëm a war bekannt fir seng Stabilitéit a Leeschtung.

An eisem System hu mir décidéiert d'Controller op engagéierten 10-Gigabit Blade Serveren ze setzen. All Controller gouf mam Kube-Apiserver Endpunkt vum entspriechende Cluster verbonnen. Dës Serveren hunn och Exabgp benotzt fir ëffentlech oder privat IP Adressen anzeklammen. Eis Netzwierktopologie erlaabt eis BGP vun dëse Controller ze benotzen fir all Traffic direkt op d'Pods ze routen ouni e Service wéi NodePort ze benotzen. Dës Approche hëlleft den horizontalen Traffic tëscht Noden ze vermeiden a verbessert d'Effizienz.

Kubernetes Abenteuer Dailymotion: Schafe vun Infrastruktur an de Wolleken + on-premises
Verkéiersbewegung vum Internet op Pods

Elo datt mir eis Hybridplattform verstinn, kënne mir méi déif an de Trafficmigratiounsprozess selwer verdéiwen.

Migratioun vum Traffic vu Google Cloud op Dailymotion Infrastruktur

Hierscht 2018

No bal zwee Joer Bauen, Testen an Tuning, hu mir endlech e komplette Kubernetes Stack prett fir e puer Traffic ze akzeptéieren.

Kubernetes Abenteuer Dailymotion: Schafe vun Infrastruktur an de Wolleken + on-premises

Déi aktuell Routingstrategie ass zimmlech einfach, awer genuch fir d'Bedierfnesser z'erreechen. Zousätzlech zu ëffentlechen IPs (op Google Cloud an Dailymotion) gëtt AWS Route 53 benotzt fir Politik ze setzen an d'Benotzer an de Cluster vun eiser Wiel ze redirectéieren.

Kubernetes Abenteuer Dailymotion: Schafe vun Infrastruktur an de Wolleken + on-premises
Beispill Routing Politik mat Route 53

Mat Google Cloud ass dëst einfach well mir eng eenzeg IP iwwer all Cluster deelen an de Benotzer op de nooste GKE Cluster ëmgeleet gëtt. Fir eis Cluster ass d'Technologie anescht, well hir IPs anescht sinn.

Wärend der Migratioun hu mir probéiert regional Ufroen op déi entspriechend Cluster ze redirectéieren an d'Virdeeler vun dëser Approche evaluéiert.

Well eis GKE Cluster konfiguréiert sinn fir Autoskala mat Hëllef vu Custom Metrics, skaléieren se op / erof op Basis vum erakommende Traffic.

Am normalen Modus gëtt all regional Verkéier op de lokale Stärekoup geleet, an d'GKE déngt als Reserve bei Probleemer (Gesondheetskontrolle ginn duerch Route 53 duerchgefouert).

...

An Zukunft wëlle mir Routing-Politik voll automatiséieren fir eng autonom Hybridstrategie z'erreechen déi d'Accessibilitéit fir d'Benotzer kontinuéierlech verbessert. Op der Plus Säit sinn d'Cloudkäschte wesentlech reduzéiert ginn an d'API-Äntwertzäite sinn souguer reduzéiert ginn. Mir vertrauen déi doraus resultéierend Cloud Plattform a si prett fir méi Traffic ze redirect wann néideg.

PS vum Iwwersetzer

Dir kënnt och an engem anere rezenten Dailymotion Post iwwer Kubernetes interesséiert sinn. Et ass gewidmet fir d'Deployment vun Uwendungen mat Helm op ville Kubernetes Cluster an publizéiert gouf virun ongeféier engem Mount.

Liest och op eisem Blog:

Source: will.com

Setzt e Commentaire