Mfundo zopangira mapulogalamu amakono kuchokera ku NGINX. Gawo 1

Moni abwenzi. Poyembekezera kukhazikitsidwa kwa maphunzirowa PHP backend developer, mwachizolowezi amagawana nanu kumasulira kwa zinthu zothandiza.

Mapulogalamu amathetsa ntchito zambiri za tsiku ndi tsiku, pamene akukhala ovuta kwambiri. Monga Marc Andressen adanenapo kale, zimadya dziko lapansi.

Mfundo zopangira mapulogalamu amakono kuchokera ku NGINX. Gawo 1

Zotsatira zake, momwe mapulogalamu amapangidwira ndikuperekedwa kwasintha kwambiri pazaka zingapo zapitazi. Izi zinali zosinthika za tectonic scale zomwe zinapangitsa kuti pakhale mfundo. Mfundozi zatsimikizira kukhala zothandiza pakupanga gulu, kupanga, kupanga, ndikupereka pulogalamu yanu kwa ogwiritsa ntchito omaliza.

Mfundozi zikhoza kufotokozedwa mwachidule motere: ntchitoyo iyenera kukhala yaying'ono, yozikidwa pa intaneti, komanso kukhala ndi zomangamanga zomwe zimakhazikika. Poganizira mfundo zitatu izi, mutha kupanga pulogalamu yolimba, yomaliza mpaka kumapeto yomwe imatha kuperekedwa mwachangu komanso motetezeka kwa wogwiritsa ntchito, ndipo ndiyosavuta kuyimba komanso yowonjezera.

Mfundo zopangira mapulogalamu amakono kuchokera ku NGINX. Gawo 1

Mfundo iliyonse yomwe ikuperekedwa ili ndi mbali zingapo zomwe tidzakambirana kuti zisonyeze momwe mfundo iliyonse imathandizira ku cholinga chachikulu, chomwe ndi kutumiza mofulumira kwa mapulogalamu odalirika omwe ndi osavuta kusunga ndi kugwiritsa ntchito. Tiwona mfundo zokhudzana ndi zotsutsana zawo kuti tifotokoze tanthauzo lake, nenani, "Onetsetsani kuti mukugwiritsa ntchito mfundo zazing'ono".

Tikukhulupirira kuti nkhaniyi ikulimbikitsani kuti mugwiritse ntchito mfundo zomwe zaperekedwa pomanga mapulogalamu amakono, zomwe zidzapereke njira yogwirizana yopangira mapangidwe azinthu zomwe zikukula nthawi zonse.

Mukamagwiritsa ntchito mfundozi, mudzapeza kuti mukupezerapo mwayi pazochitika zaposachedwa kwambiri pakupanga mapulogalamu, kuphatikiza ma DevOps pakupanga ndi kutumiza mapulogalamu, kugwiritsa ntchito zotengera (mwachitsanzo, Docker) ndi zida zoimbira zoyimba (mwachitsanzo, Kubernetes), kugwiritsa ntchito ma microservices (kuphatikiza Microservice Architecture NGINX ΠΈ kamangidwe ka kulumikizana kwa intaneti kwa ma microservice applications.

Kodi ntchito yamakono ndi chiyani?

Mapulogalamu amakono? Zodzaza zamakono? Kodi kwenikweni mawu akuti β€œamakono” amatanthauza chiyani?

Madivelopa ambiri ali ndi lingaliro lokha la zomwe pulogalamu yamakono imakhala, chifukwa chake ndikofunikira kufotokozera bwino lingaliro ili.

Pulogalamu yamakono imathandizira makasitomala angapo, kaya ndi laibulale ya React JavaScript, pulogalamu yam'manja ya Android kapena iOS, kapena pulogalamu yomwe imalumikizana ndi API ina. Pulogalamu yamakono imatanthawuza kuchuluka kwa makasitomala omwe amapereka deta kapena ntchito.

Pulogalamu yamakono imapereka API kuti ipeze deta ndi ntchito zomwe zafunsidwa. API iyenera kukhala yosasinthika komanso yokhazikika, osati yolembedwa mwachindunji pempho lapadera kuchokera kwa kasitomala. API ikupezeka pa HTTP(S) ndipo imapereka mwayi wopezeka kuzinthu zonse zomwe zikupezeka mu GUI kapena CLI.

Zambirizi ziyenera kupezeka m'njira zovomerezeka, zogwirizanirana monga JSON. API imawulula zinthu ndi ntchito mwaukhondo, mwadongosolo, monga RESTful API kapena GraphQL imapereka mawonekedwe abwino.

Mapulogalamu amakono amamangidwa pamtengo wamakono, ndipo stack yamakono ndi stack yomwe imathandizira mapulogalamuwa, motsatira. Stake iyi imalola wopanga mapulogalamu kuti azitha kupanga mosavuta pulogalamu yokhala ndi mawonekedwe a HTTP komanso zomveka bwino za API. Njira yosankhidwa idzalola kuti pulogalamu yanu ilandire ndi kutumiza deta mumtundu wa JSON. Mwanjira ina, kuchuluka kwamakono kumafanana ndi zinthu za Twelve-Factor Application for microservices.

Mabaibulo otchuka amtundu uwu wa stack amatengera Java, Python, Node, Ruby, Php ΠΈ Go. Microservice Architecture NGINX ikuyimira chitsanzo cha kuchuluka kwamakono komwe kukugwiritsidwa ntchito m'zinenero zonse zomwe zatchulidwazi.

Chonde dziwani kuti sitikulimbikitsa njira ya microservice yokha. Ambiri a inu mukugwira ntchito ndi ma monoliths omwe akuyenera kusinthika, pomwe ena akugwira ntchito ndi ma SOA omwe akukula ndikusintha kukhala ma microservice applications. Enanso akulowera ku mapulogalamu opanda seva, ndipo ena akugwiritsa ntchito kuphatikiza zomwe zili pamwambapa. Mfundo zomwe zafotokozedwa m'nkhaniyi zikugwira ntchito ku machitidwe onsewa ndi kusintha pang'ono chabe.

Mfundo

Tsopano popeza tamvetsetsa bwino momwe ntchito yamakono ndi stack yamakono ilili, ndi nthawi yoti tilowerere muzomangamanga ndi mfundo zachitukuko zomwe zingakuthandizireni pakupanga, kukhazikitsa, ndi kusunga ntchito zamakono.

Imodzi mwa mfundozo imamveka ngati "pangani ntchito zazing'ono", tiyeni tingoyitcha mfundo zazing'ono. Pali mapulogalamu ovuta kwambiri omwe amapangidwa ndi magawo ambiri osuntha. Komanso, kupanga pulogalamu kuchokera ku tizigawo tating'onoting'ono tating'onoting'ono kumapangitsa kuti ikhale yosavuta kuyipanga, kuyisamalira, ndikugwira nayo ntchito yonse. (Dziwani kuti tidati "kufewetsa" osati "kusavuta").

Mfundo yachiwiri ndi yakuti tikhoza kuonjezera zokolola za otukula powathandiza kuyang'ana kwambiri zomwe akupanga, kwinaku tikuwamasula ku zowonongeka ndi zovuta za CI / CD panthawi yomwe akugwira ntchito. Kotero, mwachidule, njira yathu yolunjika pa opanga.

Pomaliza, zonse zokhudzana ndi pulogalamu yanu ziyenera kulumikizidwa ndi netiweki. Pazaka 20 zapitazi, tapita patsogolo kwambiri kuti tipeze tsogolo la intaneti pomwe ma netiweki akukula mwachangu komanso zovuta kugwiritsa ntchito. Monga tawonera kale, pulogalamu yamakono iyenera kugwiritsidwa ntchito pamaneti ndi makasitomala osiyanasiyana. Kugwiritsa ntchito kuganiza kwa intaneti pazomangamanga kuli ndi phindu lalikulu lomwe limayenda bwino mfundo zazing'ono ndi lingaliro la njira, developer oriented.

Ngati mumakumbukira mfundo izi popanga ndikugwiritsa ntchito pulogalamuyo, mudzakhala ndi mwayi wosatsutsika pakupanga ndi kutumiza katundu wanu.

Tiyeni tione mfundo zitatu zimenezi mwatsatanetsatane.

Mfundo yaing'ono

N’zovuta kuti ubongo wa munthu uzindikire zinthu zambirimbiri panthawi imodzi. Mu psychology, mawu akuti kulemedwa kwachidziwitso amatanthauza kuchuluka kwa kuyesetsa kwamalingaliro komwe kumafunikira kukumbukira kukumbukira. Kuchepetsa chidziwitso kwa omanga ndizofunikira kwambiri chifukwa zimawathandiza kuti aziganizira kwambiri kuthetsa vutoli m'malo mosunga chitsanzo chovuta chamakono cha ntchito yonseyi ndi zomwe zikupangidwira pamutu pawo.

Mfundo zopangira mapulogalamu amakono kuchokera ku NGINX. Gawo 1

Mapulogalamu amawonongeka pazifukwa izi:

  • Kuchepetsa kwachidziwitso kwa opanga;
  • Kufulumizitsa ndi kuphweka kwa kuyesa;
  • Kutumiza mwachangu kwa zosintha pakugwiritsa ntchito.


Pali njira zingapo zochepetsera kuchuluka kwa chidziwitso kwa opanga, ndipo apa ndipamene mfundo yazing'ono imayamba kugwira ntchito.

Kotero apa pali njira zitatu zochepetsera katundu wamaganizo:

  1. Chepetsani nthawi yomwe akuyenera kuiganizira popanga chinthu chatsopano - kufupikitsa nthawi, kutsika kwa chidziwitso.
  2. Chepetsani kuchuluka kwa kachidindo komwe ntchito yanthawi imodzi imachitika - kachidindo kakang'ono - katundu wochepa.
  3. Yang'anirani njira yosinthira zosintha pamapulogalamu.

Kuchepetsa nthawi yachitukuko

Tiyeni tibwerere mmbuyo ku masiku omwe njira waterfall unali muyeso wa ndondomeko yachitukuko, ndipo nthawi zoyambira miyezi isanu ndi umodzi mpaka zaka ziwiri zopangira kapena kukonzanso ntchito zinali zofala. Nthawi zambiri, mainjiniya amawerenga kaye zolemba zoyenera monga zofunikira zazinthu (PRD), chikalata cholozera padongosolo (SRD), mapulani a zomangamanga, ndikuyamba kuphatikiza zinthu zonsezi kukhala chitsanzo chimodzi chazidziwitso, malinga ndi zomwe adazilemba. Monga zofunikira ndipo, chifukwa chake, zomangamanga zinasintha, kuyesayesa kwakukulu kunayenera kuchitidwa kuti adziwitse gulu lonse za zosintha zachidziwitso chachidziwitso. Njira yoteroyo, poipitsitsa, ingangolepheretsa ntchitoyo.

Kusintha kwakukulu mu njira yopangira ntchito kunali kuyambitsa njira ya agile. Chimodzi mwazinthu zazikulu za njira agile ndi chitukuko chobwerezabwereza. Kenako, izi zimabweretsa kuchepa kwa chidziwitso cha mainjiniya. M'malo mofuna kuti gulu lachitukuko ligwiritse ntchito pulogalamuyo nthawi yayitali, agile njira imakulolani kuti muyang'ane pazing'onozing'ono za code zomwe zingathe kuyesedwa mwamsanga ndi kutumizidwa, komanso kulandira ndemanga. Kuzindikira kwa pulogalamuyo kwasintha kuchoka pa miyezi isanu ndi umodzi kufika pazaka ziwiri ndikuchulukirachulukira pakuwonjezera kwa milungu iwiri kapena kusintha kwa mawonekedwe kutsata kumvetsetsa kosamveka bwino kwa pulogalamu yayikulu.

Kusintha maganizo kuchoka pa ntchito yaikulu kupita kuzinthu zing'onozing'ono zomwe zingathe kutsirizidwa pakatha milungu iwiri, popanda mbali imodzi patsogolo pa mpikisano wotsatira, ndi kusintha kwakukulu. Izi zinatipangitsa kuti tiwonjezere zokolola zachitukuko pamene timachepetsa chidziwitso cha chidziwitso, chomwe chimasinthasintha nthawi zonse.

Mu methodology agile ntchito yomaliza ikuyembekezeka kukhala yosinthidwa pang'ono ya lingaliro loyambirira, kotero kuti mapeto a chitukuko ndi osadziwika bwino. Zotsatira zokha za sprint iliyonse zimatha kukhala zomveka bwino komanso zolondola.

Ma codebases ang'onoang'ono

Chotsatira chochepetsera chidziwitso ndikuchepetsa code base. Monga lamulo, mapulogalamu amakono ndi aakulu - ntchito yolimba, yamabizinesi imatha kukhala ndi mafayilo masauzande ndi mazana masauzande a mizere yamakhodi. Kutengera momwe mafayilo amapangidwira, maulalo ndi kudalira pakati pa ma code ndi mafayilo zitha kuwonekera, kapena mosiyana. Ngakhale kukonza ma code pawokha kumatha kukhala kovuta, kutengera malaibulale omwe amagwiritsidwa ntchito komanso momwe zida zosinthira zimasiyanitsira bwino pakati pa malaibulale/maphukusi/module ndi ma code achikhalidwe.

Kupanga chitsanzo chogwira ntchito cha kachidindo ka pulogalamu kungatenge nthawi yambiri, ndikuyikanso mtolo waukulu wa chidziwitso kwa wopanga mapulogalamu. Izi ndizowona makamaka pazitsulo za monolithic code, pomwe pali chiwerengero chachikulu cha code, kuyanjana pakati pa zigawo zogwira ntchito zomwe sizikufotokozedwa momveka bwino, ndipo kupatukana kwa zinthu zomwe zimakhudzidwa nthawi zambiri zimasokonezeka chifukwa malire ogwira ntchito sakulemekezedwa.

Imodzi mwa njira zothandiza zochepetsera kuchuluka kwa chidziwitso pa mainjiniya ndikusamukira ku kamangidwe ka microservice. Mu njira ya microservice, ntchito iliyonse imayang'ana pamagulu amodzi; pamene tanthauzo la utumiki nthawi zambiri limatanthauzidwa ndi kumveka. Malire a ntchito akuwonekeranso bwino - kumbukirani kuti kulumikizana ndi ntchito kumachitika kudzera pa API, kotero kuti deta yopangidwa ndi ntchito imodzi imatha kuperekedwa kwa ina.

Kuyanjana ndi mautumiki ena nthawi zambiri kumangokhala kwa ogwiritsa ntchito ochepa komanso mautumiki ochepa omwe amagwiritsa ntchito mafoni osavuta komanso aukhondo a API, monga kugwiritsa ntchito REST. Izi zikutanthauza kuti kuchuluka kwa chidziwitso pa injiniya kumachepetsedwa kwambiri. Vuto lalikulu limakhalabe kumvetsetsa njira yolumikizirana ndi mautumiki komanso momwe zinthu ngati zotuluka zimachitikira pa mautumiki angapo. Chotsatira chake, kugwiritsa ntchito ma microservices kumachepetsa chidziwitso cha chidziwitso mwa kuchepetsa kuchuluka kwa kachidindo, kufotokozera malire omveka bwino a ntchito, ndi kupereka kumvetsetsa kwa ubale pakati pa ogwiritsa ntchito ndi opereka chithandizo.

Zosintha zazing'ono zowonjezera

Chinthu chomaliza cha mfundo ung'ono ndi kusintha kasamalidwe. Ndichiyeso chapadera kwa omanga kuti ayang'ane ma code code (ngakhale awo, ma code akale) ndikuti, "Izi ndi zopanda pake, tiyenera kuzilemba zonse." Nthawi zina ichi ndi chisankho choyenera, ndipo nthawi zina ayi. Zimayika zolemetsa zakusintha kwamitundu yapadziko lonse lapansi pagulu lachitukuko, zomwe zimapangitsa kuti pakhale chidziwitso chachikulu. Ndi bwino kuti mainjiniya aziganizira kwambiri za kusintha komwe angapange panthawi ya sprint, kuti athe kutulutsa magwiridwe antchito munthawi yake, ngakhale pang'onopang'ono. Chomalizacho chiyenera kufanana ndi chomwe chinakonzedweratu, koma ndi zosinthidwa zina ndi kuyesa kuti zigwirizane ndi zosowa za kasitomala.

Polembanso zigawo zazikulu za code, nthawi zina sizingatheke kutumiza zosinthazo mwachangu chifukwa zimadalira zina zamakina. Kuti muwongolere kusintha kwakusintha, mutha kugwiritsa ntchito kubisala kwa mawonekedwe. M'malo mwake, izi zikutanthauza kuti magwiridwe antchito akupanga, koma sapezeka pogwiritsa ntchito zosintha za chilengedwe (env-var) kapena njira ina yosinthira. Ngati codeyo yadutsa njira zonse zoyendetsera khalidwe, ndiye kuti ikhoza kutha kupanga mu chikhalidwe chobisika. Komabe, njirayi imagwira ntchito pokhapokha ngati mawonekedwewo atha kuyatsidwa. Kupanda kutero, zimangosokoneza kachidindo ndikuwonjezera chidziwitso chomwe wopanga adzayenera kuthana nacho kuti apange phindu. Kusintha kasamalidwe ndi kusintha kochulukira mwa iwo eni kumathandizira kuti otukula azigwira bwino ntchito zawo.

Mainjiniya amayenera kuthana ndi zovuta zambiri ngakhale ndikuyambitsa kosavuta kwa magwiridwe antchito owonjezera. Kumbali ya oyang'anira, kungakhale kwanzeru kuchepetsa zolemetsa zosafunikira kuti gululo lizitha kuyang'ana kwambiri zinthu zazikulu zogwirira ntchito. Pali zinthu zitatu zomwe mungachite kuti muthandizire gulu lanu lachitukuko:

  1. Gwiritsani ntchito njira agilekuchepetsa nthawi yomwe gulu liyenera kuyang'ana mbali zazikulu.
  2. Yambitsani ntchito yanu ngati ma microservice angapo. Izi zidzachepetsa kuchuluka kwa zinthu zomwe zingagwiritsidwe ntchito ndikulimbitsa malire omwe amasunga chidziwitso kuntchito.
  3. Kondani kusintha kowonjezereka kuposa zazikulu ndi zosasunthika, sinthani ma code ang'onoang'ono. Gwiritsani ntchito kubisala kuti mukwaniritse zosintha ngakhale sizikuwoneka mukangowonjezedwa.

Ngati mutagwiritsa ntchito mfundo yazing'ono pa ntchito yanu, gulu lanu lidzakhala losangalala kwambiri, lokhazikika kwambiri pakugwiritsa ntchito zofunikira, ndipo likhoza kutulutsa kusintha kwabwino mofulumira. Koma izi sizikutanthauza kuti ntchitoyo singakhale yovuta kwambiri, nthawi zina, m'malo mwake, kukhazikitsidwa kwa ntchito zatsopano kumafuna kusinthidwa kwa mautumiki angapo, ndipo ndondomekoyi ingakhale yovuta kuposa yofanana ndi zomangamanga za monolithic. Mulimonsemo, phindu la kutenga njira yaing'ono ndilofunika.

Kutha kwa gawo loyamba.

Posachedwa tidzasindikiza gawo lachiwiri la kumasulira, ndipo tsopano tikuyembekezera ndemanga zanu ndikukuitanani Tsiku Lotsegula, zomwe zichitike lero pa 20.00.

Source: www.habr.com

Kuwonjezera ndemanga