Microservices: ziyintoni na, kutheni zikhona kwaye ziphunyezwe nini

Ndandifuna ukubhala inqaku ngesihloko se-microservice architecture ixesha elide, kodwa izinto ezimbini zahlala zindimisa-okukhona ndingena esihlokweni, kokukhona kwakubonakala kum ukuba into endiyaziyo icacile, kwaye into endiyenzayo. Ndiyazi ukuba kufuneka kufundwe kwaye kufundwe. Kwelinye icala, ndicinga ukuba sele kukho into yokuxoxa phakathi kwabaphulaphuli abaninzi. Ngoko ke izimvo ezizezinye zamkelekile.

UMthetho kaConway kunye nobudlelwane phakathi kweshishini, umbutho kunye nenkqubo yolwazi

Kwakhona ndiza kuzivumela ukuba ndicaphule:

"Nawuphi na umbutho oyila inkqubo (kwindlela ebanzi) uya kufumana uyilo olunesakhiwo esiphindaphinda ubume bamaqela kulo mbutho."
β€”UMelvyn Conway, ngo-1967

Ngokombono wam, lo mthetho kunokwenzeka ukuba unxulumene nokuba nokwenzeka kokulungelelanisa ishishini, kunokuba ngokuthe ngqo kwinkqubo yolwazi. Makhe ndichaze ngomzekelo. Masithi sinethuba elizinzileyo loshishino kunye nomjikelo wobomi obude kangangokuba kunengqiqo ukuququzelela ishishini (oku akusiyo itypo, kodwa ndiyalithanda kakhulu eli gama ndilibileyo). Ngokwemvelo, inkqubo exhasayo yeli shishini iya kuhambelana nombutho kwaye ngokwenkqubo eli shishini .

Ukuqhelaniswa neshishini kwiinkqubo zolwazi

Microservices: ziyintoni na, kutheni zikhona kwaye ziphunyezwe nini

Makhe ndichaze ngomzekelo. Masithi kukho ithuba leshishini lokuququzelela ishishini lokuthengisa ipizza. Kwinguqulo ye-V1 (masiyibize ngolwazi lwangaphambili), inkampani yayiyi-pizzeria, irejista yemali, kunye nenkonzo yokuhambisa. Le nguqulo yayihlala ixesha elide kwiimeko zokuguquguquka okuphantsi kokusingqongileyo. Emva koko uguqulelo lwesi-2 lweza endaweni yalo-iphucuke ngakumbi kwaye ikwazi ukusebenzisa inkqubo yolwazi kumbindi wayo kwishishini elinolwakhiwo lwe-monolithic. Kwaye apha, ngokombono wam, kukho ukungabi nabulungisa okubi ngokumalunga ne-monoliths - kuthiwa uyilo lwe-monolithic aluhambelani nemodeli yeshishini lesizinda. Ewe, ukuba oku bekunjalo, inkqubo ayinakukwazi ukusebenza konke konke-ngokuchasene nomthetho weConway kunye nengqiqo efanayo. Hayi, i-architecture ye-monolithic ihambelana ngokupheleleyo nemodeli yoshishino kweli nqanaba lophuhliso lweshishini - mna, ngokuqinisekileyo, ndithetha inqanaba xa inkqubo sele idaliwe kwaye isetyenziswe. Yinyaniso emangalisa kakhulu ukuba nokuba injani na indlela yoyilo, zombini inguqulelo yenkonzo ejolise kwisakhiwo 3 kunye ne-microservices inguqulelo yoyilo N ziya kusebenza ngokulinganayo. Yintoni oyibambileyo?

Yonke into ihamba, yonke into iyatshintsha, okanye ngaba ii-microservices ziyindlela yokulwa nobunzima?

Ngaphambi kokuba siqhubeke, makhe sijonge ezinye iimbono eziphosakeleyo malunga ne-microservice architecture.

Abaxhasi bokusebenzisa indlela ye-microservice bahlala bexoxa ukuba ukuphula i-monolith kwii-microservices kwenza lula indlela yokuphuhlisa ngokunciphisa isiseko sekhowudi yeenkonzo zomntu ngamnye. Ngokombono wam, le ngxelo ibubudenge obupheleleyo. Ngokukrakra, intsebenziswano ecacileyo ngaphakathi kwekhowudi ye-monolith kunye ne-homogeneous ibonakala inzima? Ukuba oku bekunjalo ngenene, zonke iiprojekthi beziza kwakhiwa kuqala njengee-microservices, ngelixa ukuziqhelanisa kubonisa ukuba ukufuduka ukusuka kwi-monolith ukuya kwii-microservices kuxhaphake kakhulu. Ubunzima abupheli; busuka nje ukusuka kwiimodyuli zomntu ngamnye ukuya kujongano (nokuba ziibhasi zedatha, i-RPC, ii-APIs, kunye nezinye iiprothokholi) kunye neenkqubo zokucwangcisa. Kwaye oku kunzima!

Inzuzo yokusebenzisa i-stack ene-heterogeneous nayo iyathandabuza. Andiyi kuphikisa ukuba oku kunokwenzeka, kodwa ngokwenene kunqabile ukuba kwenzeke (Ukukhangela phambili - oku kufuneka kwenzeke - kodwa kunokuba umphumo kunenzuzo).

Umjikelo wobomi bemveliso kunye nomjikelo wobomi benkonzo

Jonga kwakhona lo mzobo ungasentla. Asiyonto yanto yanto ukuba ndiqaphele ukuhla komjikelo wobomi bohlobo olwahlukileyo lweshishini - kwiimeko zangoku, kukukhawulezisa kwenguqu yeshishini phakathi kweenguqulelo ezithatha isigqibo kwimpumelelo yalo. Impumelelo yemveliso igqitywe ngesantya sokuvavanya iingqikelelo zeshishini kuyo. Kwaye apha, ngokombono wam, kukho inzuzo ephambili yoyilo lwe-microservice. Kodwa masihambe ngocwangco.

Makhe siqhubele phambili kwinqanaba elilandelayo ekuphuhlisweni kweenkqubo zolwazi - kwi-architecture ejoliswe kwinkonzo ye-SOA. Ke, ngaxa lithile sigxininise kwimveliso yethu iinkonzo ezihlala ixesha elide - ehlala ixesha elide ngengqiqo yokuba xa uhamba phakathi kweenguqulelo zemveliso, kukho ithuba lokuba umjikelo wobomi benkonzo uya kuba mde kunomjikelo wobomi benguqulelo elandelayo yemveliso. Kuya kuba sengqiqweni ukuba singazitshintshi kwaphela - thina Okubalulekileyo kukukhawuleza kwenguqu kwinguqulelo elandelayo. Kodwa yeha, siphoqeleka ukuba senze utshintsho rhoqo kwiinkonzo - kwaye apha yonke into isebenza kuthi, izenzo ze-DevOps, i-containerization, njalo njalo-yonke into efika engqondweni. Kodwa ezi azizonkonzo ezincinci!

Microservices njengendlela yokulwa nobunzima ... ulawulo loqwalaselo

Kwaye apha sinokuthi ekugqibeleni siqhubele phambili kwindima echazayo yee-microservices - le yindlela eyenza lula ulawulo lokucwangciswa kwemveliso. Ngeenkcukacha ezingakumbi, umsebenzi we-microservice nganye uchaza ngokuthe ngqo umsebenzi weshishini ngaphakathi kwemveliso ngokwemodeli yesizinda - kwaye ezi zizinto ezingahlali kwinguqu emfutshane, kodwa kwithuba leshishini elide. Kwaye ukutshintshela kuguqulelo olulandelayo lwemveliso kwenzeka ngokoqobo ungaqatshelwa - utshintsha / wongeza i-microservice enye, kwaye mhlawumbi nje isikimu sokusebenzisana kwabo, kwaye ngequbuliso uzifumana kwixesha elizayo, ushiya ngasemva abakhuphisana nabo abaqhubeka betsiba phakathi kweenguqulelo ze. monoliths zabo. Ngoku khawufane ucinge ukuba kukho umthamo omkhulu wee-microservices ezinonxibelelwano oluchazwe kwangaphambili kunye nobuchule beshishini. Kwaye ufika kwaye wakhe isakhiwo semveliso yakho kwii-microservices esele zenziwe - ngokulula ngokuzoba umzobo, umzekelo. Sivuyisana nawe - uneqonga - kwaye ngoku unokutsala ishishini ngokwakho. Amaphupha Amaphupha.

ezifunyanisiweyo

  • Uyilo lwenkqubo kufuneka lumiselwe ngumjikelo wobomi bamacandelo ayo. Ukuba icandelo lihlala ngaphakathi kwenguqu yemveliso, akukho sizathu sokwandisa ubunzima benkqubo ngokusebenzisa indlela ye-microservice.
  • I-Microservice architecture kufuneka isekelwe kwimodeli yesizinda - kuba ithuba loshishino yi-domain ehlala ixesha elide
  • Izenzo zokuhambisa (izenzo ze-DevOps) kunye ne-orchestration yenye yezona zinto zibalulekileyo kwi-microservice architecture - ngenxa yesizathu sokuba ukunyuka kwezinga lokutshintsha kwamacandelo kubeka iimfuno ezongezelelweyo kwisantya kunye nomgangatho wokunikezelwa.

umthombo: www.habr.com

Yongeza izimvo