Kāpēc bezserveru revolūcija ir strupceļā

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 bezservera skaitļoÅ”anas stāvoklis, tas ir nepareizi. Neskatoties uz daudziem rakstiem par bÅ«tÄ«bu revolÅ«cija bez serveriem, tas nekad nav noticis. PatiesÄ«bā, jaunākie pētÄ«jumi liecinaka Ŕī revolÅ«cija varētu bÅ«t nonākusi strupceļā.

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. Bez servera revolÅ«cijas solÄ«jumi bija daudz un dažkārt ļoti ambiciozi.

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:

  1. 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.
  2. 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ā.
  3. 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 Zimki PaaS 2006. gadā, un aptuveni tajā paŔā laikā Google App Engine nāca klajā ar ļoti lÄ«dzÄ«gu risinājumu.

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 bezserveru lietojumprogrammu veidoÅ”ana un izlemiet, kā vislabāk piemērot Å”o modeli.

Avots: www.habr.com

Pievieno komentāru