Ingqungquthela ye-QCon. I-Mastering Chaos: Umhlahlandlela we-Netflix kuma-Microservices. Ingxenye yesi-4

UJosh Evans ukhuluma ngezwe elinesiphithiphithi nemibala ye-Netflix microservices, eqala ngezinto eziyisisekelo - i-anatomy yama-microservices, izinselele ezihambisana nezinhlelo ezisabalalisiwe, kanye nezinzuzo zazo. Ekwakhela phezu kwalesi sisekelo, uhlola amasiko, izakhiwo, kanye nezinqubo zokusebenza eziholela ekwazisweni kwe-microservice.

Ingqungquthela ye-QCon. I-Mastering Chaos: Umhlahlandlela we-Netflix kuma-Microservices. Ingxenye yesi-1
Ingqungquthela ye-QCon. I-Mastering Chaos: Umhlahlandlela we-Netflix kuma-Microservices. Ingxenye yesi-2
Ingqungquthela ye-QCon. I-Mastering Chaos: Umhlahlandlela we-Netflix kuma-Microservices. Ingxenye yesi-3

Ngokungafani ne-drift yokusebenza, ukwethulwa kwezilimi ezintsha zesevisi yamazwe ngamazwe kanye nobuchwepheshe obusha obufana neziqukathi yizinqumo eziqaphelayo zokwengeza inkimbinkimbi entsha emvelweni. Ithimba lami lemisebenzi lalinganisa kumephu yomgwaqo wobuchwepheshe ongcono kakhulu we-Netflix, owabhakwa wenza izinqubo ezihamba phambili ezichazwe ngaphambilini ezisekelwe ku-Java ne-EC2, kodwa njengoba ibhizinisi likhula, onjiniyela baqala ukungeza izingxenye ezintsha ezifana ne-Python, i-Ruby, i-Node-JS, ne-Docker.

Ingqungquthela ye-QCon. I-Mastering Chaos: Umhlahlandlela we-Netflix kuma-Microservices. Ingxenye yesi-4

Ngiyaziqhenya ngokuthi sibe ngabokuqala ukumela umkhiqizo wethu ukuthi usebenze kahle ngaphandle kokulinda izikhalazo zamakhasimende. Konke kuqale kulula ngokwanele - sasinezinhlelo zokusebenza ePython kanye nezicelo ezimbalwa zasehhovisi e-Ruby, kodwa izinto zaba mnandi kakhulu lapho abathuthukisi bethu bewebhu bememezela ukuthi bazolahla i-JVM futhi bazohambisa iwebhu. isicelo endaweni yesofthiwe ye-Node.js. Ngemuva kokwethulwa kwe-Docker, izinto zaba nzima kakhulu. Silandele i-logic futhi ubuchwepheshe esiqhamuke nabo baba ngokoqobo lapho sibusebenzisa kumakhasimende ngoba benza umqondo omkhulu. Ngizokutshela ukuthi kungani lokhu kunjalo.

I-API Gateway empeleni inamandla okuhlanganisa izikripthi ezinhle ezingasebenza njengeziphetho zabathuthukisi be-UI. Baguqule ngayinye yalezi scripts ngendlela yokuthi ngemva kokwenza izinguquko bakwazi ukuzisebenzisa ekukhiqizeni bese kuba kumadivayisi wabasebenzisi, futhi zonke lezi zinguquko zavunyelaniswa namaphoyinti okugcina agijima kusango le-API.

Kodwa-ke, lokhu kuphindaphinde inkinga yokudala i-monolith entsha lapho isevisi ye-API igcwaliswe kakhulu ngekhodi ngendlela yokuthi izehlakalo zokwehluleka ezehlukene zenzeke. Isibonelo, amaphoyinti okugcina asusiwe, noma imibhalo ikhiqize izinguqulo eziningi zento ethile kangangokuthi izinguqulo zithathe yonke inkumbulo etholakalayo yesevisi ye-API.

Bekunengqondo ukuthatha lezi zindawo zokuphela bese uzikhipha kusevisi ye-API. Ukwenza lokhu, sidale izingxenye ze-Node.js ezisebenza njengezinhlelo zokusebenza ezincane ezitsheni ze-Docker. Lokhu kusivumele ukuthi sihlukanise noma yiziphi izinkinga nokuphahlazeka okudalwe yilezi zinhlelo zokusebenza zenodi.

Izindleko zalezi zinguquko zikhulu kakhulu futhi zihlanganisa izici ezilandelayo:

  • Amathuluzi okukhiqiza. Ukuphatha ubuchwepheshe obusha kwakudinga amathuluzi amasha ngoba ithimba le-UI, lisebenzisa imibhalo emihle kakhulu ukuze lidale imodeli ephumelelayo, akuzange kudingeke lichithe isikhathi esiningi lilawula ingqalasizinda, bekufanele libhale kuphela imibhalo futhi lihlole ukusebenza kwazo.
    Ithuba Lokuqonda Nokuhlunga - Isibonelo esiyinhloko amathuluzi amasha adingekayo ukuze kuvulwe ulwazi lomshayeli wokusebenza. Bekudingeka ukwazi ukuthi iprosesa ibikade ingakanani, inkumbulo ibisetshenziswa kanjani, kanye nokuqoqa lolu lwazi kudinga amathuluzi ahlukene.
  • Ukuhlukaniswa kwezithombe eziyisisekelo - isisekelo esilula se-AMI sesihlukaniseke kakhulu futhi sikhethekile.
  • Ukuphathwa kwenodi. Awekho ama-architecture angaphandle kweshelufu noma ubuchwepheshe obutholakalayo obukuvumela ukuthi uphathe ama-node efwini, ngakho-ke sakhe i-Titus, inkundla yokuphatha isiqukathi ehlinzeka ngokuphakelwa kweziqukathi okukala nokunokwethenjelwa kanye nokuhlanganiswa kwamafu ne-Amazon AWS.
  • Ukuphindwaphindwa komtapo wolwazi noma inkundla. Ukuhlinzeka ngobuchwepheshe obusha obunomsebenzi ofanayo oyinhloko wenkundla kwakudinga ukuyiphindaphinda kumathuluzi onjiniyela we-Node.js asekelwe emafini.
  • Ijika lokufunda nolwazi lwezimboni. Ukwethulwa kobuchwepheshe obusha kudala izinselele ezintsha okufanele zinqotshwe futhi kufundwe kuzo.

Ngakho, asikwazanga ukuzigcina β€œemgwaqweni oyitiyela” owodwa futhi kwadingeka sakhe njalo izindlela ezintsha zokuthuthukisa ubuchwepheshe bethu. Ukuze sigcine izindleko ziphansi, sikhawulele ukusekela okumaphakathi futhi sagxila ku-JVM, izindawo ezintsha, ne-Docker. Sabeka phambili umthelela osebenzayo, amathimba anolwazi mayelana nezindleko zezinqumo zawo, futhi sawakhuthaza ukuthi abheke izindlela zokusebenzisa kabusha izixazululo ezinomphumela omkhulu asebevele bezikhiqizile. Sisebenzise le ndlela lapho sihumushela isevisi ezilimini zakwamanye amazwe ukuletha umkhiqizo kumakhasimende aphesheya. Izibonelo zifaka amalabhulali amaklayenti alula angenziwa ngokuzenzakalelayo, ukuze kube lula ukwakha inguqulo yePython, inguqulo yeRuby, inguqulo ye-Java, njll.

Besilokhu sifuna amathuba okusebenzisa ubuchwepheshe obufakazelwe obuzibonakalise endaweni eyodwa nakwezinye izimo ezifanayo.

Ake sikhulume ngesici sokugcina - izinguquko, noma ukuhluka. Bheka ukuthi ukusetshenziswa komkhiqizo wethu kuhluka kanjani ngokungalingani ngosuku lweviki nangehora usuku lonke. Ungasho ukuthi i-9 am yisikhathi esinzima kakhulu se-Netflix, lapho umthwalo ohlelweni ufinyelela umkhawulo wawo.

Ingqungquthela ye-QCon. I-Mastering Chaos: Umhlahlandlela we-Netflix kuma-Microservices. Ingxenye yesi-4

Singafinyelela kanjani isivinini esikhulu sokuqaliswa kokuqanjwa kwesofthiwe, okungukuthi, ukwenza izinguquko ezintsha njalo ohlelweni, ngaphandle kokubangela ukuphazamiseka ekulethweni kwesevisi futhi ngaphandle kokudala ukuphazamiseka kumakhasimende ethu? I-Netflix izuze lokhu ngokusebenzisa i-Spinnaker, inkundla entsha yomhlaba wonke yokuphatha okusekelwe ngamafu kanye nokulethwa okuqhubekayo (CD).

Ingqungquthela ye-QCon. I-Mastering Chaos: Umhlahlandlela we-Netflix kuma-Microservices. Ingxenye yesi-4

Ngokubalulekile, i-Spinnaker yayiklanyelwe ukuhlanganisa imikhuba yethu engcono kakhulu ukuze njengoba sisebenzisa izingxenye ekukhiqizeni, sikwazi ukuhlanganisa okukhiphayo ngokuqondile kubuchwepheshe bethu bokulethwa kwemidiya.

Ingqungquthela ye-QCon. I-Mastering Chaos: Umhlahlandlela we-Netflix kuma-Microservices. Ingxenye yesi-4

Sikwazile ukuhlanganisa ubuchwepheshe obubili emgqeni wethu wokulethwa esibazisa kakhulu: ukuhlaziya okuzenzakalelayo kwe-canary kanye nokuthunyelwa kwesiteji. Ukuhlaziywa kwe-Canary kusho ukuthi siqondisa kancane kancane ithrafikhi enguqulweni entsha yekhodi, futhi sidlulise yonke ithrafikhi yokukhiqiza ngenguqulo endala. Bese sibheka ukuthi ikhodi entsha ibhekana kanjani nomsebenzi - kangcono noma kubi kakhulu kunale ekhona.

Ukukhishwa okuhamba kancane kusho ukuthi uma ukukhishwa endaweni ethile kunezinkinga, sithuthela ekukhishweni kwesinye isifunda. Kulokhu, uhlu lokuhlola olubalwe ngenhla kufanele lufakwe epayipini lokukhiqiza. Ngizokongela isikhathi futhi ngincoma ukuthi uhlole inkulumo yami yangaphambilini, I-Engineering Global Netflix Operations in the Cloud, uma ungathanda ukucwila ujule kulesi sihloko. Ukurekhodwa kwevidiyo yenkulumo kungabukwa ngokulandela isixhumanisi esingezansi kwe-slide.

Ingqungquthela ye-QCon. I-Mastering Chaos: Umhlahlandlela we-Netflix kuma-Microservices. Ingxenye yesi-4

Ekupheleni kwenkulumo, ngizokhuluma kafushane ngenhlangano nezakhiwo zeNetflix. Ekuqaleni besinohlelo olubizwa nge-Electronic Delivery, okwakuwuhlobo lokuqala lokusakaza kwemidiya ye-NRDP 1.x. Igama elithi "backstream" lingasetshenziswa lapha ngoba ekuqaleni umsebenzisi ubekwazi ukulanda okuqukethwe ukuze akudlalwe kamuva kudivayisi. Inkundla yokuqala yokulethwa kwedijithali yeNetflix, emuva ngo-2009, yayibukeka kanje.

Ingqungquthela ye-QCon. I-Mastering Chaos: Umhlahlandlela we-Netflix kuma-Microservices. Ingxenye yesi-4

Idivayisi yomsebenzisi ibiqukethe uhlelo lwe-Netflix, oluhlanganisa isixhumi esibonakalayo se-UI, amamojula okuphepha, ukusebenza kwesevisi nokudlala, okusekelwe endaweni ye-NRDP - I-Netflix Ready Device Platform.

Ngaleso sikhathi isikhombimsebenzisi somsebenzisi sasilula kakhulu. Yayiqukethe lokho okwakubizwa ngokuthi i-Queque Reader, futhi umsebenzisi wayezoya kusayithi ukuze engeze okuthile ku-Queque bese ebuka okuqukethwe okwengeziwe kudivayisi yakhe. Okuhle kwakuwukuthi ithimba elingaphambili kanye neqembu elingemuva lalingaphansi kwenhlangano efanayo ye-Electronic Delivery futhi babenobudlelwane obuseduze bokusebenzisana. Umthwalo okhokhelwayo wakhiwe ngokusekelwe ku-XML. Ngesikhathi esifanayo, i-Netflix API yebhizinisi le-DVD yadalwa, eyakhuthaza izinhlelo zokusebenza ezivela eceleni ukuqondisa ithrafikhi enkonzweni yethu.

Kodwa-ke, i-Netflix API yayilungiselelwe kahle ukusisiza nge-interface yomsebenzisi emisha, equkethe imethadatha yakho konke okuqukethwe, ulwazi mayelana nokuthi yiziphi ama-movie atholakalayo, okwenza ikhono lokukhiqiza izinhlu zokubuka. Yayine-generic REST API esekelwe ku-schema se-JSON, Ikhodi Yempendulo ye-HTTP, efanayo esetshenziswa ekwakhiweni kwesimanjemanje, kanye nemodeli yokuphepha ye-OAuth, okwakuyilokho okwakudingeka ngaleso sikhathi kuhlelo lokusebenza olungaphambili. Lokhu kwenze kwaba nokwenzeka ukusuka kumodeli esesidlangalaleni yokulethwa kokuqukethwe kokusakaza ukuya kweyimfihlo.

Ingqungquthela ye-QCon. I-Mastering Chaos: Umhlahlandlela we-Netflix kuma-Microservices. Ingxenye yesi-4

Inkinga ngoshintsho ibiwukuhlukana, njengoba manje isistimu yethu ibisebenzisa izinsiza ezimbili ezisekelwe ezimisweni zokusebenza ezihluke ngokuphelele - eyodwa ku-Rest, JSON kanye ne-OAuth, enye ku-RPC, i-XML kanye nendlela yokuphepha yomsebenzisi esekelwe ohlelweni lwamathokheni we-NTBA. Lesi kwakuyisakhiwo sokuqala esiyingxubevange.

Empeleni bekune-firewall phakathi kwamaqembu ethu amabili ngoba ekuqaleni i-API ayizange ihambelane ne-NCCP futhi lokhu kuholele ekuxabaneni phakathi kwamaqembu. Umehluko wawusezinkonzweni, izivumelwano, izifunda, amamojula okuphepha, kanye nonjiniyela ngokuvamile kwakudingeka bashintshe phakathi kwezimo ezihluke ngokuphelele.

Ingqungquthela ye-QCon. I-Mastering Chaos: Umhlahlandlela we-Netflix kuma-Microservices. Ingxenye yesi-4

Maqondana nalokhu, ngaba nengxoxo nomunye wonjiniyela abakhulu benkampani, engabuza kuye umbuzo othi: β€œYini okufanele ibe yisakhiwo esilungile sesikhathi eside?” futhi wabuza umbuzo ophikisayo: β€œCishe ukhathazeke kakhulu. mayelana nemiphumela yenhlangano - kwenzekani uma sihlanganisa lezi zinto, futhi zephula lokho esikufundile ukuze sikwenze kahle? Le ndlela ihambisana kakhulu noMthetho ka-Conway: "Izinhlangano eziklama izinhlelo zivinjelwa umklamo ophindaphinda uhlaka lokuxhumana lwaleyo nhlangano." Lena incazelo engabonakali, ngakho-ke ngikhetha ecaciswe kakhudlwana: β€œNoma yiluphi ucezu lwesofthiwe lubonisa ukwakheka kwenhlangano okudalile.” Nasi isicaphuna sami esiyintandokazi esivela ku-Eric Raymond: "Uma unamaqembu amane onjiniyela abasebenza ku-compiler, uzogcina usunomdidiyeli wamaphasi amane." Hhayi-ke, iNetflix ine-compiler enamaphasi amane, futhi sisebenza kanjalo.

Singasho ukuthi kulokhu umsila utshikizisa inja. Okuhamba phambili kwethu akusona isixazululo, kodwa inhlangano; yinhlangano eqhuba ukwakheka esinakho. Kancane kancane, kusukela ku-hodgepodge yezinsizakalo, sathuthela esakhiweni esisibiza ngokuthi i-Blade Runner, ngoba lapha sikhuluma ngamasevisi asemaphethelweni kanye nekhono le-NCCP lokuhlukaniswa futhi lihlanganiswe ngqo kummeleli we-Zuul, isango le-API, kanye nokusebenza okuhambisanayo. "izingcezu" ziguqulwe zaba yizinsizakalo ezincane ezintsha ezinokuvikeleka okuthuthuke kakhulu, ukudlala kabusha, ukuhlunga idatha, njll.

Ngakho-ke, kungashiwo ukuthi izinhlaka zomnyango kanye namandla enkampani adlala indima ebalulekile ekubumbeni ukwakheka kwesistimu futhi kuyisici esikhuthaza noma esivimbela ushintsho. I-Microservices architecture iyinkimbinkimbi futhi i-organic, futhi impilo yayo isekelwe ekuqeqeshweni nasekuthulweni kwezinxushunxushu.

Ukukhangisa okuncane

Siyabonga ngokuhlala nathi. Uyazithanda izindatshana zethu? Ufuna ukubona okuqukethwe okuthakaselayo okwengeziwe? Sisekele ngokufaka i-oda noma ngokuncoma kubangani, I-VPS yefu yonjiniyela kusuka ku-$4.99, i-analogue ehlukile yamaseva ezinga lokungena, esungulwe yithi ngenxa yakho: Lonke iqiniso nge-VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps kusuka ku-$19 noma ukwabelana ngeseva? (itholakala nge-RAID1 kanye ne-RAID10, kufika kuma-cores angu-24 kuze kufike ku-40GB DDR4).

I-Dell R730xd 2x ishibhile esikhungweni sedatha se-Equinix Tier IV e-Amsterdam? Lapha kuphela 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV kusukela ku-$199 eNetherlands! I-Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - isuka ku-$99! Funda mayelana Indlela yokwakha ingqalasizinda corp. ikilasi ngokusetshenziswa kwe-Dell R730xd E5-2650 v4 amaseva abiza u-9000 euros ngepeni?

Source: www.habr.com

Engeza amazwana