Prionnsapalan airson a bhith a’ leasachadh thagraidhean ùr-nodha bho NGINX. Pàirt 1

Halo a charaidean. Le dùil gun tèid an cùrsa a chuir air bhog Leasaiche cùl-taic PHP, gu traidiseanta roinn leat eadar-theangachadh de stuthan feumail.

Bidh bathar-bog a 'fuasgladh barrachd is barrachd ghnìomhan làitheil, agus aig an aon àm a' fàs nas iom-fhillte. Mar a thuirt Marc Andressen aon uair, bidh e ag ithe an t-saoghail.

Prionnsapalan airson a bhith a’ leasachadh thagraidhean ùr-nodha bho NGINX. Pàirt 1

Mar thoradh air an sin, tha an dòigh anns a bheilear a’ leasachadh agus a’ lìbhrigeadh thagraidhean air atharrachadh gu mòr thar nam beagan bhliadhnaichean a dh’ fhalbh. B’ iad sin gluasadan de sgèile teactonaig a lean gu seata phrionnsapalan. Tha na prionnsapalan sin air a bhith cuideachail ann a bhith a’ togail sgioba, a’ dealbhadh, a’ leasachadh, agus a’ lìbhrigeadh an tagraidh agad gu luchd-cleachdaidh deireannach.

Faodar geàrr-chunntas a dhèanamh air na prionnsapalan mar a leanas: bu chòir don tagradh a bhith beag, stèidhichte air an lìon, agus ailtireachd a tha stèidhichte air an leasaiche. Leis na trì prionnsapalan sin san amharc, faodaidh tu tagradh làidir, deireadh-gu-deireadh a chruthachadh a ghabhas a lìbhrigeadh gu sgiobalta agus gu tèarainte don neach-cleachdaidh deireannach, agus a tha furasta a scalable agus a leudachadh.

Prionnsapalan airson a bhith a’ leasachadh thagraidhean ùr-nodha bho NGINX. Pàirt 1

Tha grunn thaobhan aig gach aon de na prionnsapalan a thathar a’ moladh air am bruidhinn sinn gus sealltainn mar a tha gach prionnsapal a’ cur ris an amas mu dheireadh, is e sin lìbhrigeadh luath de thagraidhean earbsach a tha furasta an cumail suas agus an cleachdadh. Seallaidh sinn air na prionnsapalan a thaobh an aghaidhean gus soilleireachadh dè tha e a’ ciallachadh, can, “Dèan cinnteach gun cleachd thu prionnsapal beag".

Tha sinn an dòchas gum brosnaich an artaigil seo thu gus na prionnsapalan a thathar a’ moladh airson a bhith a’ togail thagraidhean ùr-nodha a chleachdadh, a bheir seachad dòigh-obrach aonaichte airson dealbhadh ann an co-theacsa stac teicneòlais a tha a’ sìor fhàs.

Le bhith a’ cur an gnìomh nam prionnsapalan sin, lorgaidh tu thu fhèin a’ gabhail brath air na gluasadan as ùire ann an leasachadh bathar-bog, a’ gabhail a-steach an DevOps gu leasachadh agus lìbhrigeadh thagraidhean, cleachdadh shoithichean (mar eisimpleir, Docker) agus frèamaichean orchestration container (mar eisimpleir, Kubernetes), cleachdadh microservices (a’ gabhail a-steach Ailtireachd Microservice NGINX и ailtireachd conaltraidh lìonra Airson tagraidhean microservice.

Dè a th’ ann an tagradh ùr-nodha?

Iarrtasan ùr-nodha? Stac ùr-nodha? Dè dìreach a tha "ùr-nodha" a 'ciallachadh?

Chan eil ach beachd coitcheann aig a’ mhòr-chuid de luchd-leasachaidh air na tha ann an tagradh ùr-nodha, agus mar sin feumar am bun-bheachd seo a mhìneachadh gu soilleir.

Bidh aplacaid ùr-nodha a’ toirt taic do dh’iomadh neach-dèiligidh, ge bith an e eadar-aghaidh cleachdaiche leabharlainn React JavaScript a th’ ann, app gluasadach Android no iOS, no app a tha a’ ceangal ri API eile. Tha tagradh ùr-nodha a’ ciallachadh àireamh neo-chinnteach de luchd-dèiligidh dha bheil e a’ toirt seachad dàta no seirbheisean.

Bidh tagradh ùr-nodha a’ toirt seachad API gus faighinn chun dàta agus seirbheisean a chaidh iarraidh. Bu chòir don API a bhith neo-ghluasadach agus seasmhach, agus gun a bhith air a sgrìobhadh gu sònraichte airson iarrtas sònraichte bho neach-dèiligidh sònraichte. Tha an API ri fhaighinn thairis air HTTP(S) agus a’ toirt cothrom air a h-uile gnìomh a tha ri fhaighinn anns an GUI no CLI.

Feumaidh an dàta a bhith ri fhaighinn ann an cruth eadar-obrachail ris an gabhar gu cumanta leithid JSON. Bidh API a’ nochdadh nithean agus seirbheisean ann an dòigh ghlan, eagraichte, leithid RESTful API no GraphQL a’ toirt seachad eadar-aghaidh reusanta.

Tha tagraidhean ùr-nodha air an togail air a’ chruach ùr-nodha, agus is e a’ chruach ùr-nodha an stac a bheir taic do leithid de thagraidhean, fa leth. Leigidh an stac seo le leasaiche tagradh a chruthachadh gu furasta le eadar-aghaidh HTTP agus puingean crìochnachaidh API soilleir. Leigidh an dòigh-obrach a thagh thu leis an tagradh agad dàta fhaighinn agus a chuir gu furasta ann an cruth JSON. Ann am faclan eile, tha an stac ùr-nodha a rèir na h-eileamaidean den Iarrtas Dusan-Factor airson meanbh-sheirbheisean.

Tha dreachan cumanta den t-seòrsa stac seo stèidhichte air Java, Python, Node, Ruby, PHP и Go. Microservice ailtireachd NGINX a’ riochdachadh eisimpleir de chruach ùr-nodha air a chuir an gnìomh anns gach cànan ainmichte.

Thoir an aire nach eil sinn a’ tagradh dòigh-obrach a tha gu tur microservice. Tha mòran agaibh ag obair le monoliths a dh’ fheumas a thighinn air adhart, agus cuid eile a’ dèiligeadh ri tagraidhean SOA a tha a’ leudachadh agus a’ fàs gu bhith nan tagraidhean microservice. Tha cuid eile a' gluasad a dh'ionnsaigh iarrtasan gun fhrithealaiche, agus tha cuid a' cur an gnìomh measgachadh de na tha gu h-àrd. Tha na prionnsapalan a tha air am mìneachadh san artaigil a’ buntainn ri gach aon de na siostaman sin le dìreach beagan atharrachaidhean.

Prionnsabalan

A-nis gu bheil tuigse choitcheann againn air dè a th’ ann an tagradh ùr-nodha agus stac ùr-nodha, tha an t-àm ann dàibheadh ​​​​a-steach do na prionnsapalan ailtireachd agus leasachaidh a bheir deagh sheirbheis dhut ann a bhith a’ leasachadh, a’ buileachadh agus a’ cumail suas tagradh ùr-nodha.

Tha aon de na prionnsapalan coltach ri “dèan tagraidhean beaga”, canaidh sinn e prionnsapal beag. Tha tagraidhean gu math iom-fhillte ann a tha air an dèanamh suas de ghrunn phàirtean gluasadach. Mar sin, le bhith a’ togail tagradh bho phàirtean beaga, air leth bidh e nas fhasa a dhealbhadh, a chumail suas agus obrachadh leis gu h-iomlan. (Thoir an aire gun tuirt sinn "sìmpleachadh" chan e "a 'dèanamh sìmplidh").

Is e an dàrna prionnsapal gun urrainn dhuinn cinneasachd leasaiche àrdachadh le bhith gan cuideachadh le bhith ag amas air na feartan a tha iad a’ leasachadh, agus aig an aon àm gan saoradh bho dhraghan bun-structair agus CI/CD aig àm buileachaidh. Mar sin, ann an ùine ghoirid, ar dòigh-obrach ag amas air luchd-leasachaidh.

Mu dheireadh, feumaidh a h-uile dad mun tagradh agad a bhith ceangailte ris an lìonra. Thairis air an 20 bliadhna a dh’ fhalbh, tha sinn air adhartas mòr a dhèanamh a dh’ionnsaigh àm ri teachd lìonraichte mar a bhios lìonraidhean a’ fàs nas luaithe agus iarrtasan nas toinnte. Mar a chunnaic sinn, feumaidh mòran de luchd-dèiligidh eadar-dhealaichte tagradh ùr-nodha a chleachdadh thairis air lìonra. Tha buannachdan mòra ann a tha a’ dol gu math le bhith a’ cleachdadh smaoineachadh lìonra ri ailtireachd prionnsapal beag agus bun-bheachd an dòigh-obrach, air a stiùireadh le leasaiche.

Ma chumas tu na prionnsapalan sin nad inntinn nuair a bhios tu a’ dealbhadh agus a’ cur an gnìomh tagradh, bidh buannachd gun teagamh agad ann an leasachadh agus lìbhrigeadh an toraidh agad.

Bheir sinn sùil nas mionaidiche air na trì prionnsabalan sin.

Prionnsabal beag-chuid

Tha e duilich don eanchainn daonna tòrr fiosrachaidh fhaicinn aig an aon àm. Ann an eòlas-inntinn, tha am facal eallach inntinneil a’ toirt iomradh air an ìre iomlan de dh’ oidhirp inntinneil a dh’fheumar gus fiosrachadh a chumail nad chuimhne. Tha e na phrìomhachas a bhith a’ lughdachadh an eallach inntinneil air luchd-leasachaidh oir leigidh e leotha fòcas a chuir air fuasgladh fhaighinn air an duilgheadas an àite a bhith a’ cumail a’ mhodail iom-fhillte gnàthach den tagradh gu lèir agus na feartan gan leasachadh nan ceann.

Prionnsapalan airson a bhith a’ leasachadh thagraidhean ùr-nodha bho NGINX. Pàirt 1

Bidh tagraidhean a’ briseadh sìos airson na h-adhbharan a leanas:

  • Lùghdachadh inntinneil air luchd-leasachaidh;
  • Luathachadh agus sìmpleachadh deuchainn;
  • Lìbhrigeadh luath de dh’ atharrachaidhean san tagradh.


Tha grunn dhòighean ann gus an luchd inntinneil air luchd-leasachaidh a lughdachadh, agus seo far a bheil prionnsapal beagachd a’ tighinn a-steach.

Mar sin seo trì dòighean gus an luchd inntinn a lughdachadh:

  1. Lùghdaich an ùine a dh’ fheumas iad beachdachadh nuair a bhios iad a’ leasachadh feart ùr - mar as giorra am frèam-ama, is ann as ìsle a bhios an luchd inntinneil.
  2. Lùghdaich an àireamh de chòd air a bheil obair aon-ùine ga dhèanamh - nas lugha de chòd - nas lugha de luchd.
  3. Dèan sìmplidh air a’ phròiseas airson atharrachaidhean mean air mhean a dhèanamh air tagradh.

Lùghdachadh air an ùine leasachaidh

Rachamaid air ais gu na làithean nuair a tha am modh-obrach waterfall B’ e seo an ìre airson a’ phròiseas leasachaidh, agus bha clàran-ama de shia mìosan gu dà bhliadhna airson tagradh a leasachadh no ùrachadh mar chleachdadh cumanta. Mar as trice, bhiodh innleadairean an-toiseach a’ leughadh sgrìobhainnean buntainneach leithid riatanasan toraidh (PRD), sgrìobhainn iomraidh siostaim (SRD), plana ailtireachd, agus thòisicheadh ​​​​iad air na rudan sin uile a chur còmhla ann an aon mhodail inntinneil, a rèir an còd. Mar a dh’ atharraich na riatanasan agus, mar thoradh air an sin, an ailtireachd, b’ fheudar oidhirp mhòr a dhèanamh gus innse don sgioba gu lèir mu ùrachaidhean air a’ mhodail inntleachdail. Dh’ fhaodadh dòigh-obrach mar seo, aig a’ char as miosa, dìreach pairilis a thoirt don obair.

B’ e an atharrachadh as motha anns a’ phròiseas leasachadh tagraidh a bhith a’ toirt a-steach modh-obrach lùthmhor. Aon de na prìomh fheartan an dòigh-obrach agile tha e na leasachadh ath-aithriseach. Aig an aon àm, tha seo a’ leantainn gu lùghdachadh anns an eallach inntinneil air innleadairean. An àite a bhith ag iarraidh air an sgioba leasachaidh an tagradh a chuir an gnìomh ann an aon chearcall fhada, agile dòigh-obrach a’ toirt cothrom dhut fòcas a chuir air meudan beaga de chòd a dh’ fhaodar a dhearbhadh gu sgiobalta agus a chleachdadh, agus aig an aon àm a’ faighinn fios air ais. Tha eallach inntinneil na h-aplacaid air gluasad bho fhrèam-ama sia mìosan gu dà bhliadhna le tòrr shònrachaidhean airson cuir-ris dà sheachdain no atharrachadh feart ag amas air tuigse nas doilleir air aplacaid mhòr.

Is e atharrachadh mòr a th’ ann a bhith ag atharrachadh an fhòcas bho thagradh mòr gu feartan beaga sònraichte a ghabhas crìochnachadh ann an sprint dà sheachdain, gun barrachd air aon fheart air thoiseach air an ath sprint. Leig seo leinn cinneasachd leasachaidh àrdachadh fhad ‘s a bha sinn a’ lughdachadh an luchd inntinn, a bha an-còmhnaidh ag atharrachadh.

Ann am modh-obrach agile thathar an dùil gum bi an tagradh mu dheireadh na dhreach beagan atharraichte den bhun-bheachd tùsail, agus mar sin tha deireadh an leasachaidh gu cinnteach dà-sheaghach. Chan fhaod ach toraidhean gach sprint sònraichte a bhith soilleir agus mionaideach.

Stòran còd beag

Is e an ath cheum ann a bhith a’ lughdachadh eallach inntinneil an còd-stèidh a lughdachadh. Mar riaghailt, tha tagraidhean ùr-nodha fìor mhòr - faodaidh tagradh iomairt làidir a bhith air a dhèanamh suas de mhìltean de fhaidhlichean agus ceudan de mhìltean de loidhnichean còd. A rèir mar a tha na faidhlichean air an eagrachadh, faodaidh ceanglaichean agus eisimeileachd eadar còd agus faidhlichean a bhith follaiseach, no a chaochladh. Faodaidh eadhon cur an gnìomh còd deasbaid fhèin a bhith na dhuilgheadas, a rèir nan leabharlannan a thathas a’ cleachdadh agus dè cho math ‘s a tha na h-innealan deasbaid a’ dèanamh eadar-dhealachadh eadar leabharlannan / pacaidean / modalan agus còd àbhaisteach.

Faodaidh togail modail inntinn obrach de chòd tagraidh tòrr ùine a thoirt, agus a-rithist cuir eallach inntinn mòr air an leasaiche. Tha seo gu sònraichte fìor airson bunaitean còd monolithic, far a bheil tòrr còd ann, nach eil an eadar-obrachadh eadar na co-phàirtean gnìomh air a mhìneachadh gu soilleir, agus gu tric bidh sgaradh nithean aire neo-shoilleir leis nach eil spèis aig crìochan gnìomh.

Is e aon de na dòighean èifeachdach air an luchd inntinneil air innleadairean a lughdachadh gluasad gu ailtireachd microservice. Ann an dòigh-obrach microservice, bidh gach seirbheis a 'cuimseachadh air aon sheata de fheartan; fhad ‘s a tha brìgh na seirbheis mar as trice air a mhìneachadh agus so-thuigsinn. Tha crìochan seirbheis soilleir cuideachd - cuimhnich gu bheil conaltradh le seirbheis air a dhèanamh tro API, agus mar sin faodar dàta a ghineadh le aon seirbheis a chuir gu seirbheis eile gu furasta.

Mar as trice bidh eadar-obrachadh le seirbheisean eile cuingealaichte ri beagan sheirbheisean luchd-cleachdaidh agus beagan sheirbheisean solair a bhios a’ cleachdadh gairmean API sìmplidh agus glan, leithid cleachdadh REST. Tha seo a’ ciallachadh gu bheil an luchd inntinneil air an innleadair air a lughdachadh gu mòr. Is e an dùbhlan as motha fhathast a bhith a’ tuigsinn modal eadar-obrachaidh seirbheis agus mar a bhios cùisean leithid gnothaichean a’ tachairt thar iomadh seirbheis. Mar thoradh air an sin, bidh cleachdadh meanbh-sheirbheisean a’ lughdachadh eallach inntinneil le bhith a’ lughdachadh na tha de chòd, a’ mìneachadh crìochan seirbheis soilleir, agus a’ toirt tuigse air a’ chàirdeas eadar luchd-cleachdaidh agus solaraichean.

Atharrachaidhean beaga mean air mhean

An eileamaid mu dheireadh den phrionnsapal beag-chuideachd is e riaghladh atharrachaidh. Tha e na bhuaireadh sònraichte do luchd-leasachaidh coimhead air bunait a’ chòd (eadhon is dòcha an còd as sine aca fhèin) agus a ràdh, “Is e crap a tha seo, feumaidh sinn a h-uile càil ath-sgrìobhadh." Uaireannan is e seo an co-dhùnadh ceart, agus uaireannan chan eil. Tha e a’ cur uallach atharrachadh modail cruinneil air an sgioba leasachaidh, a tha an uair sin a’ leantainn gu eallach inntinn mòr. Tha e nas fheàrr do innleadairean fòcas a chuir air na h-atharrachaidhean as urrainn dhaibh a dhèanamh rè an t-sprint, gus an urrainn dhaibh an gnìomh riatanach a chuir a-steach ann an deagh àm, ged a tha e mean air mhean. Bu chòir gum biodh an toradh mu dheireadh coltach ris an fhear a chaidh a phlanadh ro-làimh, ach le beagan atharrachaidhean agus deuchainn a rèir feumalachdan an neach-dèiligidh.

Nuair a bhios tu ag ath-sgrìobhadh pìosan mòra de chòd, uaireannan chan eil e comasach an t-atharrachadh a lìbhrigeadh gu sgiobalta leis gu bheil eisimeileachd siostam eile a’ tighinn a-steach. Gus smachd a chumail air sruthadh atharrachaidhean, faodaidh tu falach feart a chleachdadh. Ann am prionnsapal, tha seo a’ ciallachadh gu bheil an comas-gnìomh ann an cinneasachadh, ach chan eil e ri fhaighinn le bhith a’ cleachdadh roghainnean caochlaideach na h-àrainneachd (env-var) no uidheamachd rèiteachaidh eile. Ma tha an còd air a dhol seachad air a h-uile pròiseas smachd càileachd, faodaidh e tighinn gu crìch ann an cinneasachadh ann an staid falaichte. Ach, chan obraich an ro-innleachd seo ach ma tha am feart air a chomasachadh mu dheireadh. Rud eile, cha dèan e ach bearradh air a’ chòd agus cuiridh e eallach inntinn ris a dh’ fheumas an leasaiche dèiligeadh gus a bhith cinneasach. Bidh riaghladh atharrachaidh agus atharrachaidhean mean air mhean iad fhèin a’ cuideachadh le bhith a’ cumail eallach inntinn luchd-leasachaidh aig ìre reusanta.

Feumaidh innleadairean faighinn thairis air mòran dhuilgheadasan eadhon le toirt a-steach sìmplidh gnìomh a bharrachd. A thaobh an stiùiridh, bhiodh e ciallach an eallach neo-riatanach air an sgioba a lughdachadh gus an urrainn dha fòcas a chuir air prìomh eileamaidean gnìomh. Tha trì rudan ann as urrainn dhut a dhèanamh gus do sgioba leasachaidh a chuideachadh:

  1. Cleachd modh-obrach agilegus an clàr-ama anns am feum an sgioba fòcas a chuir air prìomh fheartan a chuingealachadh.
  2. Cuir an gnìomh an tagradh agad mar ioma-sheirbheisean micro. Cuingealaichidh seo an àireamh de fheartan a ghabhas cur an gnìomh agus neartaichidh e na crìochan a chumas an luchd inntinn aig an obair.
  3. Is fheàrr le atharrachaidhean mean air mhean thairis air mòr agus mì-ghoireasach, atharraich pìosan beaga de chòd. Cleachd am falach feart gus atharrachaidhean a chuir an gnìomh eadhon ged nach bi iad rim faicinn sa bhad às deidh an cur ris.

Ma chuireas tu am prionnsapal beag an sàs san obair agad, bidh an sgioba agad tòrr nas toilichte, le fòcas nas fheàrr air na feartan riatanach a chuir an gnìomh, agus nas dualtaiche atharrachaidhean càileachdail a sgaoileadh nas luaithe. Ach chan eil seo a 'ciallachadh nach urrainn an obair a bhith nas iom-fhillte, uaireannan, air an làimh eile, a' toirt a-steach comas-gnìomh ùr a 'feumachdainn grunn sheirbheisean atharrachadh, agus faodaidh am pròiseas seo a bhith nas duilghe na an aon rud ann an ailtireachd monolithic. Ann an suidheachadh sam bith, is fhiach na buannachdan bho bhith a 'cleachdadh an dòigh beag.

Deireadh a 'chiad phàirt.

A dh'aithghearr foillsichidh sinn an dàrna pàirt den eadar-theangachadh, agus a-nis tha sinn a 'feitheamh airson ur beachdan agus cuireadh a thoirt dhuibh Latha Fosgailte, a thèid a chumail an-diugh aig 20.00.

Source: www.habr.com

Cuir beachd ann