Imigaqo yokuphuhlisa izicelo zangoku ezivela kwi-NGINX. Icandelo loku-1

Molweni bahlobo. Kulindelwe ukuqaliswa kwekhosi "Umphuhlisi ongasemva kwi-PHP", ngokwesiko sabelana nawe ngenguqulelo yezinto eziluncedo.

Isoftware isombulula ngakumbi nangakumbi iingxaki zemihla ngemihla, ngelixa isiba nzima ngakumbi. Njengoko uMarc Andreessen watshoyo, idla ihlabathi.

Imigaqo yokuphuhlisa izicelo zangoku ezivela kwi-NGINX. Icandelo loku-1

Ngenxa yoko, indlela izicelo eziphuhliswa ngayo nezihanjiswayo zitshintshe kakhulu kule minyaka imbalwa idlulileyo. Ezi yayiziinguqu kwisikali se-tectonic esakhokelela kwiseti yemigaqo. Le migaqo ingqineke iluncedo ekwakheni iqela, ukuyila, ukuphuhlisa, kunye nokuhambisa isicelo sakho kubasebenzisi bokugqibela.

Imigaqo ingashwankathelwa ngolu hlobo lulandelayo: isicelo kufuneka sibe sincinci, sisekwe kwiwebhu, kwaye sibe ne-architecture yomphuhlisi. Ngokwakha kule migaqo mithathu, unokwenza isicelo esomeleleyo, esinesiphelo esinokuhanjiswa ngokukhawuleza nangokukhuselekileyo kumsebenzisi wokugqibela, kwaye kulula ukuhla kwaye kwandiswe.

Imigaqo yokuphuhlisa izicelo zangoku ezivela kwi-NGINX. Icandelo loku-1

Umgaqo ngamnye ocetywayo unemiba emininzi esiza kuxubusha ngayo ukubonisa indlela umgaqo ngamnye onegalelo ngayo kwinjongo yokugqibela yokuhambisa ngokukhawuleza izicelo ezithembekileyo ekulula ukuzigcina kunye nokusetyenziswa. Siza kujonga imigaqo ngokuthelekisa nezichasi zabo ukuze sicacise ukuba kuthetha ukuthini ukuthi, β€œQiniseka ukuba usebenzisa umgaqo wobuncinciΒ».

Siyathemba ukuba eli nqaku liyakukhuthaza ukuba usebenzise imigaqo ecetywayo yokwakha izicelo zanamhlanje eziza kubonelela ngendlela yoyilo oludibeneyo kumxholo we-teknoloji ehlala ikhula.

Ngokusebenzisa le migaqo, uya kuzifumana uthatha ithuba leendlela zamva nje zophuhliso lwesoftware, kubandakanya DevOps kuphuhliso lwesicelo kunye nokuhanjiswa, ukusetyenziswa kwezikhongozeli (umzekelo, Docker) kunye nezikhokelo zookhestra (umzekelo, Kubernetes), ukusetyenziswa kwee-microservices (kubandakanywa neMicroservice Architecture NGINX ΠΈ ulwakhiwo lonxibelelwano lwenethiwekhi kwizicelo ezincinci zenkonzo.

Yintoni usetyenziso lwangoku?

Usetyenziso lwangoku? Isitaki sanamhlanje? Lithetha ukuthini kanye kanye elithi "le mihla"?

Uninzi lwabaphuhlisi banokuqonda okusisiseko kuphela kwento equlathwe sisicelo sangoku, ngoko ke kuyimfuneko ukuyichaza ngokucacileyo le ngcamango.

Usetyenziso lwangoku luxhasa abathengi abaninzi, makube lujongano lomsebenzisi usebenzisa ilayibrari yeReact JavaScript, isicelo esiphathwayo se-Android okanye i-iOS, okanye isicelo esidibanisa nesinye nge-API. Usetyenziso lwangoku luthetha inani elingenammiselo labaxhasi apho libonelela ngedatha okanye iinkonzo.

Isicelo sanamhlanje sibonelela nge-API ukufikelela kwidatha eceliweyo kunye neenkonzo. I-API kufuneka ingaguquki kwaye ihlale, kwaye ingabhalwa ngokukodwa kwisicelo esithile esivela kumxhasi othile. I-API ifumaneka kwi-HTTP (S) kwaye inikezela ukufikelela kuyo yonke imisebenzi efunyenwe kwi-GUI okanye i-CLI.

Idatha kufuneka ifumaneke ngendlela efanayo, ifomathi esebenzisanayo efana ne-JSON. I-API iveza izinto kunye neenkonzo ngendlela ecacileyo, ehleliweyo; umzekelo, i-RESTful API okanye i-GraphQL ibonelela ngojongano olufanelekileyo.

Izicelo zanamhlanje zakhiwe kwi-stack yanamhlanje, kwaye i-stack yanamhlanje yi-stack exhasa izicelo ezinjalo, ngokulandelanayo. Esi sitaki sivumela umphuhlisi ukuba enze ngokulula isicelo kunye nojongano lweHTTP kunye neesiphelo ze-API ezicacileyo. Indlela oyikhethayo iya kuvumela isicelo sakho ukuba samkele ngokulula kwaye sithumele idatha kwifomathi ye-JSON. Ngamanye amazwi, isitakhi sanamhlanje sihambelana nezinto zeSicelo seFactor elilishumi elinambini microservices.

Iinguqulelo ezidumileyo zolu hlobo lwesitaki zisekelwe Java, Python, INode, ilitye elinqabileyo elibomvu, PHP ΠΈ Go. Microservice Architecture NGINX imele umzekelo woluhlu lwangoku oluphunyeziweyo kulwimi ngalunye olukhankanyiweyo.

Nceda uqaphele ukuba asikhuthazi indlela yokwenziwa kwee-microservices. Uninzi lwenu lusebenza ngee-monoliths ezifuna ukuvela, ngelixa ezinye zijongana nezicelo ze-SOA ezandayo neziphuhlayo ukuze zibe zizicelo ezincinci zenkonzo. Ukanti ezinye zisiya kwizicelo ezingenaseva, kwaye ezinye ziphumeza indibaniselwano yokungasentla. Imigaqo echazwe kweli nqaku iyasebenza kwindlela nganye kwezi nohlengahlengiso olungephi.

Imigaqo

Ngoku sinokuqonda okusisiseko malunga nokuba yintoni usetyenziso lwangoku kunye nemfumba yale mihla, lixesha lokuntywila kulwakhiwo kunye nemigaqo yoyilo eyakunceda kakuhle ekuyileni, ekuphumezeni nasekugcineni usetyenziso lwangoku.

Omnye wemigaqo "ukwakha iiapps ezincinci", masiyibize nje umgaqo wobuncinci. Kukho usetyenziso oluntsonkothileyo oluneendawo ezininzi ezihambayo. Ngokulandelayo, ukwakha usetyenziso ukusuka kumacandelo amancinci, adityanisiweyo kwenza kube lula ukuyila, ukugcina, kunye nokusetyenziswa ngokubanzi. (Qaphela ukuba sithe β€œyenza ibelula” hayi β€œyenza ibelula”).

Umgaqo wesibini kukuba sinokunyusa imveliso yophuhlisi ngokubanceda bagxininise kwiimpawu abazenzayo, ngelixa bebakhulula ekukhathazekeni malunga neziseko kunye neCI / CD ngexesha lokuphunyezwa. Ngoko, ngokufutshane, indlela yethu yokwenza ijolise kumphuhlisi.

Okokugqibela, yonke into malunga nesicelo sakho kufuneka iqhagamshelwe kwinethiwekhi. Kule minyaka ingama-20 idlulileyo, siye sahambela phambili kakhulu kwikamva lothungelwano njengoko uthungelwano luye lwakhawuleza kwaye izicelo ziye zantsonkotha ngakumbi. Njengoko sele sibonile, usetyenziso lwangoku kufuneka lusetyenziswe kwinethiwekhi ngabathengi abaninzi abohlukeneyo. Ukusebenzisa inethiwekhi yokucinga kwi-architecture kunenzuzo ebalulekileyo ehambelana kakuhle nayo umgaqo wobuncinci kunye nombono wendlela, ijolise kumphuhlisi.

Ukuba ugcina le migaqo engqondweni xa uyila kwaye uphumeza isicelo, uya kuba nenzuzo eyahlukileyo kuphuhliso kunye nokuhanjiswa kwemveliso yakho.

Makhe sijonge le migaqo mithathu ngokweenkcukacha.

Umgaqo wobuncinci

Kunzima ngengqondo yomntu ukubona ulwazi oluninzi ngaxeshanye. Kwi-psychology, igama elithi umthwalo wokuqonda libhekisa kwisixa esipheleleyo somzamo wengqondo ofunekayo ukugcina ulwazi kwinkumbulo. Ukunciphisa umthwalo wokuqonda kubaphuhlisi yinto ephambili kuba banokugxila ekusombululeni ingxaki endaweni yokubamba imodeli yangoku eyinkimbinkimbi yesicelo sonke kunye neempawu eziphuhliswayo entloko.

Imigaqo yokuphuhlisa izicelo zangoku ezivela kwi-NGINX. Icandelo loku-1

Izicelo zichithwa ngenxa yezi zizathu zilandelayo:

  • Ukunciphisa umthwalo wokuqonda kubaphuhlisi;
  • Ukukhawulezisa kunye nokwenza lula uvavanyo;
  • Ukuhanjiswa ngokukhawuleza kotshintsho kwisicelo.


Kukho iindlela ezininzi zokunciphisa umthwalo wokuqonda kubaphuhlisi, kwaye kulapho umgaqo wobuncinci ungena khona.

Ke, iindlela ezintathu zokunciphisa umthwalo wokuqonda:

  1. Ukunciphisa ixesha elimisiweyo ekufuneka baliqwalasele xa bephuhlisa isici esitsha - elifutshane ixesha lexesha, ukuthoba umthwalo wokuqonda.
  2. Nciphisa inani lekhowudi esetyenziswayo ngexesha - ikhowudi encinci - umthwalo omncinci.
  3. Yenza lula inkqubo yokwenza utshintsho olongezelelweyo kwisicelo sakho.

Ukuncitshiswa kwamaxesha ophuhliso

Masibuyele kumaxesha apho indlela yokusebenza waterfall ibingumgangatho wenkqubo yophuhliso, kwaye amaxesha amisiweyo eenyanga ezintandathu ukuya kwiminyaka emibini yokuphuhlisa okanye ukuhlaziya isicelo yayiyinto eqhelekileyo. Ngokwesiqhelo, iinjineli ziya kuqala zifunde amaxwebhu afanelekileyo anje ngeemfuno zemveliso (PRD), uxwebhu lwereferensi yenkqubo (SRD), isicwangciso soyilo lwezakhiwo, kwaye ziqalise ukudibanisa zonke ezi zinto zibe yimodeli enye yokuqonda ngokwendlela abayibhala ngayo ikhowudi. Njengoko iimfuno, kwaye ngoko ke i-architecture, itshintshile, iinzame ezibalulekileyo kufuneka zenziwe ukugcina iqela lonke linolwazi malunga nohlaziyo lwemodeli yokuqonda. Kwimeko embi kakhulu, le ndlela inokuthi iphazamise umsebenzi.

Olona tshintsho lukhulu kwinkqubo yophuhliso lwesicelo lwalungeniswa kwindlela yokwenza izinto. Enye yeempawu eziphambili zendlela yokusebenza agile - Olu luphuhliso oluphindaphindayo. Ngokulandelayo, oku kukhokelela ekunciphiseni umthwalo wokuqonda kwiinjineli. Esikhundleni sokufuna iqela lophuhliso ukuba liphumeze isicelo kumjikelo omnye omde, agile Indlela ikuvumela ukuba ugxininise kwiimali ezincinci zekhowudi ezinokuvavanywa ngokukhawuleza kwaye zisetyenziswe, ngelixa ufumana impendulo. Umthwalo wokuqonda wesicelo utshintshile ukusuka kwixesha leenyanga ezintandathu ukuya kwiminyaka emibini, kunye nenani elikhulu leenkcukacha, ukuya kwinqaku leeveki ezimbini ukongeza okanye utshintsho, kujoliswe ekuqondeni okubanzi ngakumbi kwesicelo esikhulu.

Ukususa ugxininiso ukusuka kwisicelo esikhulu ukuya kwiimpawu ezincinci ezinokuthi zigqitywe kwi-sprint yeeveki ezimbini, ukujonga phambili kwinqaku elinye ukusuka kwi-sprint elandelayo engqondweni lutshintsho olubalulekileyo. Oku kwenza ukuba kube lula ukunyusa imveliso yophuhliso ngelixa unciphisa umthwalo wokuqonda, owawuhlala uguquguquka.

Kwindlela yokusebenza agile usetyenziso lokugqibela lulindeleke ukuba lube luguqulelo oluguqulwe kancinane lwengqikelelo yentsusa, ngoko ke indawo yokugqibela yophuhliso ayicacanga. Kuphela ziziphumo ze-sprint nganye ezinokuthi zicace kwaye zichaneke.

Iziseko zekhowudi ezincinci

Isinyathelo esilandelayo ekunciphiseni umthwalo wokuqonda kukunciphisa isiseko sekhowudi. Ngokwesiqhelo, usetyenziso lwangoku zikhulu-inkqubo eyomeleleyo, yeshishini inokubandakanya amawaka eefayile kunye namakhulu amawaka emigca yekhowudi. Ngokuxhomekeke kwintlangano yeefayile, ukudibanisa kunye nokuxhomekeka phakathi kwekhowudi kunye neefayile zinokuthi zingabonakali okanye zingabonakali. Nokuba ukulungisa ikhowudi ukuphunyezwa kwayo kunokuba yingxaki, kuxhomekeke kwiilayibrari ezisetyenzisiweyo kunye nokuba izixhobo zokucoca zihlula njani phakathi kweelayibrari / iipakethi / iimodyuli kunye nekhowudi yomsebenzisi.

Ukwakha imodeli yengqondo esebenzayo yekhowudi yesicelo kunokuthatha ixesha elibalulekileyo, kwakhona ukubeka umthwalo omkhulu wokuqonda kumphuhlisi. Oku kuyinyani ngokukodwa kwii-codebases ze-monolithic, apho kukho inani elikhulu lekhowudi, ukusebenzisana phakathi kwamacandelo asebenzayo akucaciswanga ngokucacileyo, kwaye ukuhlukana kwezinto eziqwalaselwayo zihlala ziphazamiseka ngenxa yokuba imida yokusebenza ayihlonishwa.

Enye indlela esebenzayo yokunciphisa umthwalo wokuqonda kwiinjineli kukufudukela kuyilo lwee-microservices. Kwindlela ye-microservice, inkonzo nganye igxile kwisethi enye yemisebenzi; intsingiselo yenkonzo idla ngokuchazwa kwaye iyaqondakala. Imida yenkonzo nayo icacile - khumbula ukuba unxibelelwano kunye nenkonzo lwenziwa ngokusebenzisa i-API, ngoko idatha eyenziwa yinkonzo enye inokudluliselwa kwenye.

Ukusebenzisana nezinye iinkonzo ngokuqhelekileyo kunqunyelwe kwiinkonzo ezimbalwa zabasebenzisi kunye neenkonzo ezimbalwa zababoneleli ezisebenzisa iifowuni ze-API ezilula nezicocekileyo, ezifana ne-REST. Oku kuthetha ukuba umthwalo wokuqonda kwinjineli uncitshiswe kakhulu. Owona mceli mngeni mkhulu uhlala uqonda imodeli yonxibelelwano lwenkonzo kunye nendlela izinto ezifana neentengiselwano ezenzeka ngayo kwiinkonzo ezininzi. Ekugqibeleni, ukusebenzisa i-microservices kunciphisa umthwalo wokuqonda ngokunciphisa inani lekhowudi, ukucacisa imida yenkonzo ecacileyo, kunye nokubonelela ngengqiqo kubudlelwane bomnikezeli womsebenzisi.

Utshintsho oluncinci oluncinci

Into yokugqibela yomgaqo kancinci lutshintsho lolawulo. Kuyahenda ngakumbi ukuba abaphuhlisi bajonge isiseko sekhowudi (nokuba yeyabo, ikhowudi yakudala) kwaye bathi, "Oku kububudenge, kufuneka siyibhale yonke le nto." Ngamanye amaxesha sisigqibo esifanelekileyo, kwaye ngamanye amaxesha akunjalo. Ibeka umthwalo wotshintsho lwemodeli yehlabathi kwiqela lophuhliso, nto leyo ekhokelela kumthwalo omkhulu wokuqonda. Kungcono ukuba iinjineli zigxininise kutshintsho abanokuthi balwenze ngexesha le-sprint, ukuze emva koko bakhuphe umsebenzi oyimfuneko ngexesha elifanelekileyo, nangona ngokuthe ngcembe. Imveliso yokugqibela kufuneka ifane naleyo ibicwangciswe kwangaphambili, kodwa ngohlengahlengiso oluthile kunye novavanyo oluhambelana neemfuno zomthengi.

Xa uphinda ubhala iinxalenye ezinkulu zekhowudi, ngamanye amaxesha akunakwenzeka ukunikezela ngokukhawuleza utshintsho ngenxa yokuba ezinye iinkqubo ezixhomekeke kuyo ziza kudlala. Ukuze ulawule ukuhamba kotshintsho, ungasebenzisa isici sokufihla. Ngokusisiseko, oku kuthetha ukuba ukusebenza kukho kwimveliso, kodwa akufumaneki ngoseto oluguquguqukayo lokusingqongileyo (env-var) okanye nayiphi na enye indlela yoqwalaselo. Ukuba ikhowudi iphumelele zonke iinkqubo zokulawula umgangatho, inokuphela kwimveliso kwindawo efihliweyo. Nangona kunjalo, esi sicwangciso sisebenza kuphela ukuba uphawu luye lwasebenza. Ngaphandle koko, iya kudibanisa ikhowudi kwaye yongeze umthwalo wokuqonda ukuba umphuhlisi kuya kufuneka ajamelane nawo ukuze abe nemveliso. Ulawulo lokutshintsha kunye notshintsho olongezelelekileyo ngokwalo lunceda ukugcina umthwalo wokuqonda wabaphuhlisi kwinqanaba elifikelelekayo.

Iinjineli kufuneka zoyise ubunzima obuninzi naxa ziphumeza umsebenzi owongezelelweyo. Kuya kuba bubulumko ukuba abaphathi banciphise umsebenzi ongeyomfuneko kwiqela ukuze likwazi ukugxila kwizinto eziphambili zokusebenza. Kukho izinto ezintathu onokuzenza ukunceda iqela lakho lophuhliso:

  1. Sebenzisa indlela yokusebenza agile, ukunciphisa ixesha elimiselweyo apho iqela kufuneka ligxininise kwiimpawu eziphambili.
  2. Sebenzisa isicelo sakho njengeenkonzo ezincinci ezininzi. Oku kuya kunciphisa inani leempawu eziveliswe kwaye zomeleze imida equlethe umthwalo wokuqonda ngelixa usebenza.
  3. Khetha utshintsho olongezelekayo kwezo zinkulu, ezingalawulekiyo, tshintsha amaqhekeza amancinci ekhowudi. Sebenzisa isici esifihliweyo ukuphumeza utshintsho nokuba aluyi kubonakala kwangoko emva kokuba longeziwe.

Ukuba usebenzisa umgaqo wobuncinci emsebenzini wakho, iqela lakho liya konwaba ngakumbi, ligxile ngakumbi ekunikezeni iimpawu eziyimfuneko, kwaye kunokwenzeka ukuba likhuphe utshintsho ngokukhawuleza. Kodwa oku akuthethi ukuba umsebenzi awukwazi ukuba nzima ngakumbi; ngamanye amaxesha, ngokuchaseneyo, ukuqaliswa komsebenzi omtsha kufuna ukulungiswa kweenkonzo ezininzi kwaye le nkqubo inokuba nzima ngakumbi kunefanayo kwi-architecture ye-monolithic. Kwimeko nayiphi na into, izibonelelo zokusebenzisa le ndlela zifanelekile.

Ukuphela kwenxalenye yokuqala.

Kungekudala siza kupapasha inxalenye yesibini yenguqulelo, kodwa ngoku silindele izimvo zakho kwaye sikumema ukuba Usuku lokuvula, eya kwenzeka namhlanje ngo-20.00.

umthombo: www.habr.com

Yongeza izimvo