Amathiphu nezisetshenziswa zokwakha izinhlelo zokusebenza ezingenaseva

Amathiphu nezisetshenziswa zokwakha izinhlelo zokusebenza ezingenaseva
Nakuba ubuchwepheshe obungenasiphakeli buthole ukuthandwa ngokushesha eminyakeni yamuva, kusenemibono eminingi eyiphutha nokukhathazeka okuhlobene nakho. Ukuncika kumthengisi, ukusebenzisa amathuluzi, ukuphathwa kwezindleko, isiqalo esibandayo, ukuqapha nokuthuthukiswa komjikelezo wempilo kuyizihloko okuphikiswana ngazo kakhulu uma kuziwa kubuchwepheshe obungenaseva. Kulesi sihloko, sizohlola ezinye zezihloko ezishiwo, futhi sabelane ngamathiphu nezixhumanisi ezinsizeni eziwusizo ukusiza abasaqalayo bakhe izinhlelo zokusebenza ezingenasiphakeli ezinamandla, eziguquguqukayo, nezingabizi kakhulu.

Imibono eyiphutha mayelana nobuchwepheshe obungenasiphakeli

Abantu abaningi bakholelwa ukuthi ukucutshungulwa kwedatha okungenaseva futhi okungenaseva (Isebenza njengesevisi, FaaS) zicishe zifane. Lokhu kusho ukuthi umehluko awumkhulu kakhulu futhi kufanelekile ukwethula umkhiqizo omusha. Nakuba i-AWS Lambda yayingenye yezinkanyezi zokukhula kobuchwepheshe obungenasiphakeli futhi enye yezinto ezaziwa kakhulu zezakhiwo ezingenasiphakeli, kunokuningi kulobu buciko kune-FaaS.

Umgomo oyinhloko wokungabi naseva ukuthi akudingeki ukhathazeke ngokuphatha noma ukukala ingqalasizinda yakho; ukhokhela lokho okusebenzisayo kuphela. Izinsizakalo eziningi zilingana nalezi zindlela - i-AWS DynamoDB, S3, SNS noma SQS, Graphcool, Auth0, Now, Netlify, Firebase nezinye eziningi. Ngokuvamile, i-serverless isho ukusebenzisa wonke amakhono we-cloud computing ngaphandle kwesidingo sokuphatha nokuthuthukisa ingqalasizinda ngenxa yokukala. Kusho futhi ukuthi ukuphepha ezingeni lengqalasizinda akuseyona inkinga yakho, okuyinzuzo enkulu uma kubhekwa ubunzima nobunkimbinkimbi bokuhlangabezana nezindinganiso zokuphepha. Okokugcina, asikho isidingo sokuthi uthenge ingqalasizinda oyinikezwe yona.

I-Serverless ingathathwa β€œnjengesimo somqondo”: isimo sengqondo esithile lapho uklama izixazululo. Gwema izindlela ezidinga ukunakekelwa kwanoma iyiphi ingqalasizinda. Ngendlela engenasiphakeli, sichitha isikhathi sixazulula izinkinga ezithinta ngokuqondile iphrojekthi futhi ilethe inani kubasebenzisi bethu: ukudala ingqondo yebhizinisi eqinile, ukuthuthukisa izixhumanisi zabasebenzisi, nokuthuthukisa ama-API asabelayo nathembekile.

Isibonelo, uma kungenzeka ukugwema ukuphatha nokugcina inkundla yokusesha umbhalo yamahhala, yilokho esizokwenza. Le ndlela yokwakha izinhlelo zokusebenza ingasheshisa kakhulu isikhathi sokumaketha, ngoba akusadingeki ucabange ngokuphatha ingqalasizinda eyinkimbinkimbi. Susa izibopho kanye nezindleko zokuphathwa kwengqalasizinda futhi ugxile ekwakheni izinhlelo zokusebenza nezinsizakalo ezidingwa ngamakhasimende akho. UPatrick Debois ubize le ndlela 'iyasebenza', leli temu liyamukelwa emphakathini ongenaseva. Imisebenzi kufanele icatshangelwe njengesixhumanisi esiya ezinsizeni njengamamojula angasebenziseka (esikhundleni sokusebenzisa umtapo wolwazi wonke noma uhlelo lokusebenza lwewebhu). Lokhu kunikeza imbudumbudu emangalisayo yokuphatha ukusetshenziswa nezinguquko kuhlelo lokusebenza. Uma ungakwazi ukuphakela imisebenzi ngale ndlela, khona-ke kungase kubonise ukuthi imisebenzi yenza imisebenzi eminingi kakhulu futhi idinga ukucatshangelwa kabusha.

Abanye abantu badidwa ukuncika kumthengisi lapho benza izinhlelo zokusebenza zamafu. Okufanayo kuyiqiniso ngobuchwepheshe obungenasiphakeli, futhi lokhu akunakwenzeka ukuthi kube umphumela wokungaqondi kahle. Kokuhlangenwe nakho kwethu, ukwakha izinhlelo zokusebenza ezingenasiphakeli ku-AWS, kuhlanganiswe nekhono le-AWS Lambda lokuhlanganisa ezinye izinsizakalo ze-AWS, kuyingxenye yalokho okwenza izakhiwo ezingenasiphakeli zibe zinhle kakhulu. Lesi isibonelo esihle se-synergy, lapho umphumela wenhlanganisela mkhulu kunesamba sezingxenye zayo. Ukuzama ukugwema ukukhiya komthengisi kungaholela ezinkingeni ezengeziwe. Lapho usebenza ngeziqukathi, kulula ukuphatha ungqimba lwakho lokususa phakathi kwabahlinzeki bamafu. Kodwa uma kukhulunywa ngezixazululo ezingenasiphakeli, umzamo ngeke ukhokhe, ikakhulukazi uma ucabangela ukusebenza kahle kwezindleko zisuka nje. Qiniseka ukuthi uthola ukuthi abathengisi bahlinzeka kanjani ngezinsizakalo. Ezinye izinsiza eziyisipesheli zincike ezindaweni zokuhlanganisa nabanye abathengisi futhi zingahlinzeka ngoxhumano lwe-plug-and-play ngaphandle kwebhokisi. Kulula ukunikeza ikholi ye-Lambda esuka endaweni yokugcina ye-API yesango kunokufaka isicelo kwesinye isitsha noma isenzakalo se-EC2. I-Graphcool ivumela ukucushwa okulula kusetshenziswa i-Auth0, okulula kunokusebenzisa amathuluzi okuqinisekisa wenkampani yangaphandle.

Ukukhetha umthengisi olungile wohlelo lwakho lokusebenza olungenaseva kuyisinqumo sezakhiwo. Uma udala uhlelo lokusebenza, awulindeli ukuthi ngelinye ilanga ubuyele ekuphatheni amaseva. Ukukhetha umthengisi wamafu akufani nokukhetha ukusebenzisa iziqukathi noma isizindalwazi, noma ngisho nolimi lokuhlela.

Cabangela:

  • Yiziphi izinkonzo ozidingayo futhi kungani.
  • Yiziphi izinsizakalo abahlinzeki bamafu abahlinzeka ngazo nokuthi ungazihlanganisa kanjani usebenzisa isisombululo sakho se-FaaS esikhethiwe.
  • Yiziphi izilimi zokuhlela ezisekelwayo (zithayishwe ngokushintshashintshayo noma ngokwezibalo, zihlanganiswe noma zihunyushwe, athini amabhentshimakhi, yini ukuqala okubandayo kokusebenza, iyini i-ecosystem yomthombo ovulekile, njll.).
  • Yiziphi izidingo zakho zokuphepha (i-SLA, i-2FA, i-OAuth, i-HTTPS, i-SSL, njll.).
  • Uyiphatha kanjani i-CI/CD yakho nemijikelezo yokuthuthukisa isoftware.
  • Yiziphi izixazululo zengqalasizinda njengekhodi ongazisebenzisa ngokunenzuzo?

Uma unweba uhlelo lokusebenza olukhona futhi wengeza imisebenzi engenasiphakeli ngokwandayo, lokhu kungase kukhawule amandla atholakalayo. Nokho, cishe bonke ubuchwepheshe obungenasiphakeli bunikeza uhlobo oluthile lwe-API (nge-REST noma umugqa womlayezo) okuvumela ukuthi udale izandiso ezizimele ngaphandle kwengqikithi yohlelo lokusebenza kanye nokuhlanganiswa okulula. Bheka amasevisi anama-API acacile, amadokhumenti amahle kanye nomphakathi oqinile, futhi awukwazi ukungahambi kahle. Ukulula kokuhlanganiswa kuvame ukuba yimethrikhi eyinhloko, futhi kungenzeka kube esinye sezizathu eziyinhloko i-AWS ephumelele ngayo kusukela i-Lambda yaphuma ngo-2015.

Kunini lapho ukusetshenziswa kweseva kuwusizo?

Ubuchwepheshe obungenaseva bungasetshenziswa cishe noma kuphi. Nokho, izinzuzo zabo azigcini nje ezindleleni zokusetshenziswa. Umgoqo wokungena kwi-cloud computing uphansi kakhulu namuhla ngenxa yobuchwepheshe obungenaseva. Uma abathuthukisi benombono, kodwa bengazi ukuthi bangaphatha kanjani ingqalasizinda yamafu futhi bandise izindleko, asikho isidingo sokuthi babheke unjiniyela othile ukuze akwenze. Uma isiqalisi sifuna ukwakha inkundla kodwa sikhathazekile ngokuthi izindleko zingase zingalawuleki, zingaphendukela kalula kuzixazululo ezingenasiphakeli.

Ngenxa yokonga izindleko kanye nokukala kalula, izixazululo ezingenasiphakeli zisebenza ngokulinganayo kuzo zombili izinhlelo zangaphakathi nezangaphandle, kuze kufike kuhlelo lokusebenza lwewebhu olunezithameli zezigidi zamadola. Ama-akhawunti akalwa ngamasenti kune-euro. Ukuqasha isenzakalo esilula se-AWS EC2 (t1.micro) inyanga yonke kuzobiza u-€15, ngisho noma ungenzi lutho ngayo (ubani owake wakhohlwa ukuyivala?!). Uma kuqhathaniswa, ukuze ufinyelele leli zinga lokusebenzisa imali ngesikhathi esifanayo, uzodinga ukusebenzisa i-Lambda engu-512 MB isekhondi elingu-1 cishe izikhathi eziyizigidi ezingu-3. Futhi uma ungasisebenzisi lesi sici, awukhokhi lutho.

Njengoba i-serverless iqhutshwa ngokuyinhloko, kulula ukungeza ingqalasizinda engenaseva kumasistimu wefa. Isibonelo, usebenzisa i-AWS S3, i-Lambda, ne-Kinesis, ungakha isevisi yezibalo yesistimu yokuthengisa yefa engathola idatha nge-API.

Izinkundla eziningi ezingenaseva zisekela izilimi eziningi. Imvamisa lezi yiPython, JavaScript, C#, Java neGo. Ngokuvamile, zonke izilimi azinayo imikhawulo ekusetshenzisweni kwemitapo yolwazi, ngakho-ke ungasebenzisa amalabhulali akho omthombo ovulekile owathandayo. Kodwa-ke, kuyatuseka ukuthi ungasebenzisi ngokweqile ukuncika ukuze imisebenzi yakho isebenze kahle futhi ingachithi izinzuzo zokwehla okukhulu kwezinhlelo zakho zokusebenza ezingenasiphakeli. Uma amaphakheji engeziwe adinga ukulayishwa esitsheni, isiqalo esibandayo sizothatha isikhathi eside.

Isiqalo esibandayo yilapho udinga okokuqala ukuqalisa isiqukathi, isikhathi sokusebenza, nesibambi samaphutha ngaphambi kokuzisebenzisa. Ngenxa yalokhu, ukubambezeleka kokwenziwa kwemisebenzi kungafika kumasekhondi angu-3, ​​futhi lokhu akuyona inketho engcono kakhulu kubasebenzisi abangenasineke. Nokho, ukubanda kuqala kwenzeka ocingweni lokuqala ngemva kwemizuzu embalwa yokusebenza kokungenzi lutho. Ngakho-ke abaningi babheka lokhu njengokucasula okuncane okungase kusetshenzwe ngokufaka njalo umsebenzi ukuze uhlale ungenzi lutho. Noma bangasinaki lesi sici ngokuphelele.

Nakuba i-AWS ikhishwe i-server ye-SQL yedatha ye-Serverless AuroraKodwa-ke, imininingwane egciniwe ye-SQL ayilungele lolu hlobo lokusetshenziswa ngoba ithembele ekuxhumekeni ukwenza ukuthengiselana, okungase kube ibhodlela ngokushesha uma kunethrafikhi eningi ku-AWS Lambda. Yebo, abathuthukisi bahlala bethuthukisa i-Serverless Aurora, futhi kufanele uyizame, kodwa namuhla izixazululo ze-NoSQL ezifana DynamoDB. Nokho, akungabazeki ukuthi lesi simo sizoshintsha maduze nje.

Ikhithi yamathuluzi futhi ibeka imikhawulo eminingi, ikakhulukazi endaweni yokuhlolwa kwendawo. Nakuba zikhona izixazululo ezifana ne-Docker-Lambda, i-DynamoDB Local kanye ne-LocalStack, zidinga umsebenzi onzima kanye nenani elibalulekile lokucushwa. Kodwa-ke, wonke la maphrojekthi ayathuthuka, ngakho-ke kuyindaba yesikhathi kuphela ngaphambi kokuba amathuluzi afinyelele izinga esilidingayo.

Umthelela wobuchwepheshe obungenasiphakeli kumjikelezo wokuthuthukisa

Ngenxa yokuthi ingqalasizinda yakho iwukucushwa nje, ungachaza futhi usebenzise ikhodi usebenzisa imibhalo, njengemibhalo yegobolondo. Noma ungaphendukela kuzixazululo zekilasi lokucushwa njengekhodi njenge I-AWS CloudFormation. Nakuba le sevisi inganikezi ukucushwa kwazo zonke izindawo, iyakuvumela ukuthi uchaze izinsiza ezithile ezizosetshenziswa njengemisebenzi ye-Lambda. Okusho ukuthi, lapho i-CloudFormation ihluleka khona, ungabhala insiza yakho (umsebenzi we-Lambda) ozovala lesi sikhala. Ngale ndlela ungenza noma yini, uze ulungiselele ukuncika ngaphandle kwendawo yakho ye-AWS.

Ngoba konke kumane kuwukucushwa, ungakwazi ukuhlukanisa imibhalo yakho yokuphakela ezindaweni ezithile, izifunda, nabasebenzisi, ikakhulukazi uma usebenzisa izixazululo zengqalasizinda njenge-code njenge-CloudFormation. Isibonelo, ungathumela ikhophi yengqalasizinda yegatsha ngalinye endaweni yokugcina ukuze ukwazi ukuyihlola yodwa ngesikhathi sokuthuthukiswa. Lokhu kusheshisa kakhulu isikhathi onjiniyela abathola ngaso impendulo uma befuna ukuqonda ukuthi ikhodi yabo isebenza ngokwanele yini endaweni ebukhoma. Abaphathi akudingeki bakhathazeke ngezindleko zokusebenzisa izindawo eziningi, njengoba bekhokhela kuphela ukusetshenziswa kwangempela.

I-DevOps ayinakukhathazeka okuncane ngakho njengoba idinga kuphela ukwenza isiqiniseko sokuthi onjiniyela banokucushwa okulungile. Azisekho izigameko zokuphatha, ababhalansi, noma amaqembu okuvikela. Ngakho-ke, igama elithi NoOps liya ngokuya lisetshenziswa, nakuba kusabalulekile ukuthi ukwazi ukulungisa ingqalasizinda, ikakhulukazi uma kuziwa ekucushweni kwe-IAM kanye nokwenza kahle kwezinsiza zamafu.

Kunamathuluzi anamandla kakhulu okuqapha nokubonakala afana ne-Epsagon, i-Thundra, i-Dashbird ne-IOPipe. Zikuvumela ukuthi uqaphe isimo samanje sezinhlelo zokusebenza ezingenayo iseva, unikeze amalogi nemikhondo, uthwebule amamethrikhi okusebenza kanye nezingqinamba zezakhiwo, wenze ukuhlaziya izindleko kanye nokubikezela, nokunye okuningi. Abagcini nje ngokunikeza onjiniyela be-DevOps, abathuthukisi, nabaklami bezakhiwo umbono obanzi wokusebenza kohlelo lokusebenza, kodwa futhi bavumela abaphathi ukuthi bathole ukubonakala esikhathini sangempela, ukusetshenziswa kwensiza kwesibili nesekhondi kanye nokubikezela izindleko. Kunzima kakhulu ukuhlela lokhu ngengqalasizinda ephethwe.

Ukuklama izinhlelo zokusebenza ezingenasiphakeli kulula kakhulu ngoba akudingekile ukuthi ukhiphe amaseva ewebhu, uphathe imishini noma iziqukathi ezibonakalayo, amaseva wokuchibiyela, amasistimu wokusebenza, amasango e-inthanethi, njll. Ukuhoxisa yonke le mithwalo yemfanelo kuvumela izakhiwo ezingenasiphakeli ukuthi zigxile kulokho okubaluleke kakhulu: isisombululo. ibhizinisi nezidingo zamakhasimende.

Nakuba ukufakwa kwamathuluzi kungase kube ngcono (kuyathuthuka nsuku zonke), abathuthukisi bangagxila ekusebenziseni ingqondo yebhizinisi kanye nendlela yokusabalalisa kangcono ubunzima bohlelo lokusebenza kuzo zonke izinsiza ezihlukene ngaphakathi kwezakhiwo. Ukuphathwa kohlelo lokusebenza okungenaseva kusekelwe kumcimbi futhi kukhishwe umhlinzeki wamafu (isibonelo, i-SQS, imicimbi ye-S3 noma ukusakaza kwe-DynamoDB). Ngakho-ke, abathuthukisi badinga kuphela ukubhala ingqondo yebhizinisi ukuze basabele ezenzakalweni ezithile, futhi akudingeki bakhathazeke ngokuthi bangayisebenzisa kanjani kangcono imininingo egciniwe nemigqa yemilayezo, noma ukuthi bangasebenza kanjani ngokugcwele ngedatha kusitoreji sezingxenyekazi zekhompuyutha ezithile.

Ikhodi ingaqhutshwa futhi isuswe iphutha endaweni, njenganoma iyiphi inqubo yokuthuthukisa. Ukuhlolwa kweyunithi kuhlala kunjalo. Ikhono lokusebenzisa yonke ingqalasizinda yohlelo lokusebenza ngokucushwa kwesitaki sangokwezifiso kuvumela onjiniyela ukuthi bathole ngokushesha impendulo ebalulekile ngaphandle kokucabanga ngezindleko zokuhlola noma umthelela ezindaweni eziphathwayo ezibizayo.

Amathuluzi namasu okwakha izinhlelo zokusebenza ezingenaseva

Ayikho indlela eqondile yokwakha izinhlelo zokusebenza ezingenaseva. Kanye nesethi yezinsizakalo zalo msebenzi. Umholi phakathi kwezixazululo ezinamandla ezingenasici namuhla yi-AWS, kodwa naka Ifu le-Google, isikhathi ΠΈ I-Firebase. Uma usebenzisa i-AWS, lapho-ke singancoma njengendlela yokuqoqa izinhlelo zokusebenza I-Serverless Application Model (SAM), ikakhulukazi uma usebenzisa i-C#, ngoba i-Visual Studio inethuluzi elihle kakhulu. I-SAM CLI ingenza yonke into engenziwa i-Visual Studio, ngakho ngeke ulahlekelwe lutho uma ushintshela kwenye i-IDE noma umhleli wombhalo. Vele, i-SAM isebenza nezinye izilimi.

Uma ubhala ngezinye izilimi, i-Serverless Framework iyithuluzi elihle kakhulu lomthombo ovulekile elikuvumela ukuthi ulungise noma yini usebenzisa amafayela okumisa anamandla e-YAML. I-Serverless Framework iphinde isekele izinsiza ezihlukahlukene zamafu, ngakho-ke siyincoma kulabo abafuna isisombululo samafu amaningi. Inomphakathi omkhulu odale inqwaba yama-plugin kunoma yisiphi isidingo.

Ngokuhlolwa kwendawo, amathuluzi omthombo ovulekile i-Docker-Lambda, i-Serverless Local, i-DynamoDB Local, ne-LocalStack afaneleka kahle. Ubuchwepheshe obungenaseva busesezigabeni zabo zokuqala zokuthuthuka, njengamathuluzi kubo, ngakho-ke lapho ulungiselela izimo zokuhlola eziyinkimbinkimbi, kuzodingeka usebenze kanzima. Kodwa-ke, ukumane ukhiphe isitaki endaweni nokuhlola lapho ishibhile ngendlela emangalisayo. Futhi awudingi ukwenza ikhophi yendawo ngqo yezindawo zakho zamafu.

Sebenzisa Izendlalelo ze-AWS Lambda ukuze unciphise osayizi bamaphakheji asetshenzisiwe futhi usheshise izikhathi zokulayisha.

Sebenzisa izilimi zokuhlela ezilungile zemisebenzi ethile. Izilimi ezehlukene zinezinzuzo zazo kanye nokubi. Kukhona ama-benchmarks amaningi, kodwa i-JavaScript, i-Python, ne-C# (.NET Core 2.1+) ingabaholi mayelana nokusebenza kwe-AWS Lambda. I-AWS Lambda isanda kwethula i-Runtime API ekuvumela ukuthi ucacise ulimi olufisayo nendawo yesikhathi sokusebenza, ngakho-ke vivinya.

Gcina osayizi bephakheji lokuphakela bebancane. Uma zizincane, zilayisha ngokushesha. Gwema ukusebenzisa amalabhulali amakhulu, ikakhulukazi uma usebenzisa izici ezimbalwa kuwo. Uma uhlela ku-JavaScript, sebenzisa amathuluzi okwakha afana ne-Webpack ukuze uthuthukise isakhiwo sakho futhi ufake kuphela lokho okudingayo ngempela. I-.NET Core 3.0 ihlanganisa i-QuickJit ne-Tiered Compilation, ethuthukisa ukusebenza futhi isize kakhulu ekuqaleni okubandayo.

Ukuthembela kwemisebenzi engenasiphakeli ezenzakalweni kungenza kube nzima ukuxhumanisa ingqondo yebhizinisi ekuqaleni. Mayelana nalokhu, imigqa yemilayezo nemishini yezwe ingaba usizo ngendlela emangalisayo. Imisebenzi ye-Lambda ingabizana, kodwa yenza lokhu kuphela uma ungalindele impendulo ("umlilo futhi ukhohlwe") - awufuni ukukhokhiswa ngokulinda omunye umsebenzi ukuthi uqedele. Imigqa yemilayezo iwusizo ekuhlukaniseni izingxenye zomqondo webhizinisi, ukuphatha izingqinamba zezinhlelo zokusebenza, nokucubungula okwenziwayo (usebenzisa imigqa ye-FIFO). Imisebenzi ye-AWS Lambda inganikezwa olayini be-SQS njengolayini wemilayezo ebambekile elandelela imilayezo ehlulekile ukuze ihlaziywe kamuva. I-AWS Step Functions (imishini yezwe) iwusizo kakhulu ekulawuleni izinqubo eziyinkimbinkimbi ezidinga uchungechunge lwemisebenzi. Esikhundleni somsebenzi we-Lambda obiza omunye umsebenzi, imisebenzi yesinyathelo ingaxhumanisa izinguquko zesimo, idlulise idatha phakathi kwemisebenzi, futhi ilawule isimo semisebenzi yomhlaba jikelele. Lokhu kukuvumela ukuthi uchaze izimo zokuphinda uzame, noma ukuthi wenzeni uma kwenzeka iphutha elithile - ithuluzi elinamandla kakhulu ezimeni ezithile.

isiphetho

Eminyakeni yamuva nje, ubuchwepheshe obungenasiphakeli buye bathuthuka ngesivinini esingakaze sibonwe. Kunemibono ethile eyiphutha ehlotshaniswa nalokhu kushintsha kwepharadigm. Ngokukhipha ingqalasizinda kanye nokuphatha ukuqina, izixazululo ezingenasiphakeli zinikeza izinzuzo ezibalulekile, kusukela ekuthuthukisweni okwenziwe lula kanye nezinqubo ze-DevOps kuya ekwehliseni okukhulu kwezindleko zokusebenza.
Nakuba indlela engenasiphakeli ingenazo izihibe zayo, kukhona amaphethini edizayini athembekile angasetshenziswa ukudala izinhlelo zokusebenza eziqinile ezingenasiphakeli noma ukuhlanganisa izici ezingenasiphakeli ezakhiweni ezikhona.

Source: www.habr.com

Engeza amazwana