Cynhadledd QCon. Meistroli Anhrefn: Canllaw Netflix i Ficrowasanaethau. Rhan 4

Mae Josh Evans yn sôn am fyd anhrefnus a lliwgar microwasanaethau Netflix, gan ddechrau gyda’r pethau sylfaenol iawn – anatomeg microwasanaethau, yr heriau sy’n gysylltiedig â systemau gwasgaredig, a’u manteision. Gan adeiladu ar y sylfaen hon, mae'n archwilio'r arferion diwylliannol, pensaernïol a gweithredol sy'n arwain at feistrolaeth microwasanaeth.

Cynhadledd QCon. Meistroli Anhrefn: Canllaw Netflix i Ficrowasanaethau. Rhan 1
Cynhadledd QCon. Meistroli Anhrefn: Canllaw Netflix i Ficrowasanaethau. Rhan 2
Cynhadledd QCon. Meistroli Anhrefn: Canllaw Netflix i Ficrowasanaethau. Rhan 3

Yn wahanol i drifft gweithredol, mae cyflwyno ieithoedd newydd ar gyfer rhyngwladoli gwasanaethau a thechnolegau newydd megis cynwysyddion yn benderfyniadau ymwybodol i ychwanegu cymhlethdod newydd i'r amgylchedd. Safonodd fy nhîm gweithrediadau ar y map ffordd technoleg gorau ar gyfer Netflix, a gafodd ei bobi i arferion gorau rhagnodedig yn seiliedig ar Java ac EC2, ond wrth i'r busnes dyfu, dechreuodd datblygwyr ychwanegu cydrannau newydd fel Python, Ruby, Node-JS, a Docker.

Cynhadledd QCon. Meistroli Anhrefn: Canllaw Netflix i Ficrowasanaethau. Rhan 4

Rwy'n falch iawn mai ni oedd y cyntaf i eiriol dros ein cynnyrch i weithio'n wych heb aros am gwynion cwsmeriaid. Dechreuodd y cyfan yn ddigon syml - roedd gennym raglenni gweithredu yn Python ac ychydig o raglenni cefn swyddfa yn Ruby, ond aeth pethau'n llawer mwy diddorol pan gyhoeddodd ein datblygwyr gwe eu bod yn mynd i gael gwared ar y JVM ac yn mynd i symud y we cymhwysiad i lwyfan meddalwedd Node. js. Ar ôl cyflwyno Docker, daeth pethau'n llawer mwy cymhleth. Fe wnaethom ddilyn rhesymeg a daeth y technolegau a luniwyd gennym yn realiti pan wnaethom eu gweithredu ar gyfer cwsmeriaid oherwydd eu bod yn gwneud llawer o synnwyr. Byddaf yn dweud wrthych pam mae hyn felly.

Mewn gwirionedd mae gan API Gateway y gallu i integreiddio sgriptiau gwych a all weithredu fel pwyntiau terfyn ar gyfer datblygwyr UI. Fe wnaethant drosi pob un o'r sgriptiau hyn yn y fath fodd fel y gallent, ar ôl gwneud newidiadau, eu defnyddio i gynhyrchu ac yna i ddyfeisiau defnyddwyr, a chafodd yr holl newidiadau hyn eu cydamseru â diweddbwyntiau a oedd yn rhedeg ym mhorth API.

Fodd bynnag, ailadroddodd hyn y broblem o greu monolith newydd lle'r oedd y gwasanaeth API wedi'i orlwytho â chod yn y fath fodd fel bod senarios methiant amrywiol wedi digwydd. Er enghraifft, tynnwyd rhai diweddbwyntiau, neu cynhyrchodd sgriptiau gymaint o fersiynau o rywbeth ar hap fel bod y fersiynau'n cymryd yr holl gof sydd ar gael o'r gwasanaeth API.

Roedd yn rhesymegol cymryd y pwyntiau terfyn hyn a'u tynnu allan o'r gwasanaeth API. I wneud hyn, fe wnaethon ni greu cydrannau Node.js a oedd yn rhedeg fel cymwysiadau bach mewn cynwysyddion Docker. Roedd hyn yn ein galluogi i ynysu unrhyw broblemau a damweiniau a achosir gan y cymwysiadau nodau hyn.

Mae cost y newidiadau hyn yn eithaf mawr ac yn cynnwys y ffactorau canlynol:

  • Offer cynhyrchiant. Roedd angen offer newydd i reoli technolegau newydd oherwydd nid oedd yn rhaid i'r tîm UI, gan ddefnyddio sgriptiau da iawn i greu model effeithlon, dreulio llawer o amser yn rheoli'r seilwaith, dim ond ysgrifennu sgriptiau a gwirio eu swyddogaeth oedd yn rhaid iddynt ei wneud.
    Mewnwelediad Cyfle a Didoli - Enghraifft allweddol yw'r offer newydd sydd eu hangen i ddatgelu gwybodaeth gyrrwr perfformiad. Roedd angen gwybod faint roedd y prosesydd yn ei feddiannu, sut roedd y cof yn cael ei ddefnyddio, ac roedd angen gwahanol offer i gasglu'r wybodaeth hon.
  • Darnio delweddau sylfaen - mae'r sylfaen syml AMI wedi dod yn fwy tameidiog ac arbenigol.
  • Rheoli nodau. Nid oes unrhyw bensaernïaeth na thechnoleg oddi ar y silff ar gael sy'n eich galluogi i reoli nodau yn y cwmwl, felly fe wnaethom adeiladu Titus, platfform rheoli cynwysyddion sy'n darparu gosodiad cynhwysydd graddadwy a dibynadwy ac integreiddio cwmwl ag Amazon AWS.
  • Dyblygu llyfrgell neu lwyfan. Er mwyn darparu technolegau newydd gyda'r un swyddogaeth graidd â'r platfform, roedd angen ei ddyblygu'n offer datblygwr Node.js yn y cwmwl.
  • Cromlin ddysgu a phrofiad diwydiannol. Mae cyflwyno technolegau newydd yn anochel yn creu heriau newydd y mae'n rhaid eu goresgyn a dysgu oddi wrthynt.

Felly, ni allem gyfyngu ein hunain i un “ffordd balmantog” ac roedd yn rhaid i ni adeiladu ffyrdd newydd yn gyson i ddatblygu ein technolegau. Er mwyn cadw costau i lawr, gwnaethom gyfyngu ar gefnogaeth ganolog a chanolbwyntio ar y JVM, nodau newydd, a Docker. Fe wnaethom flaenoriaethu effaith effeithiol, hysbysu timau am gost eu penderfyniadau, a'u hannog i chwilio am ffyrdd o ailddefnyddio'r atebion effaith uchel yr oeddent eisoes wedi'u datblygu. Defnyddiwyd y dull hwn wrth gyfieithu'r gwasanaeth i ieithoedd tramor i gyflwyno'r cynnyrch i gleientiaid rhyngwladol. Mae enghreifftiau'n cynnwys llyfrgelloedd cleientiaid cymharol syml y gellir eu cynhyrchu'n awtomatig, fel ei bod yn weddol hawdd creu fersiwn Python, fersiwn Ruby, fersiwn Java, ac ati.

Roeddem yn gyson yn chwilio am gyfleoedd i ddefnyddio technolegau profedig a oedd wedi profi eu hunain mewn un lle ac mewn sefyllfaoedd tebyg eraill.

Gadewch i ni siarad am yr elfen olaf - newidiadau, neu amrywiadau. Edrychwch sut mae'r defnydd o'n cynnyrch yn amrywio'n anghyson fesul diwrnod o'r wythnos ac fesul awr trwy gydol y dydd. Fe allech chi ddweud mai 9 a.m. yw'r amser anoddaf i Netflix, pan fydd y llwyth ar y system yn cyrraedd ei uchafswm.

Cynhadledd QCon. Meistroli Anhrefn: Canllaw Netflix i Ficrowasanaethau. Rhan 4

Sut y gallwn gyflawni cyflymder uchel o weithredu arloesedd meddalwedd, hynny yw, gwneud newidiadau newydd i'r system yn gyson, heb achosi ymyrraeth wrth ddarparu gwasanaethau a heb greu anghyfleustra i'n cwsmeriaid? Cyflawnodd Netflix hyn trwy ddefnyddio Spinnaker, platfform rheoli a chyflenwi parhaus (CD) byd-eang newydd yn y cwmwl.

Cynhadledd QCon. Meistroli Anhrefn: Canllaw Netflix i Ficrowasanaethau. Rhan 4

Yn hollbwysig, cynlluniwyd Spinnaker i integreiddio ein harferion gorau fel y gallwn, wrth i ni ddefnyddio cydrannau i gynhyrchu, integreiddio'r allbwn yn uniongyrchol i'n technoleg darparu cyfryngau.

Cynhadledd QCon. Meistroli Anhrefn: Canllaw Netflix i Ficrowasanaethau. Rhan 4

Rydym wedi gallu ymgorffori dwy dechnoleg yn ein piblinell gyflenwi yr ydym yn eu gwerthfawrogi’n fawr: dadansoddiad caneri awtomataidd a defnydd fesul cam. Mae dadansoddiad caneri yn golygu ein bod yn cyfeirio diferyn o draffig i'r fersiwn newydd o'r cod, ac yn trosglwyddo gweddill y traffig cynhyrchu trwy'r hen fersiwn. Yna rydym yn gwirio sut mae'r cod newydd yn ymdopi â'r dasg - yn well neu'n waeth na'r un presennol.

Mae cyflwyno fesul cam yn golygu, os bydd cyflwyno mewn un rhanbarth yn cael problemau, byddwn yn symud i ranbarth arall. Yn yr achos hwn, rhaid cynnwys y rhestr wirio uchod yn y biblinell gynhyrchu. Byddaf yn arbed peth amser i chi ac yn argymell eich bod yn edrych ar fy sgwrs flaenorol, Engineering Global Netflix Operations in the Cloud, os oes gennych ddiddordeb mewn plymio'n ddyfnach i'r pwnc hwn. Gellir gweld y recordiad fideo o'r araith trwy ddilyn y ddolen ar waelod y sleid.

Cynhadledd QCon. Meistroli Anhrefn: Canllaw Netflix i Ficrowasanaethau. Rhan 4

Ar ddiwedd y sgwrs, byddaf yn siarad yn fyr am drefniadaeth a phensaernïaeth Netflix. Ar y cychwyn cyntaf roedd gennym gynllun o'r enw Electronic Delivery, sef y fersiwn gyntaf o ffrydio cyfryngau NRDP 1.x. Gellir defnyddio'r term "backstream" yma oherwydd i ddechrau dim ond cynnwys i'w chwarae'n ddiweddarach ar y ddyfais y gallai'r defnyddiwr ei lawrlwytho. Roedd platfform cyflwyno digidol cyntaf Netflix, yn ôl yn 2009, yn edrych fel hyn.

Cynhadledd QCon. Meistroli Anhrefn: Canllaw Netflix i Ficrowasanaethau. Rhan 4

Roedd y ddyfais defnyddiwr yn cynnwys y cymhwysiad Netflix, a oedd yn cynnwys rhyngwyneb UI, modiwlau diogelwch, actifadu gwasanaeth a chwarae yn ôl, yn seiliedig ar y platfform NRDP - Platfform Dyfais Barod Netflix.

Ar y pryd roedd y rhyngwyneb defnyddiwr yn syml iawn. Roedd yn cynnwys yr hyn a elwid yn Ddarllenydd Queque, a byddai'r defnyddiwr yn mynd i'r wefan i ychwanegu rhywbeth at Queque ac yna'n gweld y cynnwys ychwanegol ar eu dyfais. Y peth cadarnhaol oedd bod y tîm pen blaen a’r tîm pen ôl yn perthyn i’r un sefydliad Cyflenwi Electronig a bod ganddynt berthynas waith agos. Crëwyd y llwyth tâl yn seiliedig ar XML. Ar yr un pryd, crëwyd yr API Netflix ar gyfer y busnes DVD, a oedd yn annog cymwysiadau trydydd parti i gyfeirio traffig i'n gwasanaeth.

Fodd bynnag, roedd API Netflix wedi'i baratoi'n dda i'n helpu gyda rhyngwyneb defnyddiwr arloesol, yn cynnwys metadata o'r holl gynnwys, gwybodaeth am ba ffilmiau oedd ar gael, a greodd y gallu i gynhyrchu rhestrau gwylio. Roedd ganddo API REST generig yn seiliedig ar sgema JSON, Cod Ymateb HTTP, yr un un a ddefnyddiwyd mewn pensaernïaeth fodern, a model diogelwch OAuth, sef yr hyn oedd ei angen ar y pryd ar gyfer cais pen blaen. Roedd hyn yn ei gwneud hi'n bosibl symud o fodel cyhoeddus o ffrydio cyflwyno cynnwys i fodel preifat.

Cynhadledd QCon. Meistroli Anhrefn: Canllaw Netflix i Ficrowasanaethau. Rhan 4

Y broblem gyda'r trawsnewid oedd darnio, ers nawr roedd ein system yn gweithredu dau wasanaeth yn seiliedig ar egwyddorion gweithredu hollol wahanol - un ar Rest, JSON ac OAuth, a'r llall ar RPC, XML a mecanwaith diogelwch defnyddwyr yn seiliedig ar system docynnau NTBA. Hon oedd y bensaernïaeth hybrid gyntaf.

Yn y bôn, roedd wal dân rhwng ein dau dîm oherwydd i ddechrau nid oedd yr API yn cyd-fynd yn dda iawn â NCCP ac arweiniodd hyn at wrthdaro rhwng y timau. Roedd y gwahaniaethau mewn gwasanaethau, protocolau, cylchedau, modiwlau diogelwch, ac yn aml roedd yn rhaid i ddatblygwyr newid rhwng cyd-destunau cwbl wahanol.

Cynhadledd QCon. Meistroli Anhrefn: Canllaw Netflix i Ficrowasanaethau. Rhan 4

Yn hyn o beth, cefais sgwrs ag un o uwch beirianwyr y cwmni, y gofynnais y cwestiwn iddo: “Beth ddylai fod y bensaernïaeth hirdymor gywir?” a gofynnodd cwestiwn i'r cownter: “Mae'n debyg eich bod yn poeni mwy. am y canlyniadau sefydliadol - beth sy'n digwydd os byddwn yn integreiddio'r pethau hyn, a'u bod yn torri'r hyn yr ydym wedi'i ddysgu i'w wneud yn dda? Mae'r dull hwn yn berthnasol iawn i Gyfraith Conwy: "Mae sefydliadau sy'n dylunio systemau yn cael eu cyfyngu gan ddyluniad sy'n atgynhyrchu strwythur cyfathrebu'r sefydliad hwnnw." Mae hwn yn ddiffiniad haniaethol iawn, felly mae’n well gennyf un mwy penodol: “Mae unrhyw ddarn o feddalwedd yn adlewyrchu’r strwythur sefydliadol a’i creodd.” Dyma fy hoff ddyfyniad gan Eric Raymond: "Os oes gennych bedwar tîm o ddatblygwyr yn gweithio ar gasglwyr, byddwch yn y pen draw gyda casglwr pedwar tocyn." Wel, mae gan Netflix gasglwr pedwar tocyn, a dyna sut rydyn ni'n gweithio.

Gallwn ddweud yn yr achos hwn bod y gynffon yn ysgwyd y ci. Nid yr ateb yw ein blaenoriaeth gyntaf, ond y sefydliad; y sefydliad sy’n llywio’r bensaernïaeth sydd gennym. Yn raddol, o hodgepodge o wasanaethau, symudasom i bensaernïaeth a elwir gennym Blade Runner, oherwydd yma rydym yn sôn am wasanaethau ymyl a gallu NCCP i gael eu gwahanu a'u hintegreiddio'n uniongyrchol i'r dirprwy Zuul, porth API, a'r swyddogaethol gyfatebol. Mae “darnau” wedi'u troi'n ficrowasanaethau newydd gyda nodweddion diogelwch, ailchwarae, didoli data ac ati mwy datblygedig.

Felly, gellir dweud bod strwythurau adrannol a dynameg cwmni yn chwarae rhan bwysig wrth lunio dyluniad system ac yn ffactor sy'n hyrwyddo neu'n rhwystro newid. Mae pensaernïaeth microservices yn gymhleth ac yn organig, ac mae ei iechyd yn seiliedig ar ddisgyblaeth ac anhrefn wedi'i gyflwyno.

Ychydig o hysbysebu

Diolch am aros gyda ni. Ydych chi'n hoffi ein herthyglau? Eisiau gweld cynnwys mwy diddorol? Cefnogwch ni trwy osod archeb neu argymell i ffrindiau, cwmwl VPS i ddatblygwyr o $4.99, analog unigryw o weinyddion lefel mynediad, a ddyfeisiwyd gennym ni ar eich cyfer chi: Y gwir i gyd am VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps o $ 19 neu sut i rannu gweinydd? (ar gael gyda RAID1 a RAID10, hyd at 24 craidd a hyd at 40GB DDR4).

Dell R730xd 2 gwaith yn rhatach yng nghanolfan ddata Equinix Haen IV yn Amsterdam? Dim ond yma 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV o $199 yn yr Iseldiroedd! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - o $99! Darllenwch am Sut i adeiladu seilwaith Corp. dosbarth gyda'r defnydd o weinyddion Dell R730xd E5-2650 v4 gwerth 9000 ewro am geiniog?

Ffynhonnell: hab.com

Ychwanegu sylw