I-Microservices: ukuthi iyini, kungani ikhona nokuthi kufanele isetshenziswe nini

Bengifuna ukubhala indatshana ngesihloko se-microservice architecture isikhathi eside, kodwa izinto ezimbili zazilokhu zingivimba - lapho ngiqhubeka ngingena esihlokweni, kulapho kwakubonakala kimina ukuthi engikwaziyo kusobala, nalokho engingakwazi. engikwaziyo ukuthi kumele kufundwe futhi kufundwe. Ngakolunye uhlangothi, ngicabanga ukuthi sekukhona okuthile okumele kuxoxwe phakathi kwezilaleli eziningi. Ngakho-ke imibono ehlukile yamukelekile.

Umthetho kaConway kanye nobudlelwano phakathi kwebhizinisi, inhlangano kanye nohlelo lolwazi

Ngiyaphinda futhi ngizozivumela ukuthi ngicaphune:

"Noma iyiphi inhlangano eklama uhlelo (ngomqondo obanzi) izothola idizayini isakhiwo sayo sifana nesakhiwo samaqembu akuleyo nhlangano."
- UMelvyn Conway, ngo-1967

Ngokubona kwami, lo mthetho kungenzeka ukuthi uhlobane nokwenzeka kokuhlela ibhizinisi, kunokuba uqonde ngqo ohlelweni lolwazi. Ake ngichaze ngesibonelo. Ake sithi sinethuba lebhizinisi elizinzile elinomjikelezo wempilo wobude kangangokuthi kunengqondo ukuhlela ibhizinisi (lokhu akulona iphutha, kodwa ngilithanda ngempela leli gama engilintshontshile). Ngokwemvelo, uhlelo olusekelayo lwaleli bhizinisi izohambisana naleli bhizinisi ngokwenhlangano nangokwenqubo .

Ukuqondiswa kwebhizinisi kwezinhlelo zolwazi

I-Microservices: ukuthi iyini, kungani ikhona nokuthi kufanele isetshenziswe nini

Ake ngichaze ngesibonelo. Ake sithi kukhona ithuba lebhizinisi lokuhlela ibhizinisi elithengisa i-pizza. Enguqulweni ye-V1 (ake siyibize ngemininingwane yangaphambili), inkampani bekuyi-pizzeria, irejista yemali, kanye nensizakalo yokulethwa. Le nguqulo yahlala isikhathi eside ngaphansi kwezimo zokuhlukahluka okuphansi kwemvelo. Kwabe sekufika inguqulo yesi-2 esikhundleni sayo - isithuthuke kakhulu futhi ikwazi ukusebenzisa isistimu yolwazi emnyombweni wayo ebhizinisini ngesakhiwo se-monolithic. Futhi lapha, ngombono wami, kukhona nje ukungabi nabulungisa okubi maqondana monoliths - i-architecture okuthiwa i-monolithic ayihambisani nemodeli yebhizinisi lesizinda. Yebo, uma lokhu bekunjalo, uhlelo ngeke lukwazi nhlobo ukusebenza - ngokungqubuzana nomthetho ofanayo weConway kanye nengqondo. Cha, izakhiwo ze-monolithic zihambisana ngokugcwele nemodeli yebhizinisi kulesi sigaba sokuthuthukiswa kwebhizinisi - mina, yiqiniso, ngisho isiteji lapho uhlelo seluvele lwakhiwe futhi luqala ukusebenza. Kuyiqiniso elimangalisayo ukuthi kungakhathaliseki ukuthi iyiphi indlela yezakhiwo, kokubili inguqulo 3 yezakhiwo ezigxile kusevisi kanye nenguqulo ye-microservices ye-architecture engu-N izosebenza ngokulinganayo. Yini ebanjwayo?

Konke kugeleza, yonke into iyashintsha, noma ingabe ama-microservices ayindlela yokulwa nobunzima?

Ngaphambi kokuthi siqhubeke, ake sibheke eminye imibono eyiphutha mayelana ne-microservice architecture.

Abagqugquzeli bokusebenzisa indlela ye-microservice bavame ukuphikisa ngokuthi ukwephula i-monolith ibe ama-microservices kwenza indlela yokuthuthukisa ibe lula ngokunciphisa isisekelo sekhodi yezinsizakalo ngazinye. Ngokubona kwami, lesi sitatimende siwumbhedo ophelele. Ngokujulile, ukusebenzisana okusobala ngaphakathi kwekhodi ye-monolith ne-homogeneous kubonakala kuyinkimbinkimbi? Ukube lokhu bekunjalo ngempela, wonke amaphrojekthi ekuqaleni abezokwakhiwa njengama-microservices, kuyilapho ukuzijwayeza kubonisa ukuthi ukufuduka kusuka ku-monolith kuya kuma-microservices kuvame kakhulu. Ubunkimbinkimbi abushabalali; buvele busuke kumamojula ngamanye uye ezindaweni zokusebenzelana (kungaba amabhasi edatha, i-RPC, ama-API, nezinye izimiso eziyisisekelo) kanye nezinhlelo zokuhlela. Futhi lokhu kunzima!

Inzuzo yokusebenzisa isitaki esingafani nayo iyangabazeka. Ngeke ngiphikise ukuthi lokhu kungenzeka, kodwa empeleni akuvamile ukwenzeka (Ukubheka phambili - lokhu kufanele kwenzeke - kodwa njengomphumela kunenzuzo).

Umjikelezo wempilo yomkhiqizo kanye nomjikelezo wempilo yesevisi

Bheka futhi umdwebo ongenhla. Akusikho kwaqondana nje ukuthi ngiphawule ukwehla komjikelezo wempilo wenguqulo ehlukile yebhizinisi - ezimeni zanamuhla, ukusheshisa ukuguqulwa kwebhizinisi phakathi kwezinguqulo okuyisinqumo sempumelelo yalo. Impumelelo yomkhiqizo inqunywa isivinini sokuhlola imibono yebhizinisi kuwo. Futhi lapha, ngokubona kwami, kukhona inzuzo eyinhloko ye-microservice architecture. Kodwa ake sihambe ngohlelo.

Masiqhubekele esigabeni esilandelayo ekuthuthukisweni kwezinhlelo zolwazi - ekwakhiweni okugxile kusevisi ye-SOA. Ngakho-ke, ngesinye isikhathi saqokomisa emkhiqizweni wethu amasevisi esikhathi eside - ihlala isikhathi eside ngomqondo wokuthi lapho uhamba phakathi kwezinguqulo zomkhiqizo, kunethuba lokuthi umjikelezo wempilo yesevisi uzoba mude kunomjikelezo wempilo wenguqulo elandelayo yomkhiqizo. Kungaba nengqondo ukungazishintshi nhlobo - thina Okubalulekile isivinini sokushintshela enguqulweni elandelayo. Kodwa maye, siphoqeleka ukuthi senze izinguquko eziqhubekayo ezinsizeni - futhi lapha yonke into isisebenzela, imikhuba ye-DevOps, ukufakwa kweziqukathi, njalonjalo - yonke into efika engqondweni. Kodwa lezi akuzona ama-microservices!

Microservices njengendlela yokulwa nobunkimbinkimbi... ukuphathwa kokucushwa

Futhi lapha ekugcineni singadlulela endimeni echazayo yama-microservices - lena indlela eyenza ukuphathwa kokucushwa komkhiqizo kube lula. Ngokuningiliziwe, umsebenzi we-microservice ngayinye uchaza ngqo umsebenzi webhizinisi ngaphakathi komkhiqizo ngokuya ngemodeli yesizinda - futhi lezi yizinto ezingaphili enguqulweni yesikhashana, kodwa ethubeni lebhizinisi lesikhathi eside. Futhi ukushintshela enguqulweni elandelayo yomkhiqizo kwenzeka kunganakwa ngokoqobo - ushintsha/wengeza i-microservice eyodwa, futhi mhlawumbe uhlelo nje lokusebenzelana kwabo, futhi kungazelelwe uzithole usesikhathini esizayo, ushiya ngemuva izimbangi ezikhalayo eziqhubeka nokugxuma phakathi kwezinguqulo ze monoliths yabo. Manje ake ucabange ukuthi kunevolumu enkulu impela yama-microservices anezindawo zokusebenzelana ezichazwe ngaphambilini namandla ebhizinisi. Futhi ufika futhi wakhe isakhiwo somkhiqizo wakho kusuka kuma-microservices esenziwe ngomumo - ngokudweba umdwebo, isibonelo. Siyakuhalalisela - unenkundla - futhi manje usungakwazi ukuzihehela ibhizinisi. Amaphupho Amaphupho.

okutholakele

  • Isakhiwo sesistimu kufanele sinqunywe umjikelezo wokuphila wezingxenye zawo. Uma ingxenye ihlala ngaphakathi kwenguqulo yomkhiqizo, akukho phuzu ekwandiseni ubunkimbinkimbi besistimu ngokusebenzisa indlela ye-microservice.
  • I-Microservice Architecture kufanele isekelwe kumodeli yesizinda - ngoba ithuba lebhizinisi yisizinda esiphile isikhathi eside kakhulu
  • Imikhuba yokulethwa (imikhuba ye-DevOps) kanye ne-orchestration ingenye yezinto ezibaluleke kakhulu ekwakhiweni kwe-microservice - ngesizathu sokuthi ukwenyuka kwezinga lokushintsha kwezingxenye kubeka izimfuno ezikhulayo zejubane nekhwalithi yokulethwa.

Source: www.habr.com

Engeza amazwana