Co-labhairt QCon. A ’maighstireachd mì-riaghailt: An Iùl Netflix air Microservices. Pàirt 4

Tha Josh Evans a’ bruidhinn air saoghal chaotic agus dathach microservices Netflix, a’ tòiseachadh leis na fìor bhunaitean - anatomy microservices, na dùbhlain co-cheangailte ri siostaman sgaoilte, agus na buannachdan aca. A’ togail air a’ bhunait seo, bidh e a’ sgrùdadh nan cleachdaidhean cultarail, ailtireil agus obrachaidh a tha a’ leantainn gu maighstireachd microservice.

Co-labhairt QCon. A ’maighstireachd mì-riaghailt: An Iùl Netflix air Microservices. Pàirt 1
Co-labhairt QCon. A ’maighstireachd mì-riaghailt: An Iùl Netflix air Microservices. Pàirt 2
Co-labhairt QCon. A ’maighstireachd mì-riaghailt: An Iùl Netflix air Microservices. Pàirt 3

Eu-coltach ri gluasad obrachaidh, tha toirt a-steach chànanan ùra airson eadar-nàiseantachd seirbheis agus teicneòlasan ùra leithid soithichean nan co-dhùnaidhean mothachail gus iom-fhillteachd ùr a chur ris an àrainneachd. Rinn an sgioba gnìomhachd agam àbhaisteachadh air a’ mhapa-rathaid teicneòlais as fheàrr airson Netflix, a chaidh a bhocadh a-steach do na cleachdaidhean as fheàrr ro-mhìnichte stèidhichte air Java agus EC2, ach mar a dh’ fhàs an gnìomhachas, thòisich luchd-leasachaidh air co-phàirtean ùra a chuir ris leithid Python, Ruby, Node-JS, agus Docker.

Co-labhairt QCon. A ’maighstireachd mì-riaghailt: An Iùl Netflix air Microservices. Pàirt 4

Tha mi gu math moiteil gur sinne a’ chiad fhear a bha a’ tagradh airson an toradh againn a bhith ag obair gu math gun a bhith a’ feitheamh ri gearanan luchd-cleachdaidh. Thòisich e uile sìmplidh gu leòr - bha prògraman obrachaidh againn ann am Python agus beagan aplacaidean cùl-oifis ann an Ruby, ach dh’ fhàs cùisean tòrr nas inntinniche nuair a dh’ ainmich an luchd-leasachaidh lìn againn gu robh iad a’ dol a dhùsgadh an JVM agus gu robh iad a’ dol a ghluasad an lìon. tagradh gu àrd-ùrlar bathar-bog Node. js. Às deidh Docker a thoirt a-steach, dh’ fhàs cùisean tòrr nas iom-fhillte. Lean sinn loidsig agus thàinig na teicneòlasan a thàinig sinn suas gu bith nuair a chuir sinn an gnìomh iad airson luchd-ceannach oir bha iad a’ dèanamh tòrr ciall. Innsidh mi dhut carson a tha seo mar sin.

Tha comas aig API Gateway gu dearbh sgriobtaichean sgoinneil fhilleadh a-steach a dh’ fhaodadh a bhith nan puingean crìochnachaidh airson luchd-leasachaidh UI. Thionndaidh iad gach aon de na sgriobtaichean sin ann an dòigh a dh ’fhaodadh iad an cleachdadh gu cinneasachadh agus an uairsin gu innealan luchd-cleachdaidh às deidh dhaibh atharrachaidhean a dhèanamh, agus chaidh na h-atharrachaidhean sin uile a shioncronadh le puingean crìochnachaidh a bha a’ ruith ann an geata API.

Ach, dh ’ath-aithris seo an duilgheadas a thaobh cruthachadh monolith ùr far an robh an t-seirbheis API air a luchdachadh cus de chòd gus an do thachair grunn shuidheachaidhean fàilligeadh. Mar eisimpleir, chaidh cuid de phuingean crìochnachaidh a thoirt air falbh, no chruthaich sgriobtaichean air thuaiream uimhir de dhreachan de rudeigin a ghabh na dreachan suas a h-uile cuimhne a bha ri fhaighinn air an t-seirbheis API.

Bha e loidsigeach na puingean crìochnachaidh sin a ghabhail agus an tarraing a-mach às an t-seirbheis API. Gus seo a dhèanamh, chruthaich sinn co-phàirtean Node.js a bha a’ ruith mar thagraidhean beaga ann an soithichean Docker. Leig seo leinn duilgheadasan is tubaistean sam bith a dh’ adhbhraich na tagraidhean nód sin a lorg.

Tha cosgais nan atharrachaidhean sin gu math mòr agus tha na feartan a leanas ann:

  • Innealan cinneasachd. Bha feum air innealan ùra airson a bhith a’ riaghladh theicneòlasan ùra oir cha robh aig an sgioba UI, a’ cleachdadh sgriobtaichean fìor mhath gus modal èifeachdach a chruthachadh, ri mòran ùine a chaitheamh a’ stiùireadh a’ bhun-structair, cha robh aca ach ri sgriobtaichean a sgrìobhadh agus an comas-gnìomh a sgrùdadh.
    Cothrom Lèirsinn agus Deasachadh - Is e prìomh eisimpleir na h-innealan ùra a dh’ fheumar gus fiosrachadh draibhear coileanaidh a lorg. Bha e riatanach faighinn a-mach dè an ìre a bha am pròiseasar air a chleachdadh, mar a bha cuimhne ga chleachdadh, agus bha feum air diofar innealan airson an fhiosrachaidh seo a chruinneachadh.
  • Briseadh ìomhaighean bunaiteach - tha am bonn sìmplidh AMI air fàs nas sgapte agus nas sònraichte.
  • Stiùireadh nod. Chan eil ailtireachd no teicneòlas far-na-sgeilp ri fhaighinn a leigeas leat nodan a riaghladh san sgòth, agus mar sin thog sinn Titus, àrd-ùrlar riaghlaidh soithichean a bheir seachad cleachdadh soithichean scalable agus earbsach agus amalachadh sgòthan le Amazon AWS.
  • Dùblachadh leabharlann no àrd-ùrlar. Le bhith a’ toirt seachad teicneòlasan ùra leis an aon phrìomh ghnìomhachd den àrd-ùrlar bha feum air a dhùblachadh gu innealan leasaiche Node.js stèidhichte air sgòthan.
  • Curve ionnsachaidh agus eòlas gnìomhachais. Tha toirt a-steach teicneòlasan ùra gu do-sheachanta a’ cruthachadh dhùbhlain ùra a dh’ fheumar faighinn thairis orra agus ionnsachadh bhuapa.

Mar sin, cha b’ urrainn dhuinn sinn fhèin a chuingealachadh gu aon “rathad le cabhsair” agus bha againn ri dòighean ùra a thogail gu cunbhalach gus na teicneòlasan againn adhartachadh. Gus cosgaisean a chumail sìos, chuir sinn bacadh air taic meadhanaichte agus chuir sinn fòcas air an JVM, nodan ùra, agus Docker. Thug sinn prìomhachas do bhuaidh èifeachdach, thug sinn fios do sgiobaidhean mu chosgais an co-dhùnaidhean, agus bhrosnaich sinn iad gus coimhead airson dòighean air na fuasglaidhean àrd-bhuaidh a bha iad air a leasachadh mar-thà ath-chleachdadh. Chleachd sinn an dòigh-obrach seo nuair a bha sinn ag eadar-theangachadh na seirbheis gu cànanan cèin gus an toradh a lìbhrigeadh do luchd-dèiligidh eadar-nàiseanta. Tha eisimpleirean a’ toirt a-steach leabharlannan teachdaiche an ìre mhath sìmplidh a dh’ fhaodar a chruthachadh gu fèin-ghluasadach, gus am bi e gu math furasta dreach Python, dreach Ruby, dreach Java, msaa a chruthachadh.

Bha sinn an-còmhnaidh a’ coimhead airson cothroman gus teicneòlasan dearbhte a chleachdadh a bha air iad fhèin a dhearbhadh ann an aon àite agus ann an suidheachaidhean eile den aon seòrsa.

Bruidhnidh sinn mun eileamaid mu dheireadh - atharrachaidhean, no caochlaidhean. Seall mar a tha caitheamh an toraidh againn ag atharrachadh gu mì-chothromach a rèir latha na seachdain agus a rèir uair tron ​​​​latha. Dh’ fhaodadh tu a ràdh gur e 9m an àm as duilghe dha Netflix, nuair a ruigeas an luchd air an t-siostam an ìre as àirde.

Co-labhairt QCon. A ’maighstireachd mì-riaghailt: An Iùl Netflix air Microservices. Pàirt 4

Ciamar as urrainn dhuinn àrd-astar buileachadh innleachdan bathar-bog a choileanadh, is e sin, an-còmhnaidh a’ dèanamh atharrachaidhean ùra air an t-siostam, gun a bhith ag adhbhrachadh briseadh ann an lìbhrigeadh seirbheis agus gun a bhith a’ cruthachadh mì-ghoireasachd don luchd-ceannach againn? Choilean Netflix seo tro bhith a’ cleachdadh Spinnaker, àrd-ùrlar riaghlaidh agus lìbhrigeadh leantainneach (CD) cruinneil stèidhichte air sgòthan.

Co-labhairt QCon. A ’maighstireachd mì-riaghailt: An Iùl Netflix air Microservices. Pàirt 4

Gu deatamach, chaidh Spinnaker a dhealbhadh gus na cleachdaidhean as fheàrr againn fhilleadh a-steach gus an urrainn dhuinn, mar a bhios sinn a’ cleachdadh phàirtean a-steach gu cinneasachadh, an toradh fhilleadh a-steach gu dìreach a-steach don teicneòlas lìbhrigidh meadhanan againn.

Co-labhairt QCon. A ’maighstireachd mì-riaghailt: An Iùl Netflix air Microservices. Pàirt 4

Tha sinn air a bhith comasach air dà theicneòlas a thoirt a-steach don loidhne lìbhrigidh againn air a bheil sinn a’ cur luach mòr: mion-sgrùdadh canary fèin-ghluasadach agus cleachdadh ìre. Tha mion-sgrùdadh canary a’ ciallachadh gum bi sinn a’ stiùireadh trafaic troimhe chun dreach ùr den chòd, agus a’ dol seachad air a’ chòrr den trafaic riochdachaidh tron ​​​​t-seann dreach. An uairsin bidh sinn a’ sgrùdadh mar a bhios an còd ùr a’ dèiligeadh ris a’ ghnìomh - nas fheàrr no nas miosa na an tè a th’ ann.

Tha sgaoileadh neo-àbhaisteach a’ ciallachadh ma tha duilgheadasan aig sgaoileadh ann an aon sgìre, gun gluais sinn gu sgaoileadh ann an sgìre eile. Anns a ’chùis seo, feumar an liosta sgrùdaidh gu h-àrd a thoirt a-steach don loidhne-phìoban toraidh. Sàbhalaidh mi beagan ùine dhut agus molaidh mi dhut sùil a thoirt air an òraid a rinn mi roimhe, Engineering Global Netflix Operations in the Cloud, ma tha ùidh agad dàibheadh ​​​​nas doimhne a-steach don chuspair seo. Faodar clàradh bhidio den òraid fhaicinn le bhith a’ leantainn a’ cheangail aig bonn an t-sleamhnag.

Co-labhairt QCon. A ’maighstireachd mì-riaghailt: An Iùl Netflix air Microservices. Pàirt 4

Aig deireadh na h-òraid, bruidhnidh mi goirid mu eagrachadh agus ailtireachd Netflix. Aig an fhìor thoiseach bha sgeama againn ris an canar Lìbhrigeadh Dealanach, a bha mar a’ chiad dreach de shruth mheadhanan NRDP 1.x. Faodar am facal “backstream” a chleachdadh an seo oir an toiseach cha b’ urrainn don neach-cleachdaidh ach susbaint a luchdachadh sìos airson ath-chluich nas fhaide air adhart air an inneal. Bha a’ chiad àrd-ùrlar lìbhrigidh didseatach aig Netflix, air ais ann an 2009, a’ coimhead rudeigin mar seo.

Co-labhairt QCon. A ’maighstireachd mì-riaghailt: An Iùl Netflix air Microservices. Pàirt 4

Anns an inneal cleachdaiche bha an tagradh Netflix, anns an robh eadar-aghaidh UI, modalan tèarainteachd, gnìomhachd seirbheis agus ath-chluich, stèidhichte air àrd-ùrlar NRDP - Netflix Ready Device Platform.

Aig an àm sin bha an eadar-aghaidh cleachdaiche gu math sìmplidh. Bha rud ris an canar Queque Reader ann, agus rachadh an neach-cleachdaidh chun làrach gus rudeigin a chuir ri Queque agus an uairsin coimhead air an t-susbaint a bharrachd air an inneal aca. B’ e an rud adhartach gur ann leis an aon bhuidheann Lìbhrigeadh Dealanach a bha an sgioba aghaidh agus an sgioba cùil agus gu robh dlùth dhàimh obrach aca. Chaidh an t-uallach pàighidh a chruthachadh stèidhichte air XML. Aig an aon àm, chaidh an Netflix API airson gnìomhachas DVD a chruthachadh, a bhrosnaich tagraidhean treas-phàrtaidh gus trafaic a stiùireadh chun t-seirbheis againn.

Ach, bha an Netflix API air ullachadh gu math gus ar cuideachadh le eadar-aghaidh cleachdaiche ùr-ghnàthach, anns an robh meata-dàta den t-susbaint gu lèir, fiosrachadh mu na filmichean a bha rim faighinn, a chruthaich an comas liostaichean faire a ghineadh. Bha API REST coitcheann aige stèidhichte air sgeama JSON, Còd Freagairt HTTP, an aon fhear a chaidh a chleachdadh ann an ailtireachd an latha an-diugh, agus modal tèarainteachd OAuth, a bha a dhìth aig an àm airson tagradh aghaidh. Rinn seo e comasach gluasad bho mhodail poblach de lìbhrigeadh susbaint sruthadh gu fear prìobhaideach.

Co-labhairt QCon. A ’maighstireachd mì-riaghailt: An Iùl Netflix air Microservices. Pàirt 4

B ’e an duilgheadas leis a’ ghluasad briseadh, oir a-nis bha an siostam againn ag obrachadh dà sheirbheis stèidhichte air prionnsapalan obrachaidh gu tur eadar-dhealaichte - aon air Rest, JSON agus OAuth, am fear eile air RPC, XML agus inneal tèarainteachd luchd-cleachdaidh stèidhichte air siostam tòcan NTBA. B’ e seo a’ chiad ailtireachd tar-chinealach.

Gu ìre mhòr bha balla-teine ​​​​eadar an dà sgioba againn oir an toiseach cha robh an API a’ dèanamh sgèile glè mhath le NCCP agus dh’ adhbhraich seo suathadh eadar na sgiobaidhean. Bha na h-eadar-dhealachaidhean ann an seirbheisean, protocolaidhean, cuairtean, modalan tèarainteachd, agus gu tric bha aig luchd-leasachaidh ri gluasad eadar co-theacsan gu tur eadar-dhealaichte.

Co-labhairt QCon. A ’maighstireachd mì-riaghailt: An Iùl Netflix air Microservices. Pàirt 4

A thaobh seo, bha còmhradh agam le aon de phrìomh innleadairean a ’chompanaidh, ris an do chuir mi a’ cheist: “Dè a bu chòir a bhith mar an ailtireachd fad-ùine cheart?” agus dh’ fhaighnich e don chunntair: “Is dòcha gu bheil barrachd dragh ort mu na builean eagrachail - dè thachras ma dh'aonaicheas sinn na rudan sin, agus ma bhriseas iad na dh'ionnsaich sinn a dhèanamh math? Tha an dòigh-obrach seo gu math buntainneach do Lagh Chonway: "Tha buidhnean a dhealbhaicheas siostaman air am bacadh le dealbhadh a tha ag ath-aithris structar conaltraidh na buidhne sin." Is e mìneachadh gu math eas-chruthach a tha seo, agus mar sin is fheàrr leam fear nas mionaidiche: “Tha pìos bathar-bog sam bith a’ nochdadh an structar eagrachaidh a chruthaich e. ​​” Seo an abairt as fheàrr leam bho Eric Raymond: "Ma tha ceithir sgiobaidhean de luchd-leasachaidh agad ag obair air inneal-cruinneachaidh, bidh inneal-cruinneachaidh ceithir-pas agad." Uill, tha inneal-cruinneachaidh ceithir-pas aig Netflix, agus sin mar a tha sinn ag obair.

Faodaidh sinn a ràdh anns a 'chùis seo gu bheil an earball a' giùlan a 'chù. Chan e am fuasgladh a’ chiad phrìomhachas a th’ againn, ach a’ bhuidheann; is e a’ bhuidheann a bhios a’ stiùireadh na h-ailtireachd a th’ againn. Mean air mhean, bho hodgepodge de sheirbheisean, ghluais sinn gu ailtireachd ris an canadh sinn Blade Runner, oir an seo tha sinn a’ bruidhinn air seirbheisean iomaill agus comas NCCP a bhith air an sgaradh agus air am filleadh a-steach gu dìreach a-steach do neach-ionaid Zuul, geata API, agus an gnìomh co-fhreagarrach. Chaidh “pìosan” a thionndadh gu meanbh-sheirbheisean ùra le feartan tèarainteachd nas adhartaiche, ath-chluich, seòrsachadh dàta, msaa.

Mar sin, faodar a ràdh gu bheil àite cudromach aig structaran roinneil agus daineamaigs chompanaidhean ann a bhith a’ cumadh dealbhadh siostam agus gu bheil iad nam feart a bhrosnaicheas no a chuireas bacadh air atharrachadh. Tha ailtireachd microservices iom-fhillte agus organach, agus tha a shlàinte stèidhichte air smachd agus caos air a thoirt a-steach.

Beagan sanasachd

Tapadh leibh airson fuireach còmhla rinn. An toil leat na h-artaigilean againn? A bheil thu airson susbaint nas inntinniche fhaicinn? Thoir taic dhuinn le bhith a’ cur òrdugh no a’ moladh do charaidean, sgòth VPS airson luchd-leasachaidh bho $4.99, analog sònraichte de luchd-frithealaidh ìre inntrigidh, a chaidh a chruthachadh leinn dhut: An fhìrinn gu lèir mu VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps bho $ 19 no ciamar a roinn thu frithealaiche? (ri fhaighinn le RAID1 agus RAID10, suas ri 24 cores agus suas ri 40GB DDR4).

Dell R730xd 2x nas saoire ann an ionad dàta Equinix Tier IV ann an Amsterdam? A-mhàin an seo 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV bho $199 anns an Òlaind! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - bho $99! Leugh mu dheidhinn Ciamar a thogail bun-structair Corp. clas le bhith a’ cleachdadh frithealaichean Dell R730xd E5-2650 v4 luach 9000 iùro airson sgillinn?

Source: www.habr.com

Cuir beachd ann