Malangizo ndi zothandizira kumanga mapulogalamu opanda seva

Malangizo ndi zothandizira kumanga mapulogalamu opanda seva
Ngakhale matekinoloje opanda seva ayamba kutchuka m'zaka zaposachedwa, pali malingaliro olakwika ambiri ndi nkhawa zomwe zimakhudzidwa nawo. Kudalira kwa ogulitsa, kugwiritsa ntchito zida, kasamalidwe ka mtengo, kuyamba kozizira, kuyang'anira ndi chitukuko cha moyo ndi nkhani zomwe zimakangana kwambiri pankhani yaukadaulo wopanda seva. M'nkhaniyi, tiwona mitu ina yomwe yatchulidwa, komanso kugawana maupangiri ndi maulalo kuzinthu zothandiza zothandizira oyamba kumene kupanga mapulogalamu amphamvu, osinthika, komanso otsika mtengo opanda seva.

Malingaliro olakwika okhudza matekinoloje opanda seva

Anthu ambiri amakhulupirira kuti kukonza kwa data kopanda seva komanso kopanda seva (Zimagwira ntchito ngati Service, FaaS) ndi pafupifupi chinthu chomwecho. Izi zikutanthauza kuti kusiyana sikuli kwakukulu kwambiri ndipo ndi koyenera kuyambitsa mankhwala atsopano. Ngakhale AWS Lambda inali imodzi mwa nyenyezi zakukwera kwaukadaulo wopanda seva komanso chimodzi mwazinthu zodziwika bwino zamamangidwe opanda seva, pali zambiri pamapangidwe awa kuposa FaaS.

Mfundo yofunika kwambiri yosakhala ndi seva ndikuti simuyenera kudandaula za kuyang'anira kapena kukulitsa zida zanu; mumangolipira zomwe mumagwiritsa ntchito. Ntchito zambiri zimagwirizana ndi izi - AWS DynamoDB, S3, SNS kapena SQS, Graphcool, Auth0, Tsopano, Netlify, Firebase ndi ena ambiri. Mwambiri, kusakhala ndi seva kumatanthawuza kugwiritsa ntchito luso lonse la cloud computing popanda kufunikira kuwongolera ndi kukhathamiritsa zomangamanga pofuna kukulitsa. Zikutanthauzanso kuti chitetezo pamlingo wa zomangamanga sichilinso vuto lanu, lomwe ndi phindu lalikulu chifukwa cha zovuta komanso zovuta kukwaniritsa miyezo ya chitetezo. Pomaliza, simukuyenera kugula zida zomwe mwapatsidwa.

Serverless imatha kuonedwa ngati "malingaliro": malingaliro ena popanga mayankho. Pewani njira zomwe zimafuna kukonza zida zilizonse. Ndi njira yopanda seva, timathera nthawi yothetsa mavuto omwe amakhudza mwachindunji polojekitiyi ndikubweretsa phindu kwa ogwiritsa ntchito athu: kupanga malingaliro olimba abizinesi, kupanga malo olumikizirana ndi ogwiritsa ntchito, ndikupanga ma API omvera komanso odalirika.

Mwachitsanzo, ngati kuli kotheka kupewa kuyang'anira ndikusunga tsamba laulere lakusaka mawu, ndiye kuti ndizomwe tingachite. Njira iyi yomanga mapulogalamu imatha kufulumizitsa kwambiri nthawi yogulitsira chifukwa simuyeneranso kuganiza zoyang'anira zomangamanga zovuta. Dzimasuleni ku maudindo ndi mtengo wa kasamalidwe ka zomangamanga ndikuyang'ana pakupanga mapulogalamu ndi ntchito zomwe makasitomala anu amafunikira. Patrick Debois adatcha njira iyi 'zantchito', mawuwa amavomerezedwa m'magulu opanda seva. Ntchito ziyenera kuganiziridwa ngati guluu lomwe limamangiriza mautumiki pamodzi ngati ma module omwe amatha kutumizidwa (m'malo motumiza laibulale yonse kapena kugwiritsa ntchito intaneti). Izi zimapereka granularity yodabwitsa pakuwongolera kutumizidwa ndikusintha pakugwiritsa ntchito. Ngati simungathe kuyika ntchito mwanjira iyi, zitha kuwonetsa kuti ntchitozo zikuchita zinthu zambiri ndipo ziyenera kusinthidwanso.

Anthu ena amasokonezedwa ndi kudalira kwa ogulitsa popanga mapulogalamu amtambo. N'chimodzimodzinso ndi matekinoloje opanda seva, ndipo izi sizingatheke chifukwa cha malingaliro olakwika. Zomwe takumana nazo, kupanga mapulogalamu opanda seva pa AWS, kuphatikiza ndi kuthekera kwa AWS Lambda kuphatikizira ntchito zina za AWS, ndi gawo la zomwe zimapangitsa kuti zomanga zopanda seva zikhale zabwino kwambiri. Ichi ndi chitsanzo chabwino cha synergy, pamene zotsatira za kuphatikiza ndi zazikulu kuposa kuchuluka kwa zigawo zake. Kuyesera kupewa kutseka kwa ogulitsa kungabweretse mavuto ochulukirapo. Mukamagwira ntchito ndi zotengera, ndikosavuta kuti muzitha kuyang'anira osanjikiza anu pakati pa omwe amapereka mitambo. Koma zikafika pamayankho opanda seva, kuyesayesa sikungapindule, makamaka ngati mukuganiza zogwira ntchito kuyambira pachiyambi. Onetsetsani kuti mwapeza momwe mavenda amaperekera chithandizo. Ntchito zina zapadera zimadalira malo ophatikizira ndi ogulitsa ena ndipo zimatha kupereka kulumikizana kwa pulagi ndi kusewera kunja kwa bokosi. Ndizosavuta kuyimba foni ya Lambda kuchokera pachipata cha API chomaliza kuposa kuyitanitsa pempho ku chidebe china kapena EC2. Graphcool imalola kasinthidwe kosavuta kugwiritsa ntchito Auth0, komwe kumakhala kosavuta kuposa kugwiritsa ntchito zida zotsimikizira za chipani chachitatu.

Kusankha wogulitsa woyenera pa ntchito yanu yopanda seva ndi chisankho chapamwamba. Mukapanga pulogalamu, simukuyembekeza kuti tsiku lina mudzabwereranso pakuwongolera ma seva. Kusankha wogulitsa mtambo sikusiyana ndi kusankha kugwiritsa ntchito zotengera kapena nkhokwe, kapena chilankhulo cha pulogalamu.

Ganizirani:

  • Ndi mautumiki ati omwe mukufuna komanso chifukwa chake.
  • Ndi ntchito ziti zomwe opereka mtambo amapereka komanso momwe mungaphatikizire pogwiritsa ntchito njira yanu yosankhidwa ya FaaS.
  • Ndi zilankhulo ziti zamapulogalamu zomwe zimathandizidwa (zosinthidwa kapena zoyimbidwa mokhazikika, zolembedwa kapena kutanthauzira, zizindikiro zake ndi ziti, koyambira kozizira ndi kotani, malo otseguka, ndi zina).
  • Zofunikira zanu zachitetezo (SLA, 2FA, OAuth, HTTPS, SSL, etc.).
  • Momwe mungasamalire ma CI/CD anu ndi kuzungulira kwa mapulogalamu.
  • Ndi njira ziti zomwe mungatengerepo mwayi?

Ngati mukukulitsa pulogalamu yomwe ilipo ndikuwonjezera ntchito zopanda seva mochulukira, izi zitha kuchepetsa kuthekera komwe kulipo. Komabe, pafupifupi matekinoloje onse opanda seva amapereka mtundu wina wa API (kudzera pa REST kapena pamzere wa uthenga) womwe umakupatsani mwayi wopanga zowonjezera zosadalira pachimake cha pulogalamuyo komanso kuphatikiza kosavuta. Yang'anani mautumiki okhala ndi ma API omveka bwino, zolemba zabwino komanso gulu lolimba, ndipo simungalakwitse. Kuphatikizika kosavuta nthawi zambiri kumakhala kofunikira kwambiri, ndipo mwina ndi chimodzi mwazifukwa zazikulu za AWS zakhala zikuyenda bwino kuyambira pomwe Lambda adatuluka mu 2015.

Ndi liti pamene seva imakhala yothandiza?

Tekinoloje zopanda seva zitha kugwiritsidwa ntchito pafupifupi kulikonse. Komabe, ubwino wawo suli kokha njira zogwiritsira ntchito. Cholepheretsa kulowa kwa cloud computing ndichotsika kwambiri masiku ano chifukwa cha matekinoloje opanda seva. Ngati Madivelopa ali ndi lingaliro, koma sadziwa momwe angayendetsere zomangamanga zamtambo ndikuwongolera mtengo, ndiye kuti safunikira kuyang'ana mainjiniya kuti achite. Ngati oyambitsa akufuna kupanga nsanja koma akuda nkhawa kuti ndalama zitha kusokonekera, zitha kutembenukira ku mayankho opanda seva.

Chifukwa cha kupulumutsa mtengo komanso kukulitsa kosavuta, mayankho opanda seva amagwiranso ntchito ku machitidwe amkati ndi akunja, mpaka ku pulogalamu yapaintaneti yokhala ndi omvera a madola mamiliyoni ambiri. Maakaunti amayesedwa ndi masenti osati ma euro. Kubwereka chitsanzo chosavuta kwambiri cha AWS EC2 (t1.micro) kwa mwezi umodzi kudzawononga € 15, ngakhale simukuchita chilichonse (ndani wayiwala kuyimitsa?!). Poyerekeza, kuti mukwaniritse mulingo uwu wogwiritsa ntchito munthawi yomweyo, mungafunike kuthamanga Lambda ya 512 MB kwa sekondi imodzi pafupifupi nthawi 1 miliyoni. Ndipo ngati simugwiritsa ntchito izi, simulipira kalikonse.

Popeza kuti seva imayendetsedwa makamaka ndi zochitika, ndizosavuta kuwonjezera zida zopanda seva pamakina obadwa nawo. Mwachitsanzo, pogwiritsa ntchito AWS S3, Lambda, ndi Kinesis, mukhoza kupanga ntchito ya analytics ya dongosolo la malonda omwe angalandire deta kudzera mu API.

Mapulatifomu ambiri opanda seva amathandizira zilankhulo zingapo. Nthawi zambiri awa ndi Python, JavaScript, C #, Java ndi Go. Nthawi zambiri, zilankhulo zonse zilibe zoletsa kugwiritsa ntchito malaibulale, kotero mutha kugwiritsa ntchito malaibulale omwe mumakonda otsegula. Komabe, ndikofunikira kuti musagwiritse ntchito mopitilira muyeso kudalira kuti ntchito zanu zizigwira bwino ntchito komanso kuti musawononge phindu la kuchuluka kwa mapulogalamu anu opanda seva. Maphukusi ochulukira omwe akufunika kukwezedwa mu chidebecho, m'pamenenso kuzizira kumatenga nthawi yayitali.

Kuyamba kozizira ndipamene muyenera kuyambitsa chidebe, nthawi yothamanga, ndi chowongolera zolakwika musanagwiritse ntchito. Chifukwa cha izi, kuchedwa kugwira ntchito kumatha kukhala mpaka masekondi atatu, ndipo iyi si njira yabwino kwa ogwiritsa ntchito osaleza mtima. Komabe, kuzizira kumayamba kuchitika pa kuyimba koyamba pakangopita mphindi zochepa chabe. Chifukwa chake ambiri amawona kuti izi ndizovuta zazing'ono zomwe zitha kuchitidwa poyimba nthawi zonse kuti igwire ntchitoyo. Kapena amanyalanyaza mbali imeneyi.

Ngakhale AWS idatulutsidwa SQL database yopanda seva Serverless AuroraKomabe, ma database a SQL sali abwino kwa mtundu uwu wa ntchito chifukwa amadalira maulumikizi kuti achite malonda, omwe amatha kukhala otsekereza pakakhala kuchuluka kwa magalimoto pa AWS Lambda. Inde, Madivelopa akusintha nthawi zonse Serverless Aurora, ndipo muyenera kuyesa, koma lero NoSQL mayankho ngati DynamoDB. Komabe, n’zosakayikitsa kuti zimenezi zisintha posachedwapa.

Chida chothandizira chimakhalanso ndi malire ambiri, makamaka pankhani ya kuyesa kwanuko. Ngakhale pali mayankho ngati Docker-Lambda, DynamoDB Local ndi LocalStack, amafunikira ntchito yowawa komanso masinthidwe ambiri. Komabe, mapulojekiti onsewa akukula mwachangu, ndiye kuti pangopita nthawi kuti zida zifike pamlingo womwe tikufuna.

Zotsatira za matekinoloje opanda seva pamayendedwe a chitukuko

Popeza kuti zomangamanga zanu ndizongokonzekera, mukhoza kufotokozera ndi kutumiza kachidindo pogwiritsa ntchito zolemba, monga zolemba za shell. Kapena mutha kugwiritsa ntchito njira zosinthira-monga-code ngati AWS CloudFormation. Ngakhale kuti ntchitoyi sipereka masinthidwe amadera onse, imakupatsani mwayi wofotokozera zinthu zomwe zingagwiritsidwe ntchito ngati ntchito za Lambda. Ndiko kuti, kumene CloudFormation ikulephera, mukhoza kulemba gwero lanu (ntchito ya Lambda) yomwe idzatseke kusiyana uku. Mwanjira iyi mutha kuchita chilichonse, ngakhale kukonza zodalira kunja kwa malo anu a AWS.

Chifukwa zonse zimangosintha, mutha kuyikanso zolemba zanu zotumizira madera, zigawo, ndi ogwiritsa ntchito, makamaka ngati mukugwiritsa ntchito njira zamakina ngati CloudFormation. Mwachitsanzo, mutha kutumiza kopi yazomangamanga panthambi iliyonse m'malo osungiramo kuti muthe kuwayesa payekhapayekha panthawi ya chitukuko. Izi zimafulumizitsa kwambiri nthawi yomwe opanga amalandila ndemanga akafuna kumvetsetsa ngati khodi yawo imagwira ntchito mokwanira m'malo okhala. Oyang'anira sayenera kudandaula za mtengo wotumizira malo angapo chifukwa amangolipira ntchito yeniyeni.

Ma DevOps alibe nkhawa zambiri chifukwa amangofunika kuwonetsetsa kuti opanga ali ndi kasinthidwe koyenera. Palibenso oyang'anira milandu, olinganiza, kapena magulu achitetezo. Choncho, mawu akuti NoOps akugwiritsidwa ntchito mochulukira, ngakhale kuti ndizofunikirabe kuti athe kukonza zowonongeka, makamaka pankhani ya IAM kasinthidwe ndi kukhathamiritsa kwazinthu zamtambo.

Pali zida zamphamvu kwambiri zowunikira komanso zowonera monga Epsagon, Thundra, Dashbird ndi IOPipe. Amakulolani kuti muwunikire momwe ntchito zopanda seva zilili pano, kupereka zipika ndi zotsatizana, jambulani ma metric ogwirira ntchito ndi zovuta zomanga, kusanthula mtengo ndi kulosera, ndi zina zambiri. Sikuti amangopatsa mainjiniya a DevOps, omanga, ndi omanga malingaliro athunthu a momwe ntchito ikugwiritsidwira ntchito, komanso imathandizira oyang'anira kuti awonekere mu nthawi yeniyeni, ndalama zachiwiri ndi chiwiri ndikulosera mtengo. Ndizovuta kwambiri kukonza izi ndi zomangamanga zoyendetsedwa.

Kupanga mapulogalamu opanda seva ndikosavuta chifukwa simuyenera kuyika ma seva, kuyang'anira makina kapena zotengera, ma seva, makina ogwiritsira ntchito, zipata za intaneti, ndi zina zambiri. bizinesi ndi zosowa za makasitomala.

Ngakhale zida zitha kukhala zabwinoko (zikuyenda bwino tsiku lililonse), omanga atha kuyang'ana kwambiri pakukhazikitsa malingaliro abizinesi ndi momwe angagawire bwino zovuta zakugwiritsa ntchito pazantchito zosiyanasiyana mkati mwa zomangamanga. Kuwongolera kwa pulogalamu yopanda seva kumatengera zochitika komanso kuganiziridwa ndi wopereka mtambo (mwachitsanzo, SQS, zochitika za S3 kapena mitsinje ya DynamoDB). Chifukwa chake, opanga amangofunika kulemba malingaliro abizinesi kuti achitepo kanthu pazochitika zina, ndipo osadandaula za momwe angagwiritsire ntchito bwino ma database ndi mizere ya mauthenga, kapena momwe angagwiritsire ntchito bwino deta muzosungirako za hardware.

Code ikhoza kuchitidwa ndikusinthidwa kwanuko, monga momwe zimakhalira ndi chitukuko chilichonse. Kuyesa kwa mayunitsi kumakhalabe komweko. Kutha kuyika zida zonse zamapulogalamu pogwiritsa ntchito masinthidwe a stack omwe amalola opanga kuti azitha kupeza mayankho ofunikira mwachangu popanda kudandaula za mtengo woyeserera kapena kukhudzidwa kwa malo omwe amayendetsedwa okwera mtengo.

Zida ndi njira zopangira ntchito zopanda seva

Palibe njira yeniyeni yopangira mapulogalamu opanda seva. Komanso mndandanda wa mautumiki a ntchitoyi. Mtsogoleri pakati pa mayankho amphamvu opanda seva masiku ano ndi AWS, koma samalani Google Cloud, nthawi ΠΈ Kutentha. Ngati mukugwiritsa ntchito AWS, ndiye kuti titha kulangiza ngati njira yosonkhanitsira mapulogalamu Serverless Application Model (SAM), makamaka mukamagwiritsa ntchito C #, chifukwa Visual Studio ili ndi zida zabwino. SAM CLI imatha kuchita zonse zomwe Visual Studio ingachite, kotero kuti simudzataya chilichonse ngati mutasinthira ku IDE ina kapena mkonzi wamawu. Zachidziwikire, SAM imagwiranso ntchito ndi zilankhulo zina.

Mukalemba m'zilankhulo zina, Serverless Framework ndi chida chotseguka chomwe chimakulolani kuti musinthe chilichonse pogwiritsa ntchito mafayilo amphamvu kwambiri a YAML. Serverless Framework imathandizanso mautumiki osiyanasiyana amtambo, chifukwa chake timalimbikitsa kwa iwo omwe akufunafuna njira yamitundu yambiri. Ili ndi gulu lalikulu lomwe lapanga gulu la mapulagini pazosowa zilizonse.

Pakuyesa kwanuko, zida zotseguka za Docker-Lambda, Serverless Local, DynamoDB Local ndi LocalStack ndizoyenera. Ukadaulo wopanda seva ukadali pachitukuko choyambirira, monga zida zawo, ndiye kuti muyenera kuyesetsa kwambiri pakukhazikitsa zovuta zoyesa. Komabe, kungoyika zinyalala m'chilengedwe ndikuziyesa kumeneko kumakhala kotchipa kwambiri. Ndipo simuyenera kupanga kopi yeniyeni ya malo anu amtambo.

Gwiritsani ntchito AWS Lambda Layers kuti muchepetse kukula kwa phukusi ndikufulumizitsa nthawi yotsegula.

Gwiritsani ntchito zilankhulo zoyenera pazantchito zinazake. Zilankhulo zosiyanasiyana zili ndi zabwino komanso zovuta zake. Pali zizindikiro zambiri, koma JavaScript, Python, ndi C # (.NET Core 2.1+) ndi atsogoleri potsatira AWS Lambda performance. AWS Lambda posachedwapa inayambitsa Runtime API yomwe imakulolani kuti mutchule chinenero chomwe mukufuna komanso malo othamanga, choncho yesani.

Sungani kukula kwa phukusi lotumizira kukhala laling'ono. Zing'onozing'ono zimakhala, zimathamanga mofulumira. Pewani kugwiritsa ntchito malaibulale akulu, makamaka ngati mugwiritsa ntchito zingapo kuchokera pamenepo. Ngati mukupanga JavaScript, gwiritsani ntchito zida zomangira ngati Webpack kuti mukwaniritse zomanga zanu ndikuphatikiza zomwe mukufuna. NET Core 3.0 imaphatikizapo QuickJit ndi Tiered Compilation, zomwe zimapititsa patsogolo ntchito komanso zimathandiza kwambiri poyambira kuzizira.

Kudalira kwa ntchito zopanda seva pazochitika kungapangitse kuti zikhale zovuta kugwirizanitsa malingaliro abizinesi poyamba. Mizere ya mauthenga ndi makina a boma zingakhale zothandiza kwambiri pankhaniyi. Ntchito za Lambda zimatha kuyimbirana wina ndi mnzake, koma chitani izi ngati simukuyembekezera kuyankha ("moto ndi kuyiwala") - simukufuna kulipidwa podikirira kuti ntchito ina ithe. Mizere ya mauthenga ndi yothandiza pakulekanitsa magawo abizinesi, kuyang'anira zolepheretsa ntchito, ndikukonza zochitika (pogwiritsa ntchito mizere ya FIFO). Ntchito za AWS Lambda zitha kuperekedwa ku mizere ya SQS ngati mizere yotsatiridwa yomwe imatsata mauthenga olephera kuti aunikenso pambuyo pake. AWS Step Functions (makina aboma) ndiwothandiza kwambiri pakuwongolera njira zovuta zomwe zimafunikira unyolo wa ntchito. M'malo mwa ntchito ya Lambda yomwe imayitana ntchito ina, Ntchito za Step zitha kugwirizanitsa kusintha kwa boma, kupititsa deta pakati pa ntchito, ndi kuyang'anira zochitika zapadziko lonse lapansi. Izi zimakupatsani mwayi wofotokozera zoyesereranso, kapena choti muchite pakachitika cholakwika china - chida champhamvu kwambiri pamikhalidwe ina.

Pomaliza

M'zaka zaposachedwa, matekinoloje opanda seva akhala akukula kwambiri kuposa kale. Pali malingaliro olakwika okhudzana ndi kusintha kwa paradigm. Pochotsa zomangamanga ndikuwongolera scalability, mayankho opanda seva amapereka phindu lalikulu, kuchokera ku chitukuko chosavuta ndi njira za DevOps mpaka kutsika kwakukulu kwamitengo yogwirira ntchito.
Ngakhale njira yopanda seva ilibe zovuta zake, pali njira zodalirika zopangira zomwe zingagwiritsidwe ntchito popanga mapulogalamu amphamvu opanda seva kapena kuphatikiza zinthu zopanda seva muzomanga zomwe zilipo kale.

Source: www.habr.com

Kuwonjezera ndemanga