Microservices - uqhushumbo oludibeneyo lweenguqulelo

Molo, Habr! Ndinikela ingqalelo yakho inguqulelo yombhali yenqaku Microservices – Combinatorial Explosion of Versions.
Microservices - uqhushumbo oludibeneyo lweenguqulelo
Ngexesha apho ihlabathi le-IT lihamba ngokuthe ngcembe lisiya kwii-microservices kunye nezixhobo ezifana ne-Kubernetes, yingxaki enye kuphela eya iphawuleka ngakumbi. Le ngxaki - ugqabhuko-dubulo oludityanisiweyo iinguqulelo ezincinci zenkonzo. Sekunjalo, uluntu lwe-IT lukholelwa ukuba imeko yangoku ingcono kakhulu kunokuba "Ukuxhomekeka kwisihogo" isizukulwana sangaphambili setekhnoloji. Nangona kunjalo, ukuguqulela ii-microservices yingxaki enzima kakhulu. Obunye ubungqina boku bunokuba ngamanqaku afana "Ndibuyisele i-monolith yam".

Ukuba awukayiqondi ingxaki ngokufunda esi sicatshulwa, makhe ndikucacisele. Masithi imveliso yakho ineenkonzo ezincinci ezili-10. Ngoku makhe sicinge ukuba i-1 inguqulelo entsha ikhutshiwe kwinkonzo nganye kwezi microservices. Inguqulelo enye kuphela - ndiyathemba ukuba singavumelana sonke ukuba le yinyani encinci kwaye ingabalulekanga. Ngoku, nangona kunjalo, makhe siphinde sijonge imveliso yethu. Ngoguqulelo olunye nje olutsha lwecandelo ngalinye, ngoku sine-1^2 - okanye iimvume ze-10 zendlela imveliso yethu inokuqulunqwa ngayo.

Ukuba kusekho ukungaqondi, mandiyicazulule izibalo. Ke sineenkonzo ezincinci ezili-10, nganye ifumana uhlaziyo olunye. Oko kukuthi, sifumana iinguqulelo ezi-2 ezinokwenzeka kwi-microservice nganye (nokuba indala okanye entsha). Ngoku, kwicandelo ngalinye lemveliso, sinokusebenzisa nokuba yiyiphi kwezi nguqulelo zimbini. Ngokwezibalo, kuyafana nokuba sinenani elibini lamanani ali-10. Umzekelo, masithi i-1 yinguqulelo entsha, kwaye u-0 yinguqulelo endala- emva koko imvume enye inokuchazwa njenge-1001000000 - apho i-1st kunye ne-4th components zihlaziywa, kwaye zonke ezinye azikho. Ukusuka kwimathematika siyazi ukuba inani elinemivo eli-10 yokubini linokuba no-2^10 okanye 1024 amanani. Oko kukuthi, siqinisekisile isikali senani esijongene nalo.

Masiqhubeke nokuqiqa kwethu ngakumbi - kuya kwenzeka ntoni ukuba sine-100 microservices kwaye nganye ineenguqulelo ezili-10 ezinokubakho? Yonke le meko iba mandundu- ngoku sine-10^100 yemvume-eyinani elikhulu. Nangona kunjalo, ndikhetha ukubiza le meko ngolu hlobo, kuba ngoku asisafihli emva kwamagama afana ne "kubernetes", kodwa kunokuba sijongene nengxaki njengoko kunjalo.

Kutheni ndiyithanda kangaka le ngxaki? Ngokukodwa ngenxa yokuba, sele sisebenze ngaphambili kwihlabathi le-NLP kunye ne-AI, saxoxa ngengxaki yokuqhuma okudibeneyo malunga neminyaka emi-5-6 eyadlulayo. Kuphela endaweni yeenguqulelo sasinamagama ngamanye, kwaye endaweni yeemveliso sinezivakalisi kunye nemihlathi. Kwaye nangona iingxaki ze-NLP kunye ne-AI zihlala zingasonjululwanga, kufuneka kuvunywe ukuba inkqubela phambili enkulu yenziwe kule minyaka imbalwa idlulileyo. (ngokoluvo lwam, inkqubela inokwenziwaΠΎKuya kuba ngcono ukuba abantu abakwishishini banike ingqwalasela encinci yokufunda koomatshini kunye nokunye okuninzi kwezinye iindlela-kodwa le nto sele ingekho kumxholo).

Masibuyele kwihlabathi le-DevOps kunye nee-microservices. Sijongene nengxaki enkulu, sizenza indlovu eKunstkamera - kuba into endihlala ndiyiva kukuba "thatha nje i-kubernetes kunye nehelm, kwaye yonke into izakulunga!" Kodwa hayi, yonke into ayizukulunga ukuba yonke into ishiywe njengoko injalo. Ngaphezu koko, isisombululo sohlalutyo kule ngxaki asibonakali samkelekile ngenxa yobunzima bayo. Njengakwi-NLP, kufuneka siqale sijonge le ngxaki ngokunciphisa umda wokukhangela-kule meko, ngokususa iimvume eziphelelwe lixesha.

Enye yezinto enokuthi incede yinto endiyibhale kunyaka ophelileyo malunga nesidingo sokugcina umahluko omncinci phakathi kweenguqulelo ezithunyelwe kubaxhasi. Kwakhona kubalulekile ukuba uqaphele ukuba inkqubo ye-CI / CD eyenziwe kakuhle inceda kakhulu ekunciphiseni ukuhluka. Nangona kunjalo, imeko yangoku yemicimbi kunye neCI / CD ayilungile ngokwaneleyo ukusombulula ingxaki yeemvume ngaphandle kwezixhobo ezongezelelweyo zokubala kunye nokulandelela izinto.

Into esiyidingayo yinkqubo yokulinga kwinqanaba lokudibanisa, apho sinokumisela umngcipheko wecandelo ngalinye, kwaye kwakhona sibe nenkqubo ezenzekelayo yokuhlaziya amacandelo ahlukeneyo kunye nokuvavanya ngaphandle kokungenelela komsebenzisi - ukubona ukuba yintoni esebenzayo kunye nengasebenziyo.

Inkqubo enjalo yovavanyo inokujongeka ngolu hlobo:

  1. Abaphuhlisi babhala iimvavanyo (eli linqanaba elibalulekileyo - kuba ngaphandle koko asinayo inqobo yokuvavanya - kufana nokuleyibhela idatha ekufundeni koomatshini).
  2. Icandelo ngalinye (iprojekthi) lifumana inkqubo yalo ye-CI - le nkqubo ngoku iphuhliswe kakuhle, kwaye umba wokudala inkqubo ye-CI yecandelo elilodwa sele isonjululwe kakhulu.
  3. "Inkqubo yokudibanisa ehlakaniphile" iqokelela iziphumo zeenkqubo ezahlukeneyo zeCI kwaye ihlanganise iiprojekthi zecandelo kwimveliso yokugqibela, iqhuba uvavanyo kwaye ekugqibeleni ibala indlela emfutshane yokufumana umsebenzi ofunekayo wemveliso ngokusekelwe kumacandelo akhoyo kunye nezinto ezinobungozi. Ukuba uhlaziyo alunakwenzeka, le nkqubo yazisa abaphuhlisi malunga namacandelo asele ekhona kwaye yeyiphi kuwo eyenza impazamo. Kwakhona, inkqubo yovavanyo ibaluleke kakhulu apha - kuba inkqubo yokudibanisa isebenzisa iimvavanyo njengenqobo yovavanyo.
  4. Inkqubo yeCD, ethi ke ifumane idatha kwiSmart Integration System kwaye yenze uhlaziyo ngokuthe ngqo. Eli nqanaba ligqiba umjikelo.

Ukushwankathela, kum enye yeengxaki ezinkulu ngoku kukungabikho kwe "Smart Integration System" enokuthi idibanise amacandelo ahlukeneyo kwimveliso kwaye ngaloo ndlela ikuvumela ukuba ulandele indlela imveliso iyonke ihlanganiswe ngayo. Ndiya kuba nomdla kwiingcinga zoluntu malunga noku (spoiler - ngoku ndisebenza kwiprojekthi Reliza, enokuthi ibe yinkqubo yokudibanisa ehlakaniphile).

Enye into yokugqibela endifuna ukuyikhankanya kukuba, kum, i-monolith ayamkelekanga kuyo nayiphi na iprojekthi nokuba yisayizi ephakathi. Kum, iinzame zokukhawulezisa ixesha lokuphunyezwa kunye nomgangatho wophuhliso ngokubuyela kwi-monolith kubangela ukungabaza okukhulu. Okokuqala, i-monolith inengxaki efanayo yokulawula amacandelo - phakathi kwamathala eencwadi ahlukeneyo, nangona kunjalo, yonke le nto ayibonakali kwaye ibonakalisa ngokuyintloko ngexesha elichithwe ngabaphuhlisi. Isiphumo sengxaki ye-monolith yinto engenakwenzeka yenyani yokwenza utshintsho kwikhowudi - kunye nesantya esicotha kakhulu sophuhliso.

I-Microservices iphucula imeko, kodwa ke i-microservice architecture ijongene nengxaki yokuqhuma kwe-combinator kwinqanaba lokudibanisa. Ewe, ngokubanzi, siye sasusa ingxaki efanayo ukusuka kwinqanaba lophuhliso ukuya kwinqanaba lokudibanisa. Nangona kunjalo, ngokoluvo lwam, indlela ye-microservices isakhokelela kwiziphumo ezingcono, kwaye amaqela afumana iziphumo ngokukhawuleza (mhlawumbi ngenxa yokuncipha kobungakanani beyunithi yophuhliso - okanye ubungakanani bebhetshi). Nangona kunjalo, ukusuka kwi-monolith ukuya kwii-microservices akukayiphuculi inkqubo ngokwaneleyo - ukuqhuma okudibeneyo kweenguqulelo ze-microservice yingxaki enkulu, kwaye sinamandla amaninzi okuphucula imeko njengoko siyisombulula.

umthombo: www.habr.com

Yongeza izimvo