Ụkpụrụ maka ịmepụta ngwa ọgbara ọhụrụ sitere na NGINX. Akụkụ 1

Ndewo ndị enyi. N'ịtụ anya mmalite nkuzi "Onye nrụpụta ndabere na PHP", anyị na-ekekọrịta gị na ntụgharị asụsụ nke ihe bara uru.

Ngwanrọ na-edozi ọtụtụ nsogbu kwa ụbọchị, ebe ọ na-aghọwanye mgbagwoju anya. Dị ka Marc Andreessen kwuru n'otu oge, ọ na-eri ụwa.

Ụkpụrụ maka ịmepụta ngwa ọgbara ọhụrụ sitere na NGINX. Akụkụ 1

N'ihi ya, ụzọ e si emepụta ngwa na ịnyefe agbanweela nke ukwuu n'ime afọ ole na ole gara aga. Ndị a bụ mgbanwe n'ogo tectonic nke rụpụtara usoro ụkpụrụ. Ụkpụrụ ndị a egosila na ọ na-enye aka n'iwulite otu, ịmepụta, ịmepụta, na ibuga ngwa gị na ndị ọrụ njedebe.

Enwere ike ichikota ụkpụrụ ndị a: ngwa a ga-abụrịrị obere, dabere na webụ, ma nwee ụlọ nrụpụta-centric. Site n'ịwulite ụkpụrụ atọ ndị a, ị nwere ike ịmepụta ngwa siri ike, njedebe na njedebe nke nwere ike ịnyefe ngwa ngwa na nke ọma na onye ọrụ njedebe, ma na-adị mfe scalable na extensible.

Ụkpụrụ maka ịmepụta ngwa ọgbara ọhụrụ sitere na NGINX. Akụkụ 1

Nke ọ bụla n'ime ụkpụrụ ndị a tụrụ aro nwere akụkụ dị iche iche nke anyị ga-atụle iji gosi otú ụkpụrụ ọ bụla si enye aka na njedebe njedebe nke ngwa ngwa na-ebuga ngwa ndị a pụrụ ịdabere na ya dị mfe iji nọgide na-eji. Anyị ga-eleba anya n'ụkpụrụ ma e jiri ya tụnyere ndị na-emegide ha iji dokwuo anya ihe ịsị, “Jide n'aka na ị na-eji ya. ụkpụrụ nke nta".

Anyị na-atụ anya na akụkọ a na-agba gị ume ka ị jiri ụkpụrụ ndị a tụrụ aro maka iwulite ngwa ọgbara ọhụrụ nke ga-enye usoro nhazi nke jikọtara ọnụ na ọnọdụ nke teknụzụ teknụzụ na-eto eto mgbe niile.

Site n'itinye ụkpụrụ ndị a n'ọrụ, ị ga-ahụ onwe gị na-erite uru na usoro kachasị ọhụrụ na mmepe ngwanrọ, gụnyere nke DevOps maka mmepe ngwa na nnyefe, iji arịa (dịka ọmụmaatụ, Docker) na usoro nhazi ihe eji eme ihe (dịka ọmụmaatụ, Kubernetes), ojiji nke microservices (gụnyere Microservice Architecture NGINX и usoro nkwukọrịta netwọkụ maka ngwa microservice.

Gịnị bụ ngwa ọgbara ọhụrụ?

Ngwa nke oge a? Ngwakọta ọgbara ọhụrụ? Gịnị kpọmkwem ka "ochie" pụtara?

Ọtụtụ ndị mmepe nwere naanị nghọta bụ isi nke ihe ngwa ọgbara ọhụrụ nwere, yabụ ọ dị mkpa ịkọwapụta echiche a nke ọma.

Ngwa ọgbara ọhụrụ na-akwado ọtụtụ ndị ahịa, ma ọ bụrụ interface onye ọrụ na-eji ọbá akwụkwọ React JavaScript, ngwa mkpanaaka maka gam akporo ma ọ bụ iOS, ma ọ bụ ngwa na-ejikọ na onye ọzọ site na API. Ngwa ọgbara ọhụrụ na-egosi ọnụọgụ ndị ahịa na-enweghị ngwụcha nke ọ na-enye data ma ọ bụ ọrụ.

Ngwa ọgbara ọhụrụ na-enye API iji nweta data na ọrụ achọrọ. API kwesịrị ịdị na-agbanwe agbanwe ma na-adịgide adịgide, na edeghị ya kpọmkwem maka arịrịọ kpọmkwem site n'aka onye ahịa. API dị n'elu HTTP(S) ma na-enye ohere maka ọrụ niile achọtara na GUI ma ọ bụ CLI.

Data ga-adịrịrị n'ụdị nkịtị, enwere ike imekọrịta ihe dịka JSON. API na-ekpughe ihe na ọrụ n'ụdị doro anya, ahaziri ahazi; dịka ọmụmaatụ, API RESTful ma ọ bụ GraphQL na-enye interface dị mma.

A na-ewu ngwa ọgbara ọhụrụ na nchịkọta ọgbara ọhụrụ, na nchịkọta ọgbara ọhụrụ bụ nchịkọta na-akwado ngwa ndị dị otú ahụ, n'otu n'otu. Nchịkọta a na-enye onye nrụpụta ohere ịmepụta ngwa nwere interface HTTP yana njedebe API doro anya. Ụzọ ị họọrọ ga-ekwe ka ngwa gị nabata na zipu data n'ụdị JSON ngwa ngwa. N'ikwu ya n'ụzọ ọzọ, nchịkọta ọgbara ọhụrụ kwekọrọ na ihe dị na ngwa iri na abụọ maka microservices.

Ụdị ụdị nchịkọta a na-ewu ewu dabere na Java, Python, ọnụ, Ruby, PHP и Go. Microservice Architecture NGINX na-anọchi anya ihe atụ nke nchịkọta ọgbara ọhụrụ etinyere n'asụsụ ọ bụla a kpọtụrụ aha.

Biko mara na anyị anaghị akwado usoro ọrụ microservice naanị. Ọtụtụ n'ime unu na-arụ ọrụ na monoliths nke kwesịrị ịmalite, ebe ndị ọzọ na-emekọ ihe na ngwa SOA na-agbasawanye ma na-agbanwe ka ọ bụrụ ngwa microservice. Ndị ọzọ na-aga n'ihu na ngwa enweghị ihe nkesa, ụfọdụ na-emejuputa nchikota nke ndị dị n'elu. Ụkpụrụ ndị edepụtara n'isiokwu a metụtara nke ọ bụla n'ime usoro ndị a na-enwe naanị obere mgbanwe ole na ole.

Ụkpụrụ

Ugbu a anyị nwere nghọta bụ isi nke ngwa ọgbara ọhụrụ na nchịkọta ọgbara ọhụrụ bụ, oge erugo ịbanye n'ime ụkpụrụ ụkpụrụ ụlọ na imewe ga-enyere gị aka nke ọma n'ichepụta, itinye n'ọrụ na idowe ngwa ọgbara ọhụrụ.

Otu n'ime ụkpụrụ bụ "wuo obere ngwa", ka anyị kpọọ ya ụkpụrụ nke nta. Enwere ngwa dị mgbagwoju anya nke nwere ọtụtụ akụkụ na-akpụ akpụ. N'aka nke ya, iwulite ngwa sitere na obere ihe dị iche iche na-eme ka ọ dị mfe ịmepụta, na-echekwa na iji n'ozuzu ya. (Rịba ama na anyị kwuru "na-eme ka ọ dị mfe" ma ọ bụghị "na-eme ka ọ dị mfe").

Ụkpụrụ nke abụọ bụ na anyị nwere ike ịbawanye mmepụta mmepụta site n'inyere ha aka ilekwasị anya na njirimara ha na-emepe emepe, na-ahapụ ha ka ha ghara ichegbu onwe ha banyere akụrụngwa na CI / CD n'oge mmejuputa. Yabụ, na nkenke, usoro anyị onye nrụpụta-gbakwasara.

N'ikpeazụ, ihe niile gbasara ngwa gị ga-ejikọrịrị na netwọkụ. N'ime afọ 20 gara aga, anyị enweela ọganihu dị ukwuu n'ọdịnihu dị ka netwọk na-adị ngwa ngwa na ngwa na-adịwanye mgbagwoju anya. Dịka anyị hụburu, ngwa ọgbara ọhụrụ ga-enwerịrị ọtụtụ ndị ahịa dị iche iche ga-eji gafee netwọkụ. Itinye echiche netwọkụ n'ọrụ na ụkpụrụ ụlọ nwere uru bara uru dabara nke ọma ụkpụrụ nke nta na echiche nke uzo, onye nrụpụta-gbakwasara.

Ọ bụrụ na ị na-eburu ụkpụrụ ndị a n'uche mgbe ị na-emepụta ma na-emejuputa ngwa, ị ga-enwe uru dị iche iche na mmepe na nnyefe nke ngwaahịa gị.

Ka anyị lebakwuo anya n’ụkpụrụ atọ a.

Ụkpụrụ nke ịdị nta

Ọ na-esiri ụbụrụ mmadụ ike ịghọta nnukwu ozi n'otu oge. Na nkà mmụta uche, okwu ahụ na-ebu ibu na-ezo aka na ngụkọta nke mgbalị uche a chọrọ iji jide ozi na ebe nchekwa. Mbelata oke ọgụgụ isi na ndị mmepe bụ ihe kacha mkpa n'ihi na ha nwere ike ilekwasị anya na idozi nsogbu ahụ kama ijide ụdị mgbagwoju anya dị ugbu a nke ngwa dum na atụmatụ ndị a na-emepụta n'isi ha.

Ụkpụrụ maka ịmepụta ngwa ọgbara ọhụrụ sitere na NGINX. Akụkụ 1

A na-emebi ngwa ngwa n'ihi ihe ndị a:

  • Mbelata oke ọgụgụ isi na ndị mmepe;
  • Ịme ngwa ngwa na mfe nke ule;
  • Ngwa ngwa nnyefe mgbanwe na ngwa.


Enwere ụzọ dị iche iche iji belata ikike ọgụgụ isi na ndị mmepe, na nke a bụ ebe ụkpụrụ nke ịdị nta na-abata.

Yabụ, ụzọ atọ iji belata ibu ọgụgụ isi:

  1. Belata oge ha ga-atụle mgbe ha na-emepụta ihe ọhụrụ - oge dị mkpirikpi, na-ebelata ibu ọgụgụ isi.
  2. Belata ọnụọgụ koodu a na-arụ ọrụ n'otu oge - obere koodu - obere ibu.
  3. Mee ka usoro ịme mgbanwe mgbanwe na ngwa gị dị mfe.

Ogologo oge mmepe belatara

Ka anyị laghachi azụ n'oge usoro waterfall bụ ọkọlọtọ maka usoro mmepe, na oge nke ọnwa isii ruo afọ abụọ maka ịmepụta ma ọ bụ imelite ngwa bụ ihe a na-emekarị. Dịka, ndị injinia ga-ebu ụzọ gụọ akwụkwọ ndị dị mkpa dị ka ihe ndị chọrọ ngwaahịa (PRD), akwụkwọ ntụaka sistemu (SRD), atụmatụ ụlọ, wee malite ijikọ ihe ndị a niile n'otu ihe nleba anya dịka nke ha dere koodu. Dị ka ihe ndị a chọrọ, ya mere ụlọ ọrụ ahụ gbanwere, a ghaghị ime mgbalị dị ukwuu iji mee ka ndị otu ahụ niile mara banyere mmelite na ụdị ọgụgụ isi. N'ọnọdụ kachasị njọ, usoro a nwere ike ime ka ọrụ ahụ kpọnwụrụ akpọnwụ.

Mgbanwe kachasị na usoro mmepe ngwa ngwa bụ iwebata usoro agile. Otu n'ime isi atụmatụ nke usoro agile - Nke a bụ mmepe ugboro ugboro. N'aka nke ya, nke a na-eduga ná mbelata nke oke ọgụgụ isi na ndị injinia. Kama ịchọ ka ndị otu mmepe mejuputa ngwa a n'otu ogologo okirikiri. agile Ụzọ ahụ na-enye gị ohere ilekwasị anya na obere koodu nke nwere ike ịnwale ngwa ngwa ma tinye ya, ma na-enwetakwa nzaghachi. Ibu ọgụgụ isi nke ngwa agbanweela site na oge nke ọnwa isii ruo afọ abụọ, yana nnukwu nkọwapụta, gaa na mgbakwunye ma ọ bụ mgbanwe nke izu abụọ, na-ezubere nghọta na-agbasawanye nke ngwa ngwa.

Ịtụgharị elekwasị anya site na nnukwu ngwa gaa na obere atụmatụ dị iche iche nwere ike imecha n'ime izu abụọ na-agba ọsọ, na-ele anya na ọ bụghị ihe karịrị otu njirimara site na sprint na-esote n'uche bụ mgbanwe dị ịrịba ama. Nke a mere ka o kwe omume ịbawanye mmepụta mmepe ka ọ na-ebelata ibu ọgụgụ isi, nke na-agbanwe agbanwe mgbe niile.

Na usoro agile A na-atụ anya na ngwa ikpeazụ ga-abụ ụdị mgbanwe dịtụ nke echiche mbụ, yabụ ebe mmepe ikpeazụ ga-abụrịrị ihe mgbagwoju anya. Naanị nsonaazụ nke sprint ọ bụla nwere ike doo anya na nke ziri ezi.

Obere codebases

Nzọụkwụ ọzọ n'ibelata ibu ọgụgụ isi bụ ibelata ntọala koodu. Dị ka ọ na-adịkarị, ngwa ọgbara ọhụrụ buru ibu-ngwa siri ike, ngwa ụlọ ọrụ nwere ike ịgụnye ọtụtụ puku faịlụ yana ọtụtụ narị puku ahịrị koodu. Dabere na nhazi nke faịlụ, njikọ na ndabere dị n'etiti koodu na faịlụ nwere ike ma ọ bụ ghara ịpụta ìhè. Ọbụna ịmegharị koodu ogbugbu n'onwe ya nwere ike bụrụ nsogbu, dabere na ụlọ akwụkwọ ndị a na-eji yana ka ngwá ọrụ nbipu si dị iche n'etiti ọba akwụkwọ / ngwugwu / modul na koodu njirimara.

Ịmepụta ụkpụrụ ọgụgụ isi na-arụ ọrụ nke koodu ngwa nwere ike iwepụta oge dị ukwuu, na-etinyekwa nnukwu ihe ọmụma na onye mmepụta ọzọ. Nke a bụ eziokwu karịsịa maka codebases monolithic ebe enwere nnukwu koodu, mmekọrịta dị n'etiti ihe ndị na-arụ ọrụ na-arụ ọrụ adịghị akọwapụta nke ọma, na nkewa nke elekwasị anya na-emekarị ka ọ ghara ịdị nro n'ihi na a naghị asọpụrụ oke ọrụ.

Otu ụzọ dị irè isi belata ibu ọgụgụ isi na ndị injinia bụ ịkwaga na ụlọ ọrụ microservices. Na usoro microservice, ọrụ ọ bụla na-elekwasị anya n'otu ọrụ; A na-akọwakarị ihe ọrụ ahụ pụtara na nghọta. Ókèala ọrụ ahụ pụtakwara ìhè - cheta na a na-eji API eme nkwurịta okwu na ọrụ ahụ, yabụ enwere ike ibufe data sitere na otu ọrụ na nke ọzọ.

Mmekọrịta na ọrụ ndị ọzọ na-ejedebe na ọrụ onye ọrụ ole na ole yana ọrụ ndị na-enye ndị na-eji oku API dị mfe ma dị ọcha, dị ka REST. Nke a pụtara na oke ọgụgụ isi na injinia na-ebelata nke ukwuu. Ihe ịma aka kasịnụ ka bụ ịghọta ụdị mmekọrịta ọrụ yana ka ihe dị ka azụmahịa si eme n'ofe ọtụtụ ọrụ. N'ikpeazụ, iji microservices na-ebelata ibu ọgụgụ isi site na ibelata ọnụọgụ koodu, ịkọwa oke ọrụ doro anya, na inye nghọta na mmekọrịta onye ọrụ na onye na-eweta ya.

Obere mgbanwe mgbanwe

Ihe ikpeazụ nke ụkpụrụ ntakịrị bụ njikwa mgbanwe. Ọ na-adọrọ mmasị karịsịa maka ndị mmepe ileba anya na ntọala koodu (ọbụlagodi ma eleghị anya nke ha, koodu ochie) wee sị, "Nke a bụ ihe efu, anyị kwesịrị idegharị ihe a dum." Mgbe ụfọdụ ọ bụ mkpebi ziri ezi, ma mgbe ụfọdụ ọ bụghị. Ọ na-etinye ibu arọ nke mgbanwe nlereanya zuru ụwa ọnụ na otu mmepe, nke na-ebute oke ibu ọgụgụ isi. Ọ ka mma ka ndị injinia lekwasị anya na mgbanwe ndị ha nwere ike ime n'oge sprint, ka ha wee nwee ike iwepụta ọrụ dị mkpa n'oge kwesịrị ekwesị, n'agbanyeghị nke nta nke nta. Ngwaahịa ikpeazụ kwesịrị iyi nke emebere ya, mana enwere mgbanwe ụfọdụ na nnwale iji kwado mkpa onye ahịa.

Mgbe ị na-edegharị nnukwu akụkụ nke koodu, ọ naghị ekwe omume mgbe ụfọdụ ịnye mgbanwe ngwa ngwa n'ihi na ịdabere na sistemụ ndị ọzọ na-abata. Iji jikwaa ngbanwe nke mgbanwe, ị nwere ike iji zoo atụmatụ. N'ụzọ bụ isi, nke a pụtara na arụmọrụ dị na mmepụta, mana ọ dịghị site na ntọala mgbanwe gburugburu ebe obibi (env-var) ma ọ bụ usoro nhazi ọ bụla ọzọ. Ọ bụrụ na koodu ahụ agafeela usoro njikwa mma niile, ọ nwere ike mechaa na mmepụta na ọnọdụ zoro ezo. Otú ọ dị, atụmatụ a na-arụ ọrụ naanị ma ọ bụrụ na emechara ọrụ ahụ. Ma ọ bụghị ya, ọ ga-ejupụta naanị koodu ahụ ma gbakwunye ibu ọgụgụ isi nke onye mmepụta ga-anagide ya ka ọ bụrụ nke na-arụpụta ihe. Gbanwee njikwa na mgbanwe mgbanwe n'onwe ha na-enyere aka idobe ibu ọgụgụ isi nke ndị mmepe na ọkwa enwere ike ịnweta.

Ndị injinia ga-emeri ọtụtụ ihe isi ike ọbụlagodi mgbe ha na-emejuputa ọrụ ndị ọzọ. Ọ ga-abụ ihe amamihe dị na ya maka njikwa iji belata ọrụ na-adịghị mkpa na otu ahụ ka o wee nwee ike ilekwasị anya na isi ihe dị mkpa nke ọrụ. Enwere ihe atọ ị nwere ike ime iji nyere ndị otu mmepe gị aka:

  1. Jiri usoro agile, iji kpachie oge nke otu ahụ ga-elekwasị anya na njirimara ndị bụ isi.
  2. Tinye ngwa gị dị ka ọtụtụ microservices. Nke a ga-amachi ọnụ ọgụgụ nke atụmatụ ewepụtara ma mee ka ókèala ndị nwere ibu ọgụgụ isi sie ike mgbe ị na-arụ ọrụ.
  3. Na-ahọrọ mgbanwe mgbakwunye na nnukwu, ndị na-adịghị ike, gbanwee obere koodu. Jiri atụmatụ nzuzo mejuputa mgbanwe ọ bụrụgodị na agaghị ahụ ha ozugbo agbakwunyere ha.

Ọ bụrụ na ị na-etinye ụkpụrụ nke obere ihe n'ọrụ gị, otu gị ga-enwe obi ụtọ karị, na-elekwasị anya nke ọma na ịnyefe atụmatụ ndị dị mkpa, ma yikarịrị ka ọ ga-eme ka mgbanwe dị mma ngwa ngwa. Ma nke a apụtaghị na ọrụ ahụ enweghị ike ịghọkwu mgbagwoju anya; mgbe ụfọdụ, n'ụzọ megidere nke ahụ, iwebata ọrụ ọhụrụ chọrọ mgbanwe nke ọtụtụ ọrụ na usoro a nwere ike ịdị mgbagwoju anya karịa nke yiri ya na ụlọ ọrụ monolithic. N'ọnọdụ ọ bụla, uru dị n'iji usoro ahụ eme ihe bara uru.

Ọgwụgwụ nke akụkụ nke mbụ.

N’oge na-adịghị anya, anyị ga-ebipụta akụkụ nke abụọ nke ntụgharị asụsụ ahụ, mana ugbu a, anyị na-eche azịza gị ma kpọọ gị òkù ka ị bịa Ụbọchị mepere emepe, nke ga-eme taa na 20.00.

isi: www.habr.com

Tinye a comment