Kubernetes antur Dailymotion: creu seilwaith yn y cymylau + ar y safle

Kubernetes antur Dailymotion: creu seilwaith yn y cymylau + ar y safle

Nodyn. traws.: Dailymotion yw un o wasanaethau cynnal fideo mwyaf y byd ac felly yn ddefnyddiwr nodedig Kubernetes. Yn y deunydd hwn, mae'r pensaer system David Donchez yn rhannu canlyniadau creu llwyfan cynhyrchu'r cwmni yn seiliedig ar K8s, a ddechreuodd gyda gosodiad cwmwl yn GKE a daeth i ben fel datrysiad hybrid, a oedd yn caniatáu amseroedd ymateb gwell ac arbedion ar gostau seilwaith.

Penderfynu Ailadeiladu'r API Craidd Dailymotion dair blynedd yn ôl, roeddem am ddatblygu ffordd fwy effeithlon o gynnal ceisiadau a'i gwneud yn haws prosesau datblygu a chynhyrchu. At y diben hwn, penderfynasom ddefnyddio llwyfan cerddorfa cynhwysydd a dewiswyd Kubernetes yn naturiol.

Pam mae'n werth adeiladu eich platfform eich hun yn seiliedig ar Kubernetes?

API lefel cynhyrchu mewn dim o amser gan ddefnyddio Google Cloud

Haf 2016

Dair blynedd yn ôl, yn union ar ôl i Dailymotion gael ei brynu gan Vivendi, mae ein timau peirianneg yn canolbwyntio ar un nod byd-eang: i greu cynnyrch Dailymotion hollol newydd.

Yn seiliedig ar ein dadansoddiad o gynwysyddion, datrysiadau cerddorfaol, a'n profiad yn y gorffennol, rydym yn argyhoeddedig mai Kubernetes yw'r dewis cywir. Roedd gan rai datblygwyr ddealltwriaeth o'r cysyniadau sylfaenol eisoes ac yn gwybod sut i'w ddefnyddio, a oedd yn fantais enfawr i'r trawsnewid seilwaith.

O safbwynt seilwaith, roedd angen system bwerus a hyblyg i gynnal mathau newydd o gymwysiadau cwmwl-frodorol. Fe wnaethon ni ddewis aros yn y cwmwl ar ddechrau ein taith er mwyn i ni allu adeiladu'r platfform mwyaf cadarn ar y safle gyda thawelwch meddwl. Fe wnaethom benderfynu defnyddio ein cymwysiadau gan ddefnyddio Google Kubernetes Engine, er ein bod yn gwybod yn hwyr neu'n hwyrach y byddem yn symud i'n canolfannau data ein hunain a chymhwyso strategaeth hybrid.

Pam wnaethoch chi ddewis GKE?

Fe wnaethom y dewis hwn yn bennaf am resymau technegol. Yn ogystal, roedd angen darparu seilwaith yn gyflym sy'n diwallu anghenion busnes y cwmni. Roedd gennym rai gofynion ar gyfer cynnal ceisiadau, megis dosbarthiad daearyddol, graddadwyedd a goddefgarwch namau.

Kubernetes antur Dailymotion: creu seilwaith yn y cymylau + ar y safle
Clystyrau GKE yn Dailymotion

Gan fod Dailymotion yn blatfform fideo sydd ar gael ledled y byd, roeddem yn awyddus iawn i wella ansawdd y gwasanaeth trwy leihau amser aros (latency)... Yn flaenorol ein API ar gael ym Mharis yn unig, a oedd yn is-optimaidd. Roeddwn i eisiau gallu cynnal ceisiadau nid yn unig yn Ewrop, ond hefyd yn Asia ac UDA.

Roedd y sensitifrwydd hwn i hwyrni yn golygu y byddai'n rhaid gwneud gwaith difrifol ar bensaernïaeth rhwydwaith y platfform. Er bod y rhan fwyaf o wasanaethau cwmwl yn eich gorfodi i greu eich rhwydwaith eich hun ym mhob rhanbarth ac yna eu cysylltu trwy VPN neu ryw fath o wasanaeth a reolir, roedd Google Cloud yn caniatáu ichi greu rhwydwaith sengl cwbl lwybradwy sy'n cwmpasu holl ranbarthau Google. Mae hyn yn fantais fawr o ran gweithrediad ac effeithlonrwydd y system.

Yn ogystal, mae gwasanaethau rhwydwaith a balanswyr llwyth o Google Cloud yn gwneud gwaith rhagorol. Yn syml, maen nhw'n caniatáu ichi ddefnyddio cyfeiriadau IP cyhoeddus mympwyol o bob rhanbarth, ac mae'r protocol BGP gwych yn gofalu am y gweddill (h.y. ailgyfeirio defnyddwyr i'r clwstwr agosaf). Yn amlwg, mewn achos o fethiant, bydd traffig yn mynd yn awtomatig i ranbarth arall heb unrhyw ymyrraeth ddynol.

Kubernetes antur Dailymotion: creu seilwaith yn y cymylau + ar y safle
Monitro Cydbwyso Llwyth Google

Mae ein platfform hefyd yn gwneud defnydd trwm o GPUs. Mae Google Cloud yn caniatáu ichi eu defnyddio'n effeithiol iawn yn uniongyrchol mewn clystyrau Kubernetes.

Ar y pryd, roedd y tîm seilwaith yn canolbwyntio'n bennaf ar y pentwr etifeddiaeth a ddefnyddiwyd ar weinyddion ffisegol. Dyna pam roedd defnyddio gwasanaeth a reolir (gan gynnwys meistri Kubernetes) yn bodloni ein gofynion ac yn caniatáu i ni hyfforddi timau i weithio gyda chlystyrau lleol.

O ganlyniad, roeddem yn gallu dechrau derbyn traffig cynhyrchu ar seilwaith Google Cloud dim ond 6 mis ar ôl dechrau'r gwaith.

Fodd bynnag, er gwaethaf nifer o fanteision, mae gweithio gyda darparwr cwmwl yn gysylltiedig â rhai costau, a all gynyddu yn dibynnu ar y llwyth. Dyna pam y gwnaethom ddadansoddi pob gwasanaeth a reolir a ddefnyddiwyd gennym yn ofalus, gan obeithio eu rhoi ar waith ar y safle yn y dyfodol. Mewn gwirionedd, dechreuodd gweithredu clystyrau lleol ar ddiwedd 2016 a chychwynnwyd y strategaeth hybrid ar yr un pryd.

Lansio llwyfan cerddorfaol cynhwysydd lleol Dailymotion

Hydref 2016

Mewn amodau pan oedd y pentwr cyfan yn barod i'w gynhyrchu, a gweithio ar yr API parhau, roedd yn amser canolbwyntio ar glystyrau rhanbarthol.

Ar y pryd, roedd defnyddwyr yn gwylio mwy na 3 biliwn o fideos bob mis. Wrth gwrs, rydym wedi cael ein Rhwydwaith Cyflenwi Cynnwys helaeth ein hunain ers blynyddoedd lawer. Roeddem am fanteisio ar yr amgylchiad hwn a defnyddio clystyrau Kubernetes mewn canolfannau data presennol.

Roedd seilwaith Dailymotion yn cynnwys mwy na 2,5 mil o weinyddion mewn chwe chanolfan ddata. Mae pob un ohonynt wedi'u ffurfweddu gan ddefnyddio Saltstack. Dechreuon ni baratoi'r holl ryseitiau angenrheidiol ar gyfer creu nodau meistr a gweithiwr, yn ogystal â chlwstwr ac ati.

Kubernetes antur Dailymotion: creu seilwaith yn y cymylau + ar y safle

Rhan rhwydwaith

Mae ein rhwydwaith wedi'i lwybro'n llwyr. Mae pob gweinydd yn hysbysebu ei IP ar y rhwydwaith gan ddefnyddio Exabgp. Cymharwyd sawl ategyn rhwydwaith a'r unig un a oedd yn bodloni'r holl anghenion (oherwydd y dull L3 a ddefnyddiwyd) oedd Calico. Mae'n cyd-fynd yn berffaith â'r model seilwaith rhwydwaith presennol.

Gan ein bod am ddefnyddio'r holl elfennau seilwaith sydd ar gael, y peth cyntaf y bu'n rhaid i ni ei wneud oedd darganfod ein cyfleustodau rhwydwaith cartref (a ddefnyddir ar bob gweinydd): ei ddefnyddio i hysbysebu ystodau cyfeiriadau IP ar y rhwydwaith gyda nodau Kubernetes. Fe wnaethom ganiatáu i Calico aseinio cyfeiriadau IP i godennau, ond ni wnaethom ac nid ydynt yn eu defnyddio o hyd ar gyfer sesiynau BGP ar offer rhwydwaith. Mewn gwirionedd, mae'r llwybro yn cael ei drin gan Exabgp, sy'n hysbysebu'r is-rwydweithiau a ddefnyddir gan Calico. Mae hyn yn ein galluogi i gyrraedd unrhyw god o'r rhwydwaith mewnol (ac yn arbennig o gydbwyswyr llwyth).

Sut rydym yn rheoli traffig sy'n dod i mewn

Er mwyn ailgyfeirio ceisiadau sy'n dod i mewn i'r gwasanaeth dymunol, penderfynwyd defnyddio Ingress Controller oherwydd ei integreiddio ag adnoddau ingress Kubernetes.

Dair blynedd yn ôl, nginx-ingress-controller oedd y rheolydd mwyaf aeddfed: roedd Nginx wedi bod o gwmpas ers amser maith ac roedd yn adnabyddus am ei sefydlogrwydd a'i berfformiad.

Yn ein system, fe wnaethom benderfynu gosod y rheolwyr ar weinyddion llafn 10-Gigabit pwrpasol. Roedd pob rheolydd wedi'i gysylltu â phwynt terfyn kube-apiserver y clwstwr cyfatebol. Roedd y gweinyddwyr hyn hefyd yn defnyddio Exabgp i hysbysebu cyfeiriadau IP cyhoeddus neu breifat. Mae topoleg ein rhwydwaith yn caniatáu inni ddefnyddio BGP o'r rheolwyr hyn i gyfeirio'r holl draffig yn uniongyrchol i'r codennau heb ddefnyddio gwasanaeth fel NodePort. Mae'r dull hwn yn helpu i osgoi traffig llorweddol rhwng nodau ac yn gwella effeithlonrwydd.

Kubernetes antur Dailymotion: creu seilwaith yn y cymylau + ar y safle
Symud traffig o'r Rhyngrwyd i godennau

Nawr ein bod yn deall ein platfform hybrid, gallwn dreiddio'n ddyfnach i'r broses mudo traffig ei hun.

Mudo traffig o Google Cloud i seilwaith Dailymotion

Hydref 2018

Ar ôl bron i ddwy flynedd o adeiladu, profi a thiwnio, o'r diwedd mae gennym bentwr Kubernetes llawn yn barod i dderbyn rhywfaint o draffig.

Kubernetes antur Dailymotion: creu seilwaith yn y cymylau + ar y safle

Mae'r strategaeth llwybro bresennol yn eithaf syml, ond yn ddigon i ddiwallu'r anghenion. Yn ogystal ag IPs cyhoeddus (ar Google Cloud a Dailymotion), defnyddir AWS Route 53 i osod polisïau ac ailgyfeirio defnyddwyr i'r clwstwr o'n dewis.

Kubernetes antur Dailymotion: creu seilwaith yn y cymylau + ar y safle
Enghraifft o bolisi llwybro gan ddefnyddio Llwybr 53

Gyda Google Cloud mae hyn yn hawdd gan ein bod yn rhannu un IP ar draws pob clwstwr ac mae'r defnyddiwr yn cael ei ailgyfeirio i'r clwstwr GKE agosaf. Ar gyfer ein clystyrau mae'r dechnoleg yn wahanol, gan fod eu IPs yn wahanol.

Yn ystod y mudo, ceisiwyd ailgyfeirio ceisiadau rhanbarthol i'r clystyrau priodol a gwerthuso manteision y dull hwn.

Oherwydd bod ein clystyrau GKE wedi'u ffurfweddu i raddfa awtomatig gan ddefnyddio Custom Metrics, maent yn cynyddu / i lawr yn seiliedig ar draffig sy'n dod i mewn.

Yn y modd arferol, mae'r holl draffig rhanbarthol yn cael ei gyfeirio at y clwstwr lleol, ac mae GKE yn gwasanaethu fel cronfa wrth gefn rhag ofn y bydd problemau (gwiriadau iechyd yn cael eu cynnal gan Lwybr 53).

...

Yn y dyfodol, rydym am awtomeiddio polisïau llwybro yn llawn i gyflawni strategaeth hybrid ymreolaethol sy'n gwella hygyrchedd i ddefnyddwyr yn barhaus. Ar yr ochr gadarnhaol, mae costau cwmwl wedi'u lleihau'n sylweddol ac mae amseroedd ymateb API hyd yn oed wedi'u lleihau. Rydym yn ymddiried yn y platfform cwmwl canlyniadol ac yn barod i ailgyfeirio mwy o draffig iddo os oes angen.

PS gan y cyfieithydd

Efallai y bydd gennych ddiddordeb hefyd mewn post Dailymotion diweddar arall am Kubernetes. Mae'n ymroddedig i ddefnyddio ceisiadau gyda Helm ar lawer o glystyrau Kubernetes a ei gyhoeddi tua mis yn ôl.

Darllenwch hefyd ar ein blog:

Ffynhonnell: hab.com

Ychwanegu sylw