Izimiso zokuthuthukisa izinhlelo zokusebenza zesimanje kusuka ku-NGINX. Ingxenye 1

Sanibonani bangane. Kulindelwe ukwethulwa kwezifundo "Emuva unjiniyela ku-PHP", ngokwesiko sabelana nawe ngokuhumusha kwezinto eziwusizo.

Isoftware ixazulula izinkinga eziningi zansuku zonke, kuyilapho iba yinkimbinkimbi kakhulu. Njengoba uMarc Andreessen wake washo, kudla umhlaba.

Izimiso zokuthuthukisa izinhlelo zokusebenza zesimanje kusuka ku-NGINX. Ingxenye 1

Ngenxa yalokho, indlela izicelo ezithuthukiswa ngayo futhi zilethwe ishintshe kakhulu kule minyaka embalwa edlule. Lawa kwakungamashifu esikalini se-tectonic aphumela kusethi yezimiso. Le migomo ibonakale iwusizo ekwakheni iqembu, ekudizayineni, ekuthuthukiseni, nasekuletheni uhlelo lwakho lokusebenza kubasebenzisi bokugcina.

Izimiso zingafingqwa ngale ndlela elandelayo: isicelo kumele sibe sincane, sisekelwe kuwebhu, futhi sibe nesakhiwo esigxile kunjiniyela. Ngokwakhela phezu kwalezi zimiso ezintathu, ungakha uhlelo lokusebenza oluqinile, olusuka ekupheleni olungalethwa ngokushesha nangokuvikelekile kumsebenzisi wokugcina, futhi lunwebeka kalula futhi lunwebeke.

Izimiso zokuthuthukisa izinhlelo zokusebenza zesimanje kusuka ku-NGINX. Ingxenye 1

Isimiso ngasinye esihlongozwayo sinezici eziningi esizoxoxa ngazo ukuze sibonise ukuthi isimiso ngasinye sinikela kanjani emgomweni wokugcina wokuletha ngokushesha izinhlelo zokusebenza ezinokwethenjelwa okulula ukuzigcina nokuzisebenzisa. Sizobheka izimiso uma siqhathanisa neziphikisana nazo ukuze sicacise ukuthi kusho ukuthini ukuthi, “Qiniseka ukuthi usebenzisa isimiso sobuncane".

Sithemba ukuthi lesi sihloko sikukhuthaza ukuthi usebenzise izimiso ezihlongozwayo zokwakha izinhlelo zokusebenza zesimanje ezizohlinzeka ngendlela yokuklama ebumbene kumongo wesitaki sobuchwepheshe esikhula njalo.

Ngokusebenzisa lezi zimiso, uzozithola usebenzisa izindlela zakamuva zokuthuthukiswa kwesoftware, okuhlanganisa i I-DevOps ekuthuthukisweni nasekulethweni kwezicelo, ukusetshenziswa kweziqukathi (isibonelo, Docker) kanye nezinhlaka ze-orchestration yeziqukathi (isibonelo, Kubernetes), ukusetshenziswa kwama-microservices (kuhlanganise neMicroservice Architecture NGINX и inethiwekhi yokuxhumana izakhiwo ngezinhlelo zokusebenza ze-microservice.

Luyini uhlelo lokusebenza lwesimanje?

Izinhlelo zokusebenza zesimanje? Isitaki sesimanje? Lisho ukuthini ngempela elithi "isimanje"?

Abathuthukisi abaningi banokuqonda okuyisisekelo kuphela kokuthi uhlelo lwesimanje luqukethe ini, ngakho-ke kuyadingeka ukuchaza ngokucacile lo mqondo.

Uhlelo lokusebenza lwesimanje lusekela amaklayenti amaningi, kungaba isixhumi esibonakalayo somsebenzisi esisebenzisa umtapo wezincwadi we-React JavaScript, uhlelo lokusebenza leselula le-Android noma i-iOS, noma uhlelo lokusebenza oluxhuma kolunye kusetshenziswa i-API. Uhlelo lokusebenza lwesimanje lusho inombolo engapheli yamaklayenti oluhlinzeka ngedatha noma amasevisi.

Uhlelo lokusebenza lwesimanje luhlinzeka nge-API ukuze ufinyelele idatha eceliwe namasevisi. I-API kufanele ibe engaguquki futhi ibe njalo, futhi ingabhalelwanga isicelo esithile esivela kuklayenti elithile. I-API itholakala nge-HTTP(S) futhi inikeza ukufinyelela kukho konke ukusebenza okutholakala ku-GUI noma ku-CLI.

Idatha kufanele itholakale ngefomethi efanayo, esebenzisanayo njenge-JSON. I-API iveza izinto namasevisi ngendlela ecacile, ehlelekile; isibonelo, i-RESTful API noma i-GraphQL inikeza isixhumi esibonakalayo esihloniphekile.

Izinhlelo zokusebenza zesimanje zakhelwe phezu kwesitaki sesimanje, futhi isitaki sesimanje yisitaki esisekela izinhlelo ezinjalo, ngokulandelana. Lesi sitaki sivumela unjiniyela ukuthi enze kalula uhlelo lokusebenza olunokuxhumana kwe-HTTP futhi asule amaphoyinti okugcina e-API. Indlela oyikhethayo izovumela uhlelo lwakho lokusebenza ukuthi lwamukele kalula futhi luthumele idatha ngefomethi ye-JSON. Ngamanye amazwi, isitaki sesimanje sihambisana nezinto ze-Twelve-Factor Application for microservices.

Izinguqulo ezidumile zalolu hlobo lwesitaki zisekelwe kukho Java, Python, I-Node, Ruby, PHP и Go. I-Microservice Architecture NGINX imele isibonelo sesitaki sesimanje esisetshenziswa olimini ngalunye olushiwo.

Sicela uqaphele ukuthi asikhuthazi indlela ye-microservices. Abaningi benu basebenza ngama-monoliths adinga ukuvela, kuyilapho abanye bebhekene nezinhlelo zokusebenza ze-SOA ezikhulayo futhi eziguqukayo ukuze zibe izinhlelo zokusebenza ze-microservice. Kanti ezinye ziqhubekela kuzinhlelo zokusebenza ezingenasiphakeli, kanti ezinye zisebenzisa inhlanganisela yalokhu okungenhla. Izimiso ezishiwo kulesi sihloko zisebenza kuhlelo ngalunye lwalezi zinhlelo ezinezinguquko ezimbalwa kuphela.

Izimiso

Manje njengoba sesinokuqonda okuyisisekelo kokuthi uhlelo lwesimanjemanje luyini kanye nesitaki sesimanje, sekuyisikhathi sokungena phakathi kwezimiso zezakhiwo nezokuklama ezizokusiza ekuklameni, ekusebenziseni nasekugcineni uhlelo lokusebenza lwesimanjemanje.

Omunye wezimiso “ukwakha izinhlelo zokusebenza ezincane”, ake sikubize isimiso sobuncane. Kunezinhlelo zokusebenza eziyinkimbinkimbi ngendlela emangalisayo ezinezingxenye eziningi ezihambayo. Ngokulandelayo, ukwakha uhlelo lokusebenza kusuka ezingxenyeni ezincane, ezihlukene kwenza kube lula ukuklama, ukunakekela, nokusebenzisa jikelele. (Qaphela ukuthi sithe “kwenza kube lula” hhayi “kwenza kube lula”).

Umgomo wesibili ukuthi singakhuphula ukukhiqiza konjiniyela ngokubasiza bagxile kuzici abazithuthukisayo, kuyilapho sibakhulula ekukhathazekeni ngengqalasizinda kanye ne-CI/CD phakathi nokuqaliswa. Ngakho, ngamafuphi, indlela yethu okuqondiswe kunjiniyela.

Okokugcina, yonke into emayelana nohlelo lwakho lokusebenza kumele ixhunywe kunethiwekhi. Kule minyaka engu-20 edlule, sithuthuke kakhulu sibheke kwikusasa lenethiwekhi njengoba amanethiwekhi eshesha futhi nezinhlelo zokusebenza seziyinkimbinkimbi kakhulu. Njengoba sesibonile, uhlelo lokusebenza lwesimanje kufanele lusetshenziswe kunethiwekhi yonkana amaklayenti amaningi ahlukene. Ukusebenzisa ukucabanga kwenethiwekhi ekwakhiweni kwezakhiwo kunezinzuzo ezibalulekile ezihambisana kahle nazo isimiso sobuncane kanye nomqondo wendlela, okuqondiswe kunjiniyela.

Uma ugcina lezi zimiso engqondweni lapho uklama futhi usebenzisa uhlelo lokusebenza, uzoba nenzuzo ehlukile ekuthuthukisweni nasekulethweni komkhiqizo wakho.

Ake sibheke lezi zimiso ezintathu ngokuningiliziwe.

Isimiso sobuncane

Kunzima ngobuchopho bomuntu ukubona inqwaba yolwazi ngesikhathi esisodwa. Ku-psychology, igama elithi "cognitive load" libhekisela enanini eliphelele lomzamo wengqondo odingekayo ukuze kugcinwe ulwazi enkumbulweni. Ukunciphisa umthwalo wengqondo kubathuthukisi kuyinto ehamba phambili ngoba bangakwazi ukugxila ekuxazululeni inkinga esikhundleni sokubamba imodeli yamanje eyinkimbinkimbi yalo lonke uhlelo lokusebenza kanye nezici ezithuthukiswayo ekhanda labo.

Izimiso zokuthuthukisa izinhlelo zokusebenza zesimanje kusuka ku-NGINX. Ingxenye 1

Izicelo zichithwa ngenxa yalezi zizathu ezilandelayo:

  • Ukunciphisa umthwalo wengqondo kubathuthukisi;
  • Ukusheshisa nokwenza lula ukuhlola;
  • Ukulethwa okusheshayo kwezinguquko kuhlelo lokusebenza.


Kunezindlela eziningana zokunciphisa umthwalo wengqondo kubathuthukisi, futhi yilapho isimiso sobuncane siqala ukusebenza.

Ngakho, izindlela ezintathu zokunciphisa umthwalo wokuqonda:

  1. Yehlisa isikhathi okufanele basicabangele lapho benza isici esisha - uma siba sifushane isikhathi, siyancipha umthwalo wokuqonda.
  2. Yehlisa inani lekhodi osetshenzwa ngesikhathi - ikhodi encane - umthwalo omncane.
  3. Yenza kube lula inqubo yokwenza izinguquko ezikhulayo kuhlelo lwakho lokusebenza.

Amafreyimu wesikhathi esincishisiwe

Ake sibuyele emuva ezikhathini lapho indlela yokusebenza waterfall kwakuyindinganiso yenqubo yokuthuthukiswa, futhi izikhathi ezimisiwe zezinyanga eziyisithupha kuya eminyakeni emibili zokuthuthukisa noma zokubuyekeza isicelo zaziwumkhuba ovamile. Ngokuvamile, onjiniyela bazoqala bafunde imibhalo efanele njengezidingo zomkhiqizo (PRD), idokhumenti yereferensi yesistimu (SRD), uhlelo lwezakhiwo, futhi baqale ukuhlanganisa zonke lezi zinto ndawonye zibe imodeli eyodwa yokuqonda ngokuvumelana nendlela ababhala ngayo ikhodi. Njengoba izidingo, kanjalo nezakhiwo, zishintshile, kwadingeka kwenziwe imizamo ebalulekile ukuze lonke iqembu lihlale lazi mayelana nezibuyekezo zemodeli yokuqonda. Ezimweni ezimbi kakhulu, le ndlela ingamane iphazamise umsebenzi.

Ushintsho olukhulu kunqubo yokuthuthukisa isicelo kwaba ukwethulwa kwendlela yokusebenza eshesha kakhulu. Esinye sezici eziyinhloko zendlela yokusebenza agile - Lokhu ukuthuthukiswa okuphindaphindiwe. Ngokulandelayo, lokhu kuholela ekwehleni komthwalo wokuqonda konjiniyela. Esikhundleni sokudinga ithimba labathuthukisi ukuthi lisebenzise uhlelo lokusebenza ngomjikelezo owodwa omude, agile Le ndlela ikuvumela ukuthi ugxile enanini elincane lekhodi elingahlolwa ngokushesha futhi lisetshenziswe, kuyilapho uthola impendulo. Umthwalo wengqondo wohlelo lokusebenza usushintshile kusukela kuhlaka lwesikhathi lwezinyanga eziyisithupha kuya eminyakeni emibili, ngenani elikhulu lokucaciswa, kuya kwesengezo sesici samaviki amabili noma ushintsho, okuqondiswe ekuqondeni okusabalale kohlelo lokusebenza olukhulu.

Ukushintsha ukugxila kuhlelo lokusebenza olukhulu kuye kuzici ezithile ezincane ezingaqedwa emjahweni wamaviki amabili, ukubheka phambili esicini esingaphezu kwesisodwa kusuka kumgijimi olandelayo engqondweni kuwushintsho olubalulekile. Lokhu kwenze ukuthi kube nokwenzeka ukukhulisa umkhiqizo wokuthuthukiswa ngenkathi kunciphisa umthwalo wokuqonda, owawulokhu uguquguquka njalo.

Ku-methodology agile ukusetshenziswa kokugcina kulindeleke ukuthi kube inguqulo eguquliwe kancane yomqondo wokuqala, ngakho iphuzu lokugcina lokuthuthukiswa alicacile. Yimiphumela ye-sprint ngayinye engacaca futhi inembe.

Amakhodi amakhodi amancane

Isinyathelo esilandelayo sokunciphisa umthwalo wokuqonda ukunciphisa isisekelo sekhodi. Ngokuvamile, izinhlelo zokusebenza zesimanje zinkulu—uhlelo oluqinile, lwebhizinisi lungase luhlanganise izinkulungwane zamafayela kanye namakhulu ezinkulungwane zemigqa yekhodi. Ngokuya ngenhlangano yamafayela, ukuxhumana nokuncika phakathi kwekhodi namafayela kungase kubonakale noma kungabonakali. Ngisho nokususa iphutha ekusebenzeni kwekhodi ngokwakho kungaba yinkinga, kuye ngokuthi imitapo yolwazi esetshenzisiwe nokuthi amathuluzi okulungisa amaphutha ahlukanisa kanjani phakathi kwemitapo yolwazi/amaphakheji/amamojula kanye nekhodi yomsebenzisi.

Ukwakha imodeli yengqondo esebenzayo yekhodi yohlelo lokusebenza kungathatha inani elibalulekile lesikhathi, futhi kubeke umthwalo omkhulu wokuqonda kunjiniyela. Lokhu kuyiqiniso ikakhulukazi kuma-codebases e-monolithic lapho kunenani elikhulu lekhodi, ukusebenzisana phakathi kwezingxenye ezisebenzayo akuchazwa ngokucacile, futhi ukuhlukaniswa kokugxila kuvame ukufiphala ngoba imingcele yokusebenza ayihlonishwa.

Enye indlela esebenzayo yokunciphisa umthwalo wokuqonda konjiniyela ukuthuthela ekwakhiweni kwama-microservices. Ngendlela ye-microservice, isevisi ngayinye igxile kusethi eyodwa yemisebenzi; incazelo yesevisi ngokuvamile iyachazwa futhi iyaqondakala. Imingcele yesevisi nayo icacile - khumbula ukuthi ukuxhumana nesevisi kwenziwa kusetshenziswa i-API, ngakho-ke idatha ekhiqizwe isevisi eyodwa ingadluliselwa kwenye kalula.

Ukusebenzisana namanye amasevisi ngokuvamile kukhawulelwe kumasevisi ambalwa wabasebenzisi kanye namasevisi ambalwa abahlinzeki asebenzisa izingcingo ezilula nezihlanzekile ze-API, njenge-REST. Lokhu kusho ukuthi umthwalo wengqondo kunjiniyela wehle kakhulu. Inselele enkulu isele ukuqonda imodeli yokusebenzisana yesevisi nokuthi izinto ezifana nemisebenzi zenzeka kanjani kuwo wonke amasevisi amaningi. Ekugcineni, ukusebenzisa ama-microservices kunciphisa umthwalo wokuqonda ngokunciphisa inani lekhodi, ukuchaza imingcele yesevisi ecacile, nokunikeza ukuqonda ngobudlelwano bomhlinzeki nomsebenzisi.

Izinguquko ezincane ezikhulayo

Isici sokugcina somgomo kancane ukuphathwa koshintsho. Kuyalinga kakhulu ukuthi onjiniyela babheke isisekelo sekhodi (ngisho noma ikhodi yabo endala) bese bethi, "Lokhu kuwubuwula, sidinga ukuyibhala kabusha yonke lento." Ngezinye izikhathi kuyisinqumo esifanele, futhi ngezinye izikhathi akusona. Ibeka umthwalo wezinguquko zemodeli yomhlaba wonke ethimbeni labathuthukisi, okubuye kubangele umthwalo omkhulu wokuqonda. Kungcono ukuthi onjiniyela bagxile ezinguqukweni abangakwazi ukuzenza ngesikhathi begijima, ukuze bakwazi ukukhipha umsebenzi odingekayo ngesikhathi esifanele, yize kancane kancane. Umkhiqizo wokugcina kufanele ufane nalowo ohlelwe ngaphambili, kodwa ube nezinguqulo ezithile nokuhlolwa ukuze uvumelane nezidingo zeklayenti.

Lapho ubhala kabusha izingxenye ezinkulu zekhodi, kwesinye isikhathi akwenzeki ukuletha ushintsho ngokushesha ngenxa yokuthi ezinye izinto ezincike kusistimu ziqala ukusebenza. Ukuze ulawule ukuhamba kwezinguquko, ungasebenzisa ukufihla isici. Ngokuyisisekelo, lokhu kusho ukuthi ukusebenza kukhona ekukhiqizeni, kodwa akutholakali ngezilungiselelo eziguquguqukayo zemvelo (env-var) nanoma iyiphi enye indlela yokumisa. Uma ikhodi idlule zonke izinqubo zokulawula ikhwalithi, ingase igcine isikhiqizwa esimweni esifihliwe. Nokho, leli su lisebenza kuphela uma isici sigcina sinikwe amandla. Uma kungenjalo, izohlanganisa kuphela ikhodi futhi yengeze umthwalo wengqondo unjiniyela okuzodingeka abhekane nawo ukuze akhiqize. Ukushintsha ukuphathwa kanye nezinguquko ezikhulayo ngokwazo zisiza ukugcina umthwalo wengqondo wonjiniyela usezingeni elifinyelelekayo.

Onjiniyela kufanele banqobe ubunzima obuningi noma ngabe benza imisebenzi eyengeziwe. Kungaba ubuhlakani ukuthi abaphathi banciphise umsebenzi ongadingekile eqenjini ukuze ligxile ezintweni ezibalulekile zokusebenza. Kunezinto ezintathu ongazenza ukuze usize ithimba lakho lokuthuthukisa:

  1. Sebenzisa indlela yokwenza agile, ukukhawulela isikhathi lapho iqembu kufanele ligxile ezicini ezibalulekile.
  2. Faka isicelo sakho njengama-microservices ambalwa. Lokhu kuzokhawulela inani lezici ezethulwe futhi kuqinise imingcele equkethe umthwalo wokuqonda ngenkathi isebenza.
  3. Khetha izinguquko ezikhulayo kwezinkulu, ezingalawuleki, shintsha izingcezu ezincane zekhodi. Sebenzisa ukufihla isici ukuze wenze izinguquko ngisho noma zingabonakali ngokushesha ngemva kokwengezwa.

Uma usebenzisa isimiso sobuncane emsebenzini wakho, ithimba lakho lizojabula kakhulu, ligxile kangcono ekuletheni izici ezidingekayo, futhi maningi amathuba okuthi likhiphe izinguquko zekhwalithi ngokushesha. Kodwa lokhu akusho ukuthi umsebenzi awukwazi ukuba yinkimbinkimbi kakhulu; ngezinye izikhathi, ngokuphambene nalokho, ukwethulwa kokusebenza okusha kudinga ukuguqulwa kwezinsizakalo ezimbalwa futhi le nqubo ingase ibe yinkimbinkimbi kakhulu kunefana nesakhiwo se-monolithic. Kunoma yikuphi, izinzuzo zokusebenzisa indlela zifaneleka kancane.

Ukuphela kwengxenye yokuqala.

Maduze sizoshicilela ingxenye yesibili yokuhumusha, kodwa manje silindele ukuphawula kwakho futhi sikumema ukuba wenze kanjalo Usuku Lokuvula, ezokwenzeka namuhla ngo-20.00.

Source: www.habr.com

Engeza amazwana