Ka'idoji don haɓaka aikace-aikacen zamani daga NGINX. Kashi na 1

Sannu abokai. A cikin jiran ƙaddamar da kwas "Mai haɓaka baya a cikin PHP", mu al'ada muna raba tare da ku fassarar abu mai amfani.

Software yana magance matsalolin yau da kullun, yayin da yake ƙara rikitarwa. Kamar yadda Marc Andreessen ya taɓa faɗi, yana cinye duniya.

Ka'idoji don haɓaka aikace-aikacen zamani daga NGINX. Kashi na 1

Sakamakon haka, yadda ake haɓaka aikace-aikace da isar da saƙon ya canza sosai cikin ƴan shekarun da suka gabata. Waɗannan sauye-sauye ne akan ma'aunin tectonic wanda ya haifar da saitin ƙa'idodi. Waɗannan ƙa'idodin sun tabbatar da taimako wajen gina ƙungiya, ƙira, haɓakawa, da isar da aikace-aikacen ku zuwa ƙarshen masu amfani.

Za a iya taƙaita ƙa'idodin kamar haka: aikace-aikacen dole ne ya zama ƙanana, tushen yanar gizo, kuma yana da gine-gine-centric mai haɓakawa. Ta hanyar ginawa akan waɗannan ƙa'idodi guda uku, zaku iya ƙirƙirar ƙaƙƙarfan aikace-aikacen ƙarshe-zuwa-ƙarshe wanda za'a iya isar da shi cikin sauri da aminci ga mai amfani na ƙarshe, kuma yana da sauƙin daidaitawa da haɓakawa.

Ka'idoji don haɓaka aikace-aikacen zamani daga NGINX. Kashi na 1

Kowace ka'idodin da aka tsara yana da nau'i-nau'i masu yawa waɗanda za mu tattauna don nuna yadda kowace ka'ida ke ba da gudummawa ga ƙarshen makasudin gaggawar isar da aikace-aikace masu aminci waɗanda ke da sauƙin kiyayewa da amfani. Za mu kalli ƙa’idodi idan aka kwatanta da kishiyarsu domin mu fayyace abin da ake nufi da cewa, “Tabbatar kun yi amfani da su. ka'idar karami".

Muna fatan wannan labarin ya ƙarfafa ku don amfani da ƙa'idodin da aka tsara don gina aikace-aikacen zamani waɗanda za su samar da tsarin ƙira ɗaya a cikin mahallin tarin fasaha mai girma.

Ta hanyar amfani da waɗannan ƙa'idodin, za ku sami kanku kuna cin gajiyar sabbin abubuwan da ke faruwa a cikin haɓaka software, gami da DevOps don haɓaka aikace-aikacen da bayarwa, amfani da kwantena (misali, Docker) da tsarin kade-kade (misali, Kubernetes), amfani da microservices (ciki har da Microservice Architecture NGINX и tsarin sadarwar sadarwa don aikace-aikacen microservice.

Menene app na zamani?

Aikace-aikace na zamani? Tari na zamani? Menene ainihin ma'anar "zamani"?

Yawancin masu haɓakawa suna da fahimtar ainihin abin da aikace-aikacen zamani ya ƙunshi kawai, don haka ya zama dole a bayyana wannan ra'ayi a sarari.

Aikace-aikace na zamani yana goyan bayan abokan ciniki da yawa, zama mai amfani da ke amfani da ɗakin karatu na React JavaScript, aikace-aikacen hannu don Android ko iOS, ko aikace-aikacen da ke haɗawa da wani ta API. Aikace-aikacen zamani yana nuna adadin abokan ciniki mara iyaka wanda yake ba da bayanai ko ayyuka don su.

Aikace-aikacen zamani yana ba da API don samun damar bayanai da sabis da ake buƙata. API ɗin ya kamata ya zama marar canzawa kuma koyaushe, kuma ba a rubuta shi musamman don takamaiman buƙatu daga takamaiman abokin ciniki ba. API ɗin yana samuwa akan HTTP(S) kuma yana ba da dama ga duk ayyukan da aka samo a cikin GUI ko CLI.

Dole ne bayanai su kasance a cikin tsari na gama-gari, mai iya aiki kamar JSON. API yana fallasa abubuwa da ayyuka a cikin tsayayyen tsari, tsari; misali, API mai RESTful ko GraphQL yana ba da kyakkyawar mu'amala.

Aikace-aikace na zamani an gina su akan tari na zamani, kuma tari na zamani shine tarin da ke tallafawa irin waɗannan aikace-aikacen, bi da bi. Wannan tari yana bawa mai haɓaka damar ƙirƙirar aikace-aikace cikin sauƙi tare da mahallin HTTP da share wuraren ƙarshen API. Hanyar da kuka zaɓa za ta ba da damar aikace-aikacenku don karɓa da aika bayanai cikin sauƙi a cikin tsarin JSON. A takaice dai, tari na zamani yayi daidai da abubuwan da ke cikin aikace-aikacen Factor Goma sha biyu don microservices.

Shahararrun nau'ikan wannan nau'in tari sun dogara ne akan Java, Python, kumburi, Ruby, PHP и Go. Gine-gine na Microservice NGINX yana wakiltar misalin tari na zamani da aka aiwatar a cikin kowane harsunan da aka ambata.

Da fatan za a lura cewa ba mu ba da shawarar hanyar microservices zalla ba. Yawancin ku suna aiki tare da monoliths waɗanda ke buƙatar haɓakawa, yayin da wasu ke hulɗa da aikace-aikacen SOA waɗanda ke haɓakawa da haɓaka don zama aikace-aikacen microservice. Har ila yau wasu suna motsawa zuwa aikace-aikace marasa sabar, wasu kuma suna aiwatar da haɗakar abubuwan da ke sama. Ka'idodin da aka zayyana a cikin wannan labarin sun shafi kowane ɗayan waɗannan tsarin tare da ƴan ƙananan gyare-gyare.

Ka'idoji

Yanzu da muka fahimci ainihin menene aikace-aikacen zamani da tari na zamani, lokaci ya yi da za mu nutse cikin ƙa'idodin gine-gine da ƙira waɗanda za su yi muku amfani sosai wajen ƙira, aiwatarwa, da kiyaye aikace-aikacen zamani.

Ɗaya daga cikin ƙa'idodin shine "gina ƙananan ƙa'idodi", bari kawai mu kira shi ka'idar karami. Akwai hadaddun aikace-aikace masu ban mamaki waɗanda suka ƙunshi sassa masu motsi da yawa. Bi da bi, gina aikace-aikace daga ƙanana, sassauƙa masu hankali yana ba da sauƙin ƙira, kulawa, da aiki tare da shi gaba ɗaya. (Ka lura cewa mun ce "yana sanya shi mai sauƙi" kuma ba "mai sauƙi ba").

Ka'ida ta biyu ita ce za mu iya ƙara haɓaka haɓakar haɓakawa ta hanyar taimaka musu su mai da hankali kan abubuwan da suke haɓakawa, tare da 'yantar da su daga damuwa game da abubuwan more rayuwa da CI / CD yayin aiwatarwa. Don haka, a takaice, tsarinmu developer-daidaitacce.

A ƙarshe, duk abin da ke game da aikace-aikacenku dole ne a haɗa shi da hanyar sadarwa. A cikin shekaru 20 da suka gabata, mun sami ci gaba sosai zuwa ga hanyar sadarwa ta gaba yayin da cibiyoyin sadarwa suka yi sauri kuma aikace-aikace sun zama masu rikitarwa. Kamar yadda muka riga muka gani, dole ne a yi amfani da aikace-aikacen zamani a kan hanyar sadarwa ta abokan ciniki daban-daban. Aiwatar da tunanin hanyar sadarwa zuwa gine-gine yana da fa'idodi masu mahimmanci waɗanda suka dace da su ka'idar karami da kuma ra'ayin tsarin, developer-daidaitacce.

Idan kun kiyaye waɗannan ƙa'idodin lokacin ƙira da aiwatar da aikace-aikacen, zaku sami fa'ida ta musamman a haɓakawa da isar da samfuran ku.

Bari mu dubi waɗannan ƙa'idodi guda uku dalla-dalla.

Ka'idar ƙarami

Yana da wahala kwakwalwar ɗan adam ta iya fahimtar adadi mai yawa a lokaci guda. A cikin ilimin halin ɗan adam, kalmar ɗaukar nauyi tana nufin jimlar ƙoƙarin tunani da ake buƙata don riƙe bayanai a cikin ƙwaƙwalwar ajiya. Rage nauyin fahimi a kan masu haɓakawa shine fifiko saboda sannan za su iya mai da hankali kan magance matsalar maimakon riƙe da hadadden tsarin na yanzu na gabaɗayan aikace-aikacen da abubuwan da aka haɓaka a cikin kawunansu.

Ka'idoji don haɓaka aikace-aikacen zamani daga NGINX. Kashi na 1

Aikace-aikace sun lalace saboda dalilai masu zuwa:

  • Rage nauyin fahimi akan masu haɓakawa;
  • Haɗawa da sauƙaƙe gwaji;
  • Saurin isar da canje-canje zuwa aikace-aikacen.


Akwai hanyoyi da yawa don rage nauyin fahimi akan masu haɓakawa, kuma wannan shine inda ƙa'idar ƙarami ta shigo cikin wasa.

Don haka, hanyoyi guda uku don rage nauyin hankali:

  1. Rage tsarin lokaci da za su yi la'akari da su lokacin haɓaka sabon fasalin - guntu mafi guntu lokacin, ƙananan nauyin fahimi.
  2. Rage adadin lambar da ake aiki akai-akai - ƙarancin lamba - ƙarancin kaya.
  3. Sauƙaƙe tsarin yin ƙarin canje-canje ga aikace-aikacen ku.

Rage firam ɗin ci gaba

Bari mu koma zamanin da dabara waterfall shine ma'auni na tsarin ci gaba, kuma tsawon watanni shida zuwa shekaru biyu don haɓakawa ko sabunta aikace-aikacen aiki ne na gama gari. Yawanci, injiniyoyi za su fara karanta takaddun da suka dace kamar buƙatun samfur (PRD), takaddar tsarin tsarin (SRD), tsarin gine-gine, kuma su fara haɗa duk waɗannan abubuwa tare cikin ƙirar fahimi ɗaya bisa ga abin da suka rubuta lamba. Kamar yadda buƙatun, sabili da haka gine-ginen, ya canza, dole ne a yi ƙoƙari mai mahimmanci don sanar da dukan ƙungiyar game da sabuntawa ga ƙirar fahimi. A cikin mafi munin yanayi, wannan hanyar zata iya gurgunta aikin kawai.

Babban canji a cikin tsarin haɓaka aikace-aikacen shine gabatar da hanyoyin agile. Daya daga cikin manyan siffofi na hanya agile - Wannan ci gaba ne mai maimaitawa. Hakanan, wannan yana haifar da raguwar nauyin fahimi akan injiniyoyi. Maimakon buƙatar ƙungiyar haɓakawa don aiwatar da aikace-aikacen a cikin dogon lokaci guda ɗaya, agile Hanyar yana ba ku damar mayar da hankali kan ƙananan lambobin da za a iya gwadawa da sauri kuma a tura su, yayin da kuke karɓar ra'ayi. Nauyin fahimi na aikace-aikacen ya ƙaura daga lokacin watanni shida zuwa shekaru biyu, tare da ƙayyadaddun ƙayyadaddun bayanai, zuwa ƙari ko canji na mako biyu, yana niyya da ƙarin fahimtar babban aikace-aikacen.

Canja mayar da hankali daga babban aikace-aikacen zuwa takamaiman ƙananan siffofi waɗanda za a iya kammala su a cikin gudu na mako biyu, kallon gaba zuwa wani abu fiye da ɗaya daga sprint na gaba a hankali shine babban canji. Wannan ya ba da damar haɓaka haɓakar haɓakawa yayin da rage ƙimar fahimi, wanda ke canzawa koyaushe.

A cikin hanya agile Ana sa ran aikace-aikacen ƙarshe ya zama ɗan gyare-gyaren sigar ainihin ra'ayi, don haka batun ci gaba na ƙarshe ya zama dole. Sakamakon kowane takamaiman gudu ne kawai zai iya zama bayyananne kuma daidai.

Ƙananan codebases

Mataki na gaba don rage nauyin fahimi shine a rage tushen lambar. Yawanci, aikace-aikacen zamani suna da girma-mai ƙarfi, aikace-aikacen kasuwanci na iya ƙunsar dubban fayiloli da dubban ɗaruruwan layukan lamba. Ya danganta da tsarin fayilolin, haɗin kai da dogaro tsakanin lambar da fayilolin na iya zama ko a'a. Ko da yin kuskuren aiwatar da lambar da kanta na iya zama matsala, ya danganta da ɗakunan karatu da aka yi amfani da su da kuma yadda kayan aikin lalata ke bambanta tsakanin ɗakunan karatu/ fakitin / modules da lambar mai amfani.

Gina ƙirar tunani mai aiki na lambar aikace-aikacen na iya ɗaukar lokaci mai mahimmanci, sake sanya babban nauyin fahimi akan mai haɓakawa. Wannan gaskiya ne musamman ga codebases na monolithic, inda akwai adadi mai yawa na lambar, ba a bayyana ma'amala tsakanin abubuwan da ke aiki ba, kuma rarrabuwar abubuwan da ke da hankali sau da yawa ba su da kyau saboda ba a mutunta iyakokin aiki.

Hanya ɗaya mai tasiri don rage nauyin fahimi akan injiniyoyi shine ƙaura zuwa gine-ginen microservices. A cikin tsarin microservice, kowane sabis yana mai da hankali kan saitin ayyuka ɗaya; yawanci ana bayyana ma'anar sabis ɗin kuma ana iya fahimta. Iyakokin sabis ɗin kuma a bayyane suke - ku tuna cewa ana gudanar da sadarwa tare da sabis ta amfani da API, don haka ana iya canja bayanan da sabis ɗaya ke samarwa zuwa wani.

Haɗin kai tare da wasu ayyuka yawanci yana iyakance ga ƴan sabis na mai amfani da ƴan sabis na masu bada sabis waɗanda ke amfani da kiran API mai sauƙi da tsafta, kamar REST. Wannan yana nufin cewa nauyin fahimi akan injiniya ya ragu sosai. Babban ƙalubale ya kasance fahimtar tsarin hulɗar sabis da yadda abubuwa kamar ma'amaloli ke faruwa a cikin ayyuka da yawa. Daga ƙarshe, amfani da ƙananan sabis yana rage nauyin fahimi ta hanyar rage adadin lambar, bayyana iyakokin sabis, da ba da haske game da dangantakar mai amfani da mai ba da sabis.

Ƙananan canje-canje na karuwa

Ƙarshe kashi na ka'ida kadan shine gudanar da canji. Yana da ban sha'awa musamman ga masu haɓakawa su kalli tushen lambar (ko da watakila nasu, tsohuwar lambar) kuma su ce, "Wannan abin banza ne, muna buƙatar sake rubuta wannan duka." Wani lokaci wannan shine shawarar da ta dace, kuma wani lokacin ba haka bane. Yana sanya nauyin canje-canjen samfurin duniya akan ƙungiyar ci gaba, wanda hakan ke haifar da babban nauyin fahimi. Yana da kyau injiniyoyi su mai da hankali kan sauye-sauyen da za su iya yi a lokacin tsere, ta yadda za su iya fitar da ayyukan da suka dace a kan lokaci, ko da a hankali. Ya kamata samfurin ƙarshe ya yi kama da wanda aka riga aka tsara, amma tare da wasu gyare-gyare da gwaji don dacewa da bukatun abokin ciniki.

Lokacin sake rubuta manyan ɓangarorin lamba, wani lokacin ba shi yiwuwa a hanzarta isar da canji saboda wasu abubuwan dogaro da tsarin suna shiga cikin wasa. Domin sarrafa kwararar canje-canje, zaku iya amfani da ɓoyayyun fasali. Ainihin, wannan yana nufin aikin yana nan a samarwa, amma ba a samuwa ta hanyar saituna masu canjin yanayi (env-var) ko wata hanyar daidaitawa. Idan lambar ta wuce duk matakan sarrafa inganci, yana iya ƙarewa a samarwa a cikin ɓoyayyun yanayi. Koyaya, wannan dabarar tana aiki ne kawai idan an kunna fasalin a ƙarshe. In ba haka ba, kawai zai rikitar da lambar kuma zai ƙara nauyin fahimi wanda mai haɓakawa zai iya jurewa don ya zama mai fa'ida. Canje-canjen gudanarwa da ƙarin canje-canje da kansu suna taimakawa kiyaye nauyin fahimi na masu haɓakawa a matakin isa.

Dole ne injiniyoyi su shawo kan matsaloli da yawa koda lokacin aiwatar da ƙarin ayyuka kawai. Zai zama mai hankali ga gudanarwa don rage yawan aikin da ba dole ba a kan ƙungiyar don ta iya mai da hankali kan mahimman abubuwan aiki. Akwai abubuwa uku da zaku iya yi don taimakawa ƙungiyar haɓaka ku:

  1. Yi amfani da hanya agile, don iyakance lokacin da ƙungiyar dole ne ta mai da hankali kan mahimman abubuwan.
  2. Aiwatar da aikace-aikacen ku azaman ƙananan sabis da yawa. Wannan zai ƙayyade adadin abubuwan da aka gabatar da kuma ƙarfafa iyakokin da ke dauke da nauyin fahimta yayin aiki.
  3. Fi son ƙarin canje-canje zuwa manya, marasa ƙarfi, canza ƙananan lambobi. Yi amfani da ɓoyayyen siffa don aiwatar da canje-canje ko da ba za a ganuwa nan da nan bayan an ƙara su ba.

Idan kun yi amfani da ƙa'idar ƙarami a cikin aikinku, ƙungiyar ku za ta fi farin ciki, da mayar da hankali kan isar da abubuwan da suka dace, kuma mafi kusantar fitar da canje-canje masu inganci da sauri. Amma wannan ba yana nufin cewa aikin ba zai iya zama mai rikitarwa ba, wani lokacin, akasin haka, gabatarwar sabbin ayyuka na buƙatar gyare-gyaren ayyuka da yawa kuma wannan tsari na iya zama mafi rikitarwa fiye da irin wannan a cikin gine-ginen monolithic. A kowane hali, fa'idodin yin amfani da tsarin suna da ɗan daraja.

Karshen kashi na farko.

Ba da daɗewa ba za mu buga kashi na biyu na fassarar, amma yanzu muna jiran ra'ayoyin ku kuma muna gayyatar ku zuwa Ranar Budewa, wanda zai gudana yau da karfe 20.00.

source: www.habr.com

Add a comment