QCon Musangano. Mastering Chaos: Iyo Netflix Inotungamira kune Microservices. Chikamu chechina

Josh Evans anotaura nezvenyika ine mhirizhonga uye ine ruvara yeNetflix microservices, kutanga neiyo yekutanga - iyo anatomy ye microservices, matambudziko ane chekuita neakagoverwa masisitimu, uye mabhenefiti avo. Achivakira panheyo iyi, anoongorora tsika, zvivakwa, uye mashandiro anoita zvinotungamira kune microservice mastery.

QCon Musangano. Mastering Chaos: Iyo Netflix Inotungamira kune Microservices. Chikamu chechina
QCon Musangano. Mastering Chaos: Iyo Netflix Inotungamira kune Microservices. Chikamu chechina
QCon Musangano. Mastering Chaos: Iyo Netflix Inotungamira kune Microservices. Chikamu chechina

Kusiyana nekushanda kwekutyaira, kuunzwa kwemitauro mitsva yekushandira pasirese uye matekinoroji matsva akadai semidziyo sarudzo dzekuwedzera kuomarara kutsva kunharaunda. Chikwata changu chekushanda chakamisikidzwa pane yakanakisa tekinoroji nzira yeNetflix, iyo yakabikwa mune yakafanotsanangurwa yakanakisa maitiro akavakirwa paJava neEC2, asi sezvo bhizinesi richikura, vanogadzira vakatanga kuwedzera zvinhu zvitsva zvakaita sePython, Ruby, Node-JS, uye Docker.

QCon Musangano. Mastering Chaos: Iyo Netflix Inotungamira kune Microservices. Chikamu chechina

Ndinodada kuti isu taive vekutanga kutsigira kuti chigadzirwa chedu chishande zvakanaka pasina kumirira zvichemo zvevatengi. Izvo zvese zvakatanga zviri nyore zvakakwana - isu taive nemapurogiramu anoshanda muPython uye mashoma ekumashure-hofisi maapplication muRuby, asi zvinhu zvakawedzera kunakidza apo vanogadzira webhu vakazivisa kuti vaizosiya JVM uye vaizofambisa webhu. application kuNode software platform.js. Mushure mekuunzwa kweDocker, zvinhu zvakawedzera kuoma. Isu takatevera zvine musoro uye matekinoroji atakauya nawo akave echokwadi patakaashandisa kune vatengi nekuti vakaita zvakawanda zvine musoro. Ndichakuudza kuti sei zvakadaro.

API Gateway inonyatso kugona kubatanidza zvinyorwa zvikuru zvinogona kuita semagumo evagadziri veUI. Vakashandura chimwe nechimwe chezvinyorwa izvi nenzira yekuti mushure mekuita shanduko vaigona kuaendesa kukugadzira uyezve kumidziyo yemushandisi, uye shanduko dzese idzi dzakabatanidzwa nemagumo aimhanya muAPI gedhi.

Nekudaro, izvi zvakadzokorodza dambudziko rekugadzira nyowani monolith uko API sevhisi yakazadzwa nekodhi nenzira yekuti kwakasiyana kukundikana kwakaitika. Semuyenzaniso, mamwe mamagumo akabviswa, kana kuti zvinyorwa zvakangoerekana zvagadzira shanduro dzakawanda dzechimwe chinhu zvekuti shanduro dzakatora ndangariro dzese dziripo dzesevhisi yeAPI.

Zvaive zvine musoro kutora aya ekupedzisira nekuaburitsa kunze kweiyo API sevhisi. Kuti tiite izvi, takagadzira zvikamu zveNode.js zvaimhanya sezvishandiso zvidiki mumidziyo yeDocker. Izvi zvakatibvumira kusiyanisa chero matambudziko uye kubondera kunokonzerwa neaya ma node application.

Mutengo wekuchinja uku wakakurisa uye une zvinhu zvinotevera:

  • Zvishandiso zvekugadzira. Kutarisira matekinoroji matsva kwaida maturusi matsva nekuti timu yeUI, ichishandisa zvinyorwa zvakanaka kwazvo kugadzira modhi inoshanda, yaisafanira kupedza nguva yakawanda ichitarisira zvivakwa, yaingofanira kunyora zvinyorwa uye kutarisa mashandiro avo.
    Mukana Insight uye Kuronga - Muenzaniso wakakosha ndiwo maturusi matsva anodiwa kuburitsa ruzivo rwemutyairi wekuita. Zvaive zvakakodzera kuti uzive kuti yakawanda sei processor yaive yakagarwa, ndangariro yaishandiswa sei, uye kuunganidza ruzivo urwu kwaida maturusi akasiyana.
  • Kutsemuka kwemifananidzo yepasi - iyo yakapusa base AMI yawedzera kupatsanuka uye nyanzvi.
  • Node management. Iko hakuna off-the-sherufu architecture kana tekinoroji iripo iyo inokutendera iwe kubata node mugore, saka isu takavaka Titus, chikuva chekuchengetedza mudziyo chinopa scalable uye yakavimbika dhizaini yekuisa uye gore kubatanidzwa neAmazon AWS.
  • Kudzokororwa kweraibhurari kana chikuva. Kupa matekinoroji matsva ane basa rakafanana repapuratifomu zvaida kuti idzokororwe mumaturusi emugadziri weNode.js.
  • Kudzidza curve uye maindasitiri ruzivo. Kuunzwa kwetekinoroji nyowani kunogadzira matambudziko matsva anofanirwa kukundwa uye kudzidzwa kubva.

Nokudaro, taisagona kuzviganhurira timene paβ€œmugwagwa wakagadzirwa” mumwe uye taifanira kugara tichivaka nzira itsva dzokufambisira mberi matekinoroji edu. Kuchengeta mitengo yakaderera, isu takaganhurira rutsigiro rwepakati uye takatarisa paJVM, node nyowani, uye Docker. Isu takaisa pamberi pesimba rinoshanda, zvikwata zvine ruzivo nezve mutengo wesarudzo dzavo, uye tikavakurudzira kutsvaga nzira dzekushandisa zvakare mhinduro dzepamusoro dzavakange vagadzira. Isu takashandisa nzira iyi pakushandura sevhisi mumitauro yekunze kuendesa chigadzirwa kune vatengi vepasirese. Mienzaniso inosanganisira maraibhurari akareruka evatengi anogona kugadzirwa otomatiki, kuitira kuti zvive nyore kugadzira Python vhezheni, vhezheni yeRuby, vhezheni yeJava, nezvimwe.

Isu taigara tichitsvaga mikana yekushandisa tekinoroji dzakaratidzwa dzakazviratidza munzvimbo imwechete uye mune mamwe mamiriro akafanana.

Ngatitaure nezve chekupedzisira chinhu - shanduko, kana kusiyana. Tarisa mashandisiro echigadzirwa chedu anosiyana zvisina kuenzana nezuva revhiki uye neawa mukati mezuva. Iwe unogona kutaura kuti 9 am ndiyo nguva yakaoma yeNetflix, apo mutoro uri pahurongwa unosvika pakakwirira.

QCon Musangano. Mastering Chaos: Iyo Netflix Inotungamira kune Microservices. Chikamu chechina

Tingaite sei kukurumidza kukurumidza kwekuita kwekuvandudza kwesoftware, ndiko kuti, kugara tichiita shanduko nyowani kune sisitimu, pasina kukonzera kukanganisa mukuunza masevhisi uye pasina kugadzira kusagadzikana kune vatengi vedu? Netflix yakawana izvi kuburikidza nekushandiswa kweSpinnaker, itsva yepasi rose-yakavakirwa manejimendi uye inoenderera mberi kuburitsa (CD) chikuva.

QCon Musangano. Mastering Chaos: Iyo Netflix Inotungamira kune Microservices. Chikamu chechina

Nekutsoropodza, Spinnaker yakagadzirirwa kubatanidza maitiro edu akanakisa kuitira kuti sezvatinoisa zvikamu mukugadzira, isu tinokwanisa kubatanidza zvinobuda zvakanangana neiyo midhiya yekuburitsa tekinoroji.

QCon Musangano. Mastering Chaos: Iyo Netflix Inotungamira kune Microservices. Chikamu chechina

Takakwanisa kubatanidza matekinoroji maviri mupombi yedu yekuendesa iyo yatinokoshesa zvakanyanya: otomatiki ongororo ye canary uye kuendesa kwakarongwa. Kuongororwa kweCanary kunoreva kuti isu tinotungamira kudonha kwetraffic kune iyo nyowani vhezheni yekodhi, uye kupfuudza yakasara yekugadzira traffic kuburikidza neiyo yekare vhezheni. Zvadaro tinotarisa kuti kodhi itsva inobata sei nebasa racho - zviri nani kana kuipa kupfuura iripo.

Kuburitswa kwakadzama kunoreva kuti kana kuburitswa mune imwe dunhu kuine matambudziko, tinoenda kunoburitswa mune imwe dunhu. Muchiitiko ichi, chinyorwa chataurwa pamusoro apa chinofanira kuverengerwa mupombi yekugadzira. Ini ndichakuchengetera imwe nguva uye ndinokukurudzira kuti utarise hurukuro yangu yapfuura, Engineering Global Netflix Operations muCloud, kana iwe uchida kunyura zvakadzika mune ino chinyorwa. Vhidhiyo yekurekodha yekutaura inogona kutariswa nekutevera chinongedzo chiri pazasi pesiraidhi.

QCon Musangano. Mastering Chaos: Iyo Netflix Inotungamira kune Microservices. Chikamu chechina

Pakupera kwehurukuro, ini ndichataura muchidimbu nezvesangano uye zvivakwa zveNetflix. Pakutanga takanga tine chirongwa chinonzi Electronic Delivery, iyo yaive yekutanga shanduro yeNRDP 1.x media kutenderera. Izwi rekuti "backstream" rinogona kushandiswa pano nekuti pekutanga mushandisi aingokwanisa kudhawunirodha zvirimo kuti azotamba zvakare pamudziyo. YeNetflix yekutanga dhijitari yekuburitsa chikuva, kumashure muna 2009, yaitaridzika seizvi.

QCon Musangano. Mastering Chaos: Iyo Netflix Inotungamira kune Microservices. Chikamu chechina

Chishandiso chemushandisi chaive neNetflix application, yaive neUI interface, chengetedzo mamodule, activation yebasa uye kutamba, zvichibva papuratifomu yeNRDP - Netflix Yakagadzirira Chishandiso Platform.

Panguva iyoyo mushandisi interface yaive yakapusa. Yaive neyainzi Queque Reader, uye mushandisi aienda kune saiti kuti awedzere chimwe chinhu kuQueque obva aona zvakawedzerwa pamudziyo wavo. Chakanaka chaive chekuti timu yekumberi neyekumashure yaive yesangano rimwechete reElectronics Delivery uye vaive nehukama hwepedyo hwekushanda. Iyo payload yakagadzirwa zvichibva paXML. Panguva imwecheteyo, Netflix API yebhizimisi reDVD yakagadzirwa, iyo yakakurudzira kushandiswa kwevatatu kutungamira traffic kubasa redu.

Zvisinei, Netflix API yakanyatsogadzirirwa kutibatsira neine innovative user interface, ine metadata yezvose zviri mukati, ruzivo pamusoro pemafirimu api aivepo, izvo zvakagadzira kukwanisa kugadzira zvinyorwa zvekutarisa. Yakanga iine generic REST API yakavakirwa paJSON schema, HTTP Response Code, yakafanana inoshandiswa mukuvaka kwemazuva ano, uye OAuth yekuchengetedza modhi, izvo zvaidiwa panguva yekumberi-yekupedzisira application. Izvi zvakaita kuti zvikwanise kutama kubva paruzhinji modhi yekushambadzira zvemukati kuenda kune yakavanzika.

QCon Musangano. Mastering Chaos: Iyo Netflix Inotungamira kune Microservices. Chikamu chechina

Dambudziko neshanduko raive kupatsanurwa, sezvo ikozvino sisitimu yedu yakashanda masevhisi maviri zvichienderana nemisimboti yakasiyana yekushanda - imwe paRest, JSON uye OAuth, imwe iri paRPC, XML uye mushandisi kuchengetedza masisitimu zvichienderana neNTBA token system. Iyi yaive yekutanga hybrid architecture.

Pakanga paine firewall pakati pezvikwata zvedu zviviri nekuti pakutanga API haina kunyatso kukwira neNCCP uye izvi zvakakonzera kupokana pakati pezvikwata. Misiyano yaive mumasevhisi, maprotocol, maseketi, kuchengetedza mamodule, uye vanogadzira kazhinji vaifanira kuchinja pakati pemamiriro akasiyana zvachose.

QCon Musangano. Mastering Chaos: Iyo Netflix Inotungamira kune Microservices. Chikamu chechina

Panyaya iyi, ndakava nehurukuro nemumwe wemainjiniya ekambani iyi, wandakabvunza mubvunzo wokuti: β€œNdechipi chinofanira kuva chivakwa chenguva refu?” uye akabvunza mubvunzo wokuti: β€œZvichida uri kunyanya kunetseka. pamusoro pemigumisiro yesangano - chii chinoitika kana tikabatanidza zvinhu izvi, uye zvikaputsa zvatakadzidza kuita zvakanaka? Iyi nzira inonyanya kuenderana neMutemo waConway: "Masangano ekugadzira masisitimu anomanikidzwa nedhizaini inodzokorora chimiro chekutaura chesangano iroro." Iyi itsanangudzo isinganzwisisike, saka ini ndinosarudza imwe yakanyatsojeka: "Chero chidimbu chesoftware chinoratidza chimiro chesangano chakachigadzira." Heino quote yangu yandinoda kubva kuna Eric Raymond: "Kana uine zvikwata zvina zvevagadziri vanoshanda pane compiler, iwe unozopedzisira uine mana-pass compiler." Zvakanaka, Netflix ine mana-pass compiler, uye ndiwo mashandiro atinoita.

Tinogona kuti munyaya iyi muswe uri kukwenya imbwa. Chekutanga chedu harisi mhinduro, asi sangano; isangano rinotungamira dhizaini yatinayo. Zvishoma nezvishoma, kubva kune hodgepodge yemasevhisi, takatamira kune chivakwa chatakadaidza Blade Runner, nekuti pano tiri kutaura nezve edge masevhisi uye kugona kweNCCP kupatsanurwa nekubatanidzwa zvakananga muZuul proxy, API gedhi, uye inoenderana inoshanda. "Zvimedu" zvakashandurwa kuita mamicroservice matsva ane kuchengetedzwa kwepamusoro, replay, kuronga data, nezvimwe.

Nekudaro, zvinogona kutaurwa kuti zvimiro zvedhipatimendi uye masimba ekambani anoita basa rakakosha mukuumba dhizaini yehurongwa uye chinhu chinosimudzira kana kukanganisa shanduko. Microservices architecture yakaoma uye organic, uye hutano hwayo hwakavakirwa pakuranga uye yakaunza mhirizhonga.

Kushambadza zvishoma

Ndinokutendai nekugara nesu. Unoda zvinyorwa zvedu here? Unoda kuona zvimwe zvinonakidza zvemukati? Titsigire nekuisa odha kana kukurudzira kushamwari, Cloud VPS yevagadziri kubva kumadhora 4.99, yakasarudzika analogue yekupinda-level maseva, iyo yakagadzirwa nesu kuti iwe: Chokwadi chese nezveVPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps kubva pamadhora makumi maviri kana kugovera sevha? (inowanikwa neRAID1 uye RAID10, kusvika ku24 cores uye kusvika ku40GB DDR4).

Dell R730xd 2 nguva yakachipa muEquinix Tier IV data center muAmsterdam? Chete pano 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV kubva $199 muNetherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - kubva pamadhora makumi mapfumbamwe nemapfumbamwe! Verenga nezve Nzira yekuvaka Infrastructure Corp. kirasi nekushandiswa kweDell R730xd E5-2650 v4 maseva anokosha 9000 euros penny?

Source: www.habr.com

Voeg