Galvenie punkti
- Jau vairÄkus gadus mums tiek solÄ«ts, ka bezserveru skaitļoÅ”ana (bez servera) atklÄs jaunu Äru bez konkrÄtas OS, lai palaistu lietojumprogrammas. Mums teica, ka Å”Äda struktÅ«ra atrisinÄs daudzas mÄrogojamÄ«bas problÄmas. PatiesÄ«bÄ viss ir savÄdÄk.
- Lai gan daudzi bezserveru tehnoloÄ£iju uzskata par jaunu ideju, tÄs saknes meklÄjamas 2006. gadÄ ar Zimki PaaS un Google App Engine, kas abos izmanto arhitektÅ«ru bez serveriem.
- Ir Äetri iemesli, kÄpÄc bezserveru revolÅ«cija ir apstÄjusies, sÄkot no ierobežota programmÄÅ”anas valodas atbalsta lÄ«dz veiktspÄjas problÄmÄm.
- Bezserveru skaitļoÅ”ana nav tik bezjÄdzÄ«ga. TÄlu no tÄ. TomÄr tos nevajadzÄtu uzskatÄ«t par tieÅ”u serveru aizstÄjÄju. DažÄm lietojumprogrammÄm tie var bÅ«t Ärts rÄ«ks.
Serveris ir miris, lai dzīvo serveris!
Å is ir bezserveru revolÅ«cijas piekritÄju kaujas sauciens. Ar Ä«su ieskatu nozares presÄ pÄdÄjos gados pietiek, lai secinÄtu, ka tradicionÄlais servera modelis ir miris un ka pÄc dažiem gadiem mÄs visi izmantosim bezserveru arhitektÅ«ru.
KÄ ikviens nozares pÄrstÄvis zina un kÄ mÄs arÄ« norÄdÄ«jÄm mÅ«su rakstÄ par
Daži solījumi par bezserveru modeļiem noteikti ir piepildījuŔies, bet ne visi. Ne visi.
Å ajÄ rakstÄ es vÄlos apsvÄrt Ŕī nosacÄ«juma iemeslus. KÄpÄc bezserveru modeļu elastÄ«bas trÅ«kums joprojÄm ir ŔķÄrslis to plaÅ”Äkai ievieÅ”anai, lai gan tie joprojÄm ir noderÄ«gi Ä«paÅ”os, skaidri definÄtos apstÄkļos.
Ko solÄ«ja bezserveru skaitļoÅ”anas lietpratÄji
Pirms pÄriet uz bezserveru skaitļoÅ”anas problÄmÄm, apskatÄ«sim, kas tÄm bija jÄnodroÅ”ina.
Tiem, kas nav pazÄ«stami ar Å”o terminu, Å”eit ir Ä«sa definÄ«cija. Bezserveru skaitļoÅ”ana definÄ arhitektÅ«ru, kurÄ lietojumprogrammas (vai lietojumprogrammu daļas) darbojas pÄc pieprasÄ«juma izpildlaika vidÄs, kuras parasti tiek mitinÄtas attÄlinÄti. TurklÄt var tikt mitinÄtas sistÄmas bez serveriem. Stingru bezserveru sistÄmu izveide pÄdÄjos gados ir bijusi liela problÄma sistÄmu administratoriem un SaaS uzÅÄmumiem, jo āā(tiek apgalvots) Ŕī arhitektÅ«ra piedÄvÄ vairÄkas galvenÄs priekÅ”rocÄ«bas salÄ«dzinÄjumÄ ar "tradicionÄlo" klienta/servera modeli:
- Modeļiem bez serveriem lietotÄjiem nav jÄuztur paÅ”iem savas operÄtÄjsistÄmas vai pat jÄizveido lietojumprogrammas, kas ir saderÄ«gas ar noteiktÄm operÄtÄjsistÄmÄm. TÄ vietÄ izstrÄdÄtÄji izveido koplietotu kodu, augÅ”upielÄdÄ to platformÄ bez servera un skatÄs, kÄ tas darbojas.
- Par resursiem bezserveru ietvaros parasti tiek iekasÄta maksa par minÅ«ti (vai pat sekundÄm). Tas nozÄ«mÄ, ka klienti maksÄ tikai par laiku, kad viÅi faktiski izpilda kodu. Tas ir izdevÄ«gi salÄ«dzinÄjumÄ ar tradicionÄlo mÄkoÅa virtuÄlo maŔīnu, kur maŔīna lielÄko daļu laika ir dÄ«kstÄvÄ, bet jums par to ir jÄmaksÄ.
- Tika atrisinÄta arÄ« mÄrogojamÄ«bas problÄma. Resursi bezserveru ietvaros tiek pieŔķirti dinamiski, lai sistÄma varÄtu viegli tikt galÄ ar pÄkÅ”Åiem pieprasÄ«juma pieaugumiem.
ÄŖsÄk sakot, modeļi bez serveriem nodroÅ”ina elastÄ«gus, zemu izmaksu un mÄrogojamus risinÄjumus. Esmu pÄrsteigts, ka mÄs par Å”o ideju neiedomÄjÄmies agrÄk.
Vai tÄ tieÅ”Äm ir jauna ideja?
PatiesÄ«bÄ ideja nav jauna. JÄdziens, kas ļauj lietotÄjiem maksÄt tikai par laiku, kad kods faktiski darbojas, pastÄv kopÅ” tÄ ievieÅ”anas saskaÅÄ ar
Faktiski tas, ko mÄs tagad saucam par "bez servera" modeli, ir vecÄks par daudzÄm tehnoloÄ£ijÄm, kuras tagad sauc par "mÄkonis native", kas nodroÅ”ina gandrÄ«z to paÅ”u. KÄ minÄts, modeļi bez serveriem bÅ«tÄ«bÄ ir tikai SaaS biznesa modeļa paplaÅ”inÄjums, kas pastÄv jau vairÄkus gadu desmitus.
Ir arÄ« vÄrts atzÄ«t, ka bezservera modelis nav FaaS arhitektÅ«ra, lai gan starp abiem pastÄv saikne. FaaS bÅ«tÄ«bÄ ir uz skaitļoÅ”anu orientÄta bezservera arhitektÅ«ras daļa, taÄu tÄ neatspoguļo visu sistÄmu.
Tad kÄpÄc visa Ŕī ažiotÄža? TÄ kÄ interneta izplatÄ«bas lÄ«menis jaunattÄ«stÄ«bas valstÄ«s turpina strauji pieaugt, pieaug arÄ« pieprasÄ«jums pÄc skaitļoÅ”anas resursiem. PiemÄram, daudzÄs valstÄ«s ar strauji augoÅ”Äm e-komercijas nozarÄm vienkÄrÅ”i nav skaitļoÅ”anas infrastruktÅ«ras lietojumprogrammÄm Å”ajÄs platformÄs. Å eit parÄdÄs maksas platformas bez serveriem.
ProblÄmas ar bezserveru modeļiem
ÄÄ·is ir tÄds, ka modeļos bez serveriem irā¦ problÄmas. NepÄrprotiet mani nepareizi: es nesaku, ka tie paÅ”i par sevi ir slikti vai noteiktos apstÄkļos nesniedz nozÄ«mÄ«gu vÄrtÄ«bu dažiem uzÅÄmumiem. TaÄu galvenais ārevolÅ«cijasā apgalvojums ā ka bezserveru arhitektÅ«ra Ätri aizstÄs tradicionÄlo ā nekad nepiepildÄs.
TÄpÄc.
Ierobežots atbalsts programmÄÅ”anas valodÄm
LielÄkÄ daļa bezserveru platformu ļauj darboties tikai noteiktÄs valodÄs rakstÄ«tÄm lietojumprogrammÄm. Tas bÅ«tiski ierobežo Å”o sistÄmu elastÄ«bu un pielÄgoÅ”anÄs spÄju.
Tiek uzskatÄ«ts, ka platformas bez serveriem atbalsta lielÄko daļu galveno valodu. AWS Lambda un Azure Functions nodroÅ”ina arÄ« aptinumu lietojumprogrammu un funkciju palaiÅ”anai neatbalstÄ«tÄs valodÄs, lai gan tas bieži vien ir par veiktspÄjas izmaksÄm. TÄtad lielÄkajai daļai organizÄciju Å”is ierobežojums parasti nav liels darÄ«jums. Bet Å”eit ir lieta. Viena no bezserveru modeļu priekÅ”rocÄ«bÄm ir tÄda, ka neskaidras, reti lietojamas programmas var izmantot lÄtÄk, jo jÅ«s maksÄjat tikai par to darbÄ«bas laiku. Un neskaidras, reti lietojamas programmas bieži tiek rakstÄ«tas... neskaidrÄs, reti lietojamÄs programmÄÅ”anas valodÄs.
Tas mazina vienu no galvenajÄm bezservera modeļa priekÅ”rocÄ«bÄm.
SaistÄ«Å”ana ar pÄrdevÄju
Otra bezserveru platformu problÄma vai vismaz veids, kÄ tÄs paÅ”laik tiek ieviestas, ir tÄ, ka tÄs parasti nav lÄ«dzÄ«gas darbÄ«bas lÄ«menÄ«. RakstÄ«Å”anas funkciju, izvietoÅ”anas un pÄrvaldÄ«bas standartizÄcijas praktiski nav. Tas nozÄ«mÄ, ka funkciju migrÄÅ”ana no vienas platformas uz citu ir ÄrkÄrtÄ«gi laikietilpÄ«ga.
SarežģītÄkÄ daļa, pÄrejot uz bezservera modeli, nav skaitļoÅ”anas lÄ«dzekļi, kas parasti ir tikai koda fragmenti, bet gan tas, kÄ lietojumprogrammas sazinÄs ar savienotÄm sistÄmÄm, piemÄram, objektu glabÄÅ”anu, identitÄtes pÄrvaldÄ«bu un rindÄm. Funkcijas var pÄrvietot, bet pÄrÄjo lietojumprogrammu nevar. Tas ir tieÅ”i pretÄjs solÄ«tajÄm lÄtajÄm un elastÄ«gajÄm platformÄm.
Daži apgalvo, ka modeļi bez serveriem ir jauni un nav bijis laika standartizÄt to darbÄ«bu. TaÄu tÄs nav tik jaunas, kÄ jau minÄju iepriekÅ”, un daudzas citas mÄkoÅtehnoloÄ£ijas, piemÄram, konteineri, jau ir kļuvuÅ”as daudz ÄrtÄkas, jo ir izstrÄdÄti un plaÅ”i pieÅemti labi standarti.
ŠŃŠ¾ŠøŠ·Š²Š¾Š“ŠøŃŠµŠ»ŃŠ½Š¾ŃŃŃ
Bezserveru platformu skaitļoÅ”anas veiktspÄju ir grÅ«ti izmÄrÄ«t, daļÄji tÄpÄc, ka pÄrdevÄji mÄdz paturÄt informÄciju noslÄpumÄ. LielÄkÄ daļa apgalvo, ka funkcijas attÄlÄs, bez serveru platformÄs darbojas tikpat Ätri kÄ iekÅ”Äjos serveros, izÅemot dažas neizbÄgamas latentuma problÄmas.
TomÄr daži pierÄdÄ«jumi liecina par pretÄjo. Funkcijas, kuras iepriekÅ” nav palaistas noteiktÄ platformÄ vai nav darbojuÅ”Äs kÄdu laiku, ir nepiecieÅ”ams zinÄms laiks, lai inicializÄtu. Tas, iespÄjams, ir saistÄ«ts ar to, ka viÅu kods ir pÄrnests uz kÄdu mazÄk pieejamu datu nesÄju, lai gan, tÄpat kÄ etaloniem, lielÄkÄ daļa pÄrdevÄju jums nestÄstÄ«s par datu pÄrneÅ”anu.
Protams, ir vairÄki veidi, kÄ to apiet. Viens no tiem ir optimizÄt funkcijas jebkurai mÄkoÅa valodai, kurÄ darbojas jÅ«su bezserveru platforma, taÄu tas nedaudz mazina apgalvojumu, ka Ŕīs platformas ir "veikslas".
VÄl viena pieeja ir nodroÅ”inÄt, ka veiktspÄjai kritiskÄs programmas tiek regulÄri palaists, lai tÄs bÅ«tu "svaigas". Å Ä« otrÄ pieeja, protams, ir nedaudz pretrunÄ apgalvojumam, ka platformas bez serveriem ir rentablÄkas, jo jÅ«s maksÄjat tikai par programmu darbÄ«bas laiku. MÄkoÅu pakalpojumu sniedzÄji ir ieviesuÅ”i jaunus veidus, kÄ samazinÄt aukstÄs palaiÅ”anas gadÄ«jumus, taÄu daudziem no tiem ir nepiecieÅ”ams "mÄrogs lÄ«dz vienam" (mÄrogs lÄ«dz vienam), kas mazina FaaS sÄkotnÄjo vÄrtÄ«bu.
AukstÄs palaiÅ”anas problÄmu daļÄji var atrisinÄt, darbinot sistÄmas bez serveriem, taÄu tas maksÄ pats un joprojÄm ir niÅ”as iespÄja komandÄm, kurÄm ir pietiekami daudz resursu.
JÅ«s nevarat palaist visas lietojumprogrammas
Visbeidzot, iespÄjams, vissvarÄ«gÄkais iemesls, kÄpÄc bezserveru arhitektÅ«ras drÄ«zumÄ neaizstÄs tradicionÄlos modeļus, ir tas, ka tie (parasti) nevar palaist visas lietojumprogrammas.
PrecÄ«zÄk, tas ir nepraktiski no izmaksu viedokļa. JÅ«su veiksmÄ«go monolÄ«tu, iespÄjams, nevajadzÄtu pÄrvÄrst par Äetriem desmitiem funkciju kopu, ko saista astoÅi vÄrti, Äetrdesmit rindas un ducis datu bÄzes gadÄ«jumu. Å Ä« iemesla dÄļ bez servera ir labÄk piemÄrota jauniem notikumiem. Praktiski nevienu esoÅ”o lietojumprogrammu (arhitektÅ«ru) nevar pÄrnest. JÅ«s varat migrÄt, bet jums ir jÄsÄk no nulles.
Tas nozÄ«mÄ, ka lielÄkajÄ daÄ¼Ä gadÄ«jumu bezserveru platformas tiek izmantotas kÄ papildinÄjums aizmugures serveriem, lai veiktu skaitļoÅ”anas ietilpÄ«gus uzdevumus. Tas ļoti atŔķiras no pÄrÄjiem diviem mÄkoÅdatoÅ”anas veidiem, konteineriem un virtuÄlajÄm maŔīnÄm, kas piedÄvÄ holistisku veidu attÄlÄs skaitļoÅ”anas veikÅ”anai. Tas ilustrÄ vienu no problÄmÄm, kas saistÄ«tas ar migrÄciju no mikropakalpojumiem uz sistÄmÄm bez serveriem.
Protams, tÄ ne vienmÄr ir problÄma. IespÄja periodiski izmantot milzÄ«gus skaitļoÅ”anas resursus, neiegÄdÄjoties savu aparatÅ«ru, var sniegt reÄlus un ilgstoÅ”us ieguvumus daudzÄm organizÄcijÄm. Bet, ja dažas lietojumprogrammas atrodas iekÅ”Äjos serveros, bet citas ir bezserveru mÄkoÅa arhitektÅ«rÄ, pÄrvaldÄ«ba nonÄk jaunÄ sarežģītÄ«bas lÄ«menÄ«.
Lai dzīvo revolūcija?
Neskatoties uz visÄm Ŕīm sÅ«dzÄ«bÄm, es neiebilstu pret bezserveru risinÄjumiem kÄ tÄdiem. GodÄ«gi. Tas ir tikai tas, ka izstrÄdÄtÄjiem ir jÄsaprot ā it Ä«paÅ”i, ja viÅi pirmo reizi pÄta bezserveru modeļus ā, ka Ŕī tehnoloÄ£ija nav tieÅ”s serveru aizstÄjÄjs. TÄ vietÄ skatiet mÅ«su padomus un resursus
Avots: www.habr.com