Aventura Kubernetes Dailymotion: creazione di infrastruttura in i nuvuli + in situ

Aventura Kubernetes Dailymotion: creazione di infrastruttura in i nuvuli + in situ

Nota. transl.: Dailymotion hè unu di i più grandi servizii di hosting di video in u mondu è dunque un utilizatore Kubernetes notevuli. In questu materiale, l'architettu di u sistema David Donchez sparte i risultati di a creazione di a piattaforma di produzzione di a cumpagnia basata nantu à K8s, chì cuminciò cù una stallazione di nuvola in GKE è finita cum'è una soluzione hibrida, chì hà permessu di megliu tempi di risposta è risparmiu di i costi di l'infrastruttura.

Decide di ricustruisce l'API Core francesca trè anni fà, avemu vulsutu sviluppà un modu più efficaci per accoglie l'applicazioni è rende più faciule prucessi in u sviluppu è a pruduzzioni. Per questu scopu, avemu decisu d'utilizà una piattaforma di orchestrazione di cuntainer è naturalmente hà sceltu Kubernetes.

Perchè vale a pena di custruisce a vostra propria piattaforma basata nantu à Kubernetes?

API à livellu di produzzione in pocu tempu cù Google Cloud

Estate 2016

Trè anni fà, subitu dopu chì Dailymotion hè statu compru da Vivendi, i nostri squadre di ingegneria sò focu annantu à un scopu glubale: creà un pruduttu Dailymotion completamente novu.

Basatu nantu à a nostra analisi di cuntenituri, suluzione d'orchestrazione, è a nostra sperienza passata, simu cunvinti chì Kubernetes hè a scelta bona. Certi sviluppatori avianu digià una cunniscenza di i cuncetti basi è sapianu cumu utilizà, chì era un vantaghju enormu per a trasfurmazioni di l'infrastruttura.

Da una perspettiva di l'infrastruttura, un sistema putente è flessibile era necessariu per accoglie novi tipi di applicazioni native in nuvola. Avemu sceltu di stà in u nuvulu à l'iniziu di u nostru viaghju per pudè custruisce a più robusta piattaforma on-premise pussibule cun tranquillità. Avemu decisu di implementà e nostre applicazioni utilizendu Google Kubernetes Engine, ancu s'è sapemu chì prima o dopu avemu da passà à i nostri centri di dati è applicà una strategia hibrida.

Perchè avete sceltu GKE?

Avemu fattu sta scelta principalmente per ragioni tecniche. Inoltre, era necessariu furnisce rapidamente infrastruttura chì risponde à i bisogni di l'affari di a cumpagnia. Avemu avutu qualchì requisitu per l'applicazioni di hosting, cum'è a distribuzione geografica, a scalabilità è a tolleranza di difetti.

Aventura Kubernetes Dailymotion: creazione di infrastruttura in i nuvuli + in situ
Clusters GKE in Dailymotion

Siccomu Dailymotion hè una piattaforma video dispunibule in u mondu sanu, vulemu veramente migliurà a qualità di u serviziu riducendu u tempu d'attesa. (latenza)... Prima a nostra API era solu dispunibule in Parigi, chì era suboptimal. Vuliu esse capace di accoglie applicazioni micca solu in Europa, ma ancu in Asia è in i Stati Uniti.

Questa sensibilità à a latenza significava chì un travagliu seriu avissi da esse fattu nantu à l'architettura di rete di a piattaforma. Mentre a maiò parte di i servizii di nuvola vi furzatu à creà a vostra propria reta in ogni regione è poi cunnetta cù una VPN o un tipu di serviziu amministratu, Google Cloud hà permessu di creà una reta unica cumplettamente routable chì copre tutte e regioni di Google. Questu hè un grande plus in quantu à u funziunamentu è l'efficienza di u sistema.

Inoltre, i servizii di rete è i balancers di carica da Google Cloud facenu un travagliu eccellente. Simply permettenu di utilizà l'indirizzi IP publichi arbitrarii da ogni regione, è u maravigliosu protokollu BGP si prende cura di u restu (vale à dì, redirige l'utilizatori à u cluster più vicinu). Ovviamente, in casu di fallimentu, u trafficu andarà automaticamente in un'altra regione senza intervenzione umana.

Aventura Kubernetes Dailymotion: creazione di infrastruttura in i nuvuli + in situ
Monitoring Google Load Balancing

A nostra piattaforma face ancu un usu pesante di GPU. Google Cloud vi permette di aduprà in modu assai efficace direttamente in clusters Kubernetes.

À l'epica, a squadra di l'infrastruttura era principalmente focu annantu à a pila legacy implementata nantu à i servitori fisici. Hè per quessa chì l'usu di un serviziu amministratu (cumpresi i maestri Kubernetes) hà cumpletu i nostri bisogni è ci hà permessu di furmà squadre per travaglià cù clusters lucali.

In u risultatu, pudemu avè principiatu à riceve u trafficu di produzzione nantu à l'infrastruttura Google Cloud solu 6 mesi dopu l'iniziu di u travagliu.

Tuttavia, malgradu una quantità di vantaghji, u travagliu cù un fornitore di nuvola hè assuciatu cù certi costi, chì ponu aumentà secondu a carica. Hè per quessa chì avemu analizatu currettamente ogni serviziu amministratu chì avemu usatu, sperendu di implementà in u locu in u futuru. In fattu, l'implementazione di clusters lucali cuminciò à a fine di 2016 è a strategia hibrida hè stata iniziata à u stessu tempu.

Lanciamentu di a piattaforma di orchestrazione di containeru lucali Dailymotion

Autunnu 2016

In cundizioni quandu a pila sana era pronta per a produzzione, è travaglià nantu à l'API cuntinuò, era ora di cuncentrazione nantu à i clusters regiunale.

À quellu tempu, l'utilizatori anu vistu più di 3 miliardi di video ogni mese. Di sicuru, avemu avutu a nostra propria rete di distribuzione di cuntenutu per parechji anni. Vulemu prufittà di sta circustanza è implementà clusters Kubernetes in i centri di dati esistenti.

L'infrastruttura di Dailymotion era custituita da più di 2,5 mila servitori in sei centri di dati. Tutti sò cunfigurati cù Saltstack. Avemu cuminciatu à preparà tutte e ricette necessarie per a creazione di nodi maestru è di travagliu, è ancu un cluster etcd.

Aventura Kubernetes Dailymotion: creazione di infrastruttura in i nuvuli + in situ

Parte di a rete

A nostra reta hè cumplettamente rotta. Ogni servitore publicità a so IP nantu à a reta cù Exabgp. Avemu paragunatu parechji plugins di rete è l'unicu chì satisfava tutti i bisogni (per via di l'approcciu L3 utilizatu) era Calico. Si adatta perfettamente à u mudellu di infrastruttura di rete esistenti.

Siccomu vulemu usà tutti l'elementi di l'infrastruttura dispunibuli, a prima cosa chì duvemu fà era scopre a nostra utilità di rete in casa (aduprata in tutti i servitori): aduprate per publicità intervalli d'indirizzu IP in a reta cù nodi Kubernetes. Avemu permessu à Calico d'assignà l'indirizzi IP à i pods, ma ùn l'hà micca utilizatu è ùn l'utilizanu micca per sessioni BGP in l'equipaggiu di rete. In fattu, u routing hè trattatu da Exabgp, chì publicità i subnets utilizati da Calico. Questu ci permette di ghjunghje à qualsiasi pod da a reta interna (è in particulare da i balancers di carica).

Cumu gestionemu u trafficu di ingressu

Per reindirizzà e richieste entrate à u serviziu desideratu, hè statu decisu di utilizà Ingress Controller per via di a so integrazione cù e risorse di ingressu Kubernetes.

Trè anni fà, nginx-ingress-controller era u controller più maturu: Nginx era statu dapoi un bellu pezzu è era cunnisciutu per a so stabilità è u so rendiment.

In u nostru sistema, avemu decisu di mette i cuntrolli nantu à i servitori blade 10-Gigabit dedicati. Ogni controller era cunnessu à l'endpoint kube-apiserver di u cluster currispundente. Questi servitori anu ancu utilizatu Exabgp per publicità indirizzi IP publichi o privati. A nostra topologia di a rete ci permette di utilizà BGP da questi cuntrolli per indirizzà tuttu u trafficu direttamente à i pods senza utilizà un serviziu cum'è NodePort. Stu approcciu aiuta à evità u trafficu horizontale trà i nodi è migliurà l'efficienza.

Aventura Kubernetes Dailymotion: creazione di infrastruttura in i nuvuli + in situ
U muvimentu di u trafficu da Internet à pods

Avà chì avemu capitu a nostra piattaforma hibrida, pudemu approfondisce u prucessu di migrazione di u trafficu stessu.

Migrazione di u trafficu da Google Cloud à l'infrastruttura Dailymotion

Autunnu 2018

Dopu quasi dui anni di custruzzione, teste è sintonizazione, avemu infine una pila Kubernetes cumpleta pronta per accettà un pocu di trafficu.

Aventura Kubernetes Dailymotion: creazione di infrastruttura in i nuvuli + in situ

L'attuale strategia di routing hè abbastanza simplice, ma abbastanza per risponde à i bisogni. In più di l'IP publichi (in Google Cloud è Dailymotion), AWS Route 53 hè utilizatu per stabilisce e pulitiche è redirige l'utilizatori à u cluster di a nostra scelta.

Aventura Kubernetes Dailymotion: creazione di infrastruttura in i nuvuli + in situ
Esempiu di pulitica di routing usendu Route 53

Cù Google Cloud, questu hè faciule cum'è spartemu una sola IP in tutti i clusters è l'utilizatore hè ridirettu à u cluster GKE più vicinu. Per i nostri clusters, a tecnulugia hè diversa, postu chì i so IP sò diffirenti.

Durante a migrazione, avemu cercatu di ridirezzione di e dumande regiunale à i clusters appropritati è evaluate i benefici di stu approcciu.

Perchè i nostri clusters GKE sò cunfigurati per autoscala utilizendu Metriche Personalizzate, si scalanu in crescita / diminuzione basatu annantu à u trafficu entrante.

In modu normale, tuttu u trafficu regiunale hè direttu à u cluster locale, è GKE serve cum'è riserva in casu di prublemi (i cuntrolli di salute sò realizati da Route 53).

...

In u futuru, vulemu automatizà cumplettamente e pulitiche di routing per ottene una strategia hibrida autonoma chì migliurà continuamente l'accessibilità per l'utilizatori. In più, i costi di nuvola sò stati ridotti significativamente è i tempi di risposta API sò ancu ridotti. Avemu fiducia in a piattaforma di nuvola resultanti è sò pronti à reindirizzà più trafficu à questu se ne necessariu.

PS da u traduttore

Puderete ancu esse interessatu in un altru post recente di Dailymotion nantu à Kubernetes. Hè dedicatu à l'implementazione di l'applicazioni cù Helm in parechji clusters Kubernetes è hè statu publicatu circa un mese fà.

Leghjite puru nant'à u nostru blog:

Source: www.habr.com

Add a comment