Peamised punktid
- Juba paar aastat on meile lubatud, et serverita arvutamine (serverless) avab uue ajastu, kus rakendusi ei tohiks kĂ€itada konkreetse operatsioonisĂŒsteemi abil. Meile on öeldud, et see struktuur lahendab palju skaleeritavuse probleeme. Tegelikult on kĂ”ik teisiti.
- Kuigi paljud peavad serverita tehnoloogiat uueks ideeks, ulatuvad selle juured tagasi 2006. aastasse, mil ilmusid Zimki PaaS ja Google App Engine â mĂ”lemal juhul kasutatakse serverita arhitektuuri.
- On neli pÔhjust, miks serverita revolutsioon on tÀnaseks ummikusse jooksnud: alates piiratud programmeerimiskeelte toetamisest kuni jÔudlusprobleemideni.
- Serverita arvutamine ei ole sugugi kasutu. Ka kaugeltki mitte. Kuid neid ei tohiks pidada otseseks asenduseks serveritele. Teatud rakenduste jaoks vÔivad need olla mugav tööriist.
Server on surnud, longtemps server!
Nii kĂ”lab serverita revolutsiooni toetajate lahinguhĂŒĂŒd. Piisab, kui kiiresti sirvida viimaste aastate tööstusuudiseid, et jĂ”uda jĂ€reldusele, et traditsiooniline serverite mudel on surnud ja et paariaasta pĂ€rast kasutame kĂ”ik serverita arhitektuure.
Nagu on teada igale valdkonna inimesele ja nagu me ka oma artiklis mÀrkisime , ei ole see nii. Vaatamata paljudele artiklitele serverita revolutsiooni voorustest , nÀitavad viimased uuringud MÔned serverita mudelite lubadustest on kindlasti tÀidetud, kuid mitte kÔik. Kui kaugel ei ole kÔik.
Selles artiklis tahan ma kÀsitleda sellise olukorra pÔhjuseid. Miks serverita mudelite paindlikkuse puudumine on endiselt takistuseks nende laiemale kasutusele, kuigi nad jÀÀvad kasulikuks konkreetsetes, selgelt mÀÀratletud olukordades.
Mida lubasid serverita arvutamise toetajad
Enne kui liigume serverita arvutamise probleemide juurde, vaatame, mida nad pidid pakkuma.
Serverita revolutsiooni lubadused olid ja â vahel â vĂ€ga ambitsioonikad.
Neile, kes ei tunne mĂ”istet, siin on lĂŒhike mÀÀratlus. Serverivabad arvutused mÀÀratlevad arhitektuuri, kus rakendused (vĂ”i rakenduste osad) kĂ€ivitatakse nĂ”udmisel keskkondades, mis asuvad tavaliselt eemal. Lisaks saab serverivabu sĂŒsteeme majutada ka enda juures. Viimase paari aasta jooksul on usaldusvÀÀrsete serverivabade sĂŒsteemide loomine olnud sĂŒsteemiadministraatorite ja SaaS-ettevĂ”tete peamine mure, kuna (vĂ€idetavalt) pakub see arhitektuur mitmeid olulisi eeliseid vĂ”rreldes "traditsioonilise" kliendi-serveri mudeliga:
- Serverivabad mudelid ei nĂ”ua, et kasutajad hallaksid oma operatsioonisĂŒsteeme vĂ”i isegi loobuksid rakendustest, mis on ĂŒhilduvad teatud OS-idega. Selle asemel loovad arendajad ĂŒldise koodi, laadivad selle ĂŒles serverivabale platvormile ja jĂ€lgivad selle tĂ€itmist.
- Serverivabades raamistikudes maksustatakse ressursse tavaliselt minutite (vĂ”i isegi sekundite) kaupa. See tĂ€hendab, et kliendid maksavad ainult siis, kui nende kood tegelikult töötab. See on suur erinevus traditsioonilisest pilve VM-ist, kus masin seisab suure osa ajast tĂŒhjana, kuid selle eest tuleb ikkagi maksta.
- Skaalautuvuse probleem on samuti lahendatud. Ressursse serverivabades raamistikudes mÀÀratakse dĂŒnaamiliselt, nii et sĂŒsteem suudab hĂ”lpsasti toime tulla Ă€kiliste nĂ”udluse tĂ”usudega.
LĂŒhidalt öeldes pakuvad serverivabad mudelid paindlikke, odavaid ja skaleeritavaid lahendusi. Ăllatav, et me ei tulnud selle ideeni varem.
Kas see on tÔeliselt uus idee?
Tegelikkuses ei ole idee uus. Kontseptsioon, mis vÔimaldab kasutajatel maksta ainult siis, kui kood tegelikult kÀivitatakse, on eksisteerinud alates selle sisseviimisest aastal 2006 ning umbes samal ajal pakkus Google App Engine vÀga sarnast lahendust.
Tegelikkuses on see, mida me nĂŒĂŒd nimetame "serverivabaks" mudeliks, vanem kui paljud tehnoloogiad, mida nĂŒĂŒd nimetatakse "pĂ”hise pilveks", ja mis pakuvad peaaegu sama. Nagu juba mainitud, on serverivabad mudelid pĂ”himĂ”tteliselt lihtsalt SaaS Ă€ri mudeli jĂ€tk, mis on olemas olnud juba mitu aastakĂŒmmet.
Samuti tuleb tunnistada, et serverita mudel ei ole FaaS arhitektuur, kuigi nende vahel on seos. FaaS on pĂ”himĂ”tteliselt arvutusi suunav osa serverita arhitektuurist, kuid see ei hĂ”lma kogu sĂŒsteemi.
Milleks kogu see lÀrmakus? Noh, kuna interneti levik arenguriikides jÀtkab kiiret kasvu, kasvab samal ajal nÔudlus arvutusressursside jÀrele. NÀiteks paljudes riikides, kus kiiresti arenevad e-kaubanduse sektorid, puudub lihtsalt arvutinfrastruktuur nende platvormide rakenduste jaoks. Siin tulevadki mÀngu tasulised serverita platvormid.
Serverita mudelite probleemid
Probleem on selles, et serverita mudelitel on... probleemid. Ărge saage valesti aru: ma ei ĂŒtle, et need on iseenesest halvad vĂ”i ei too teatud ettevĂ”ttele teatud olukordades mĂ€rkimisvÀÀrset vÀÀrtust. Kuid peamine vĂ€ide "revolutsioonist" - et serverita arhitektuur asendab kiiresti traditsioonilise - ei saa kunagi teoks.
Siin on pÔhjus.
Piiratud programmeerimiskeelte tugi
Enamik serverita platvorme vĂ”imaldab kĂ€ivitada ainult neid rakendusi, mis on kirjutatud teatud keeles. See piirab tĂ”siselt nende sĂŒsteemide paindlikkust ja kohanemisvĂ”imet.
Arvatakse, et serverita platvormid toetavad enamikku peamistest keeltest. AWS Lambda ja Azure Functions pakuvad samuti kihti rakenduste ja funktsioonide kĂ€itamiseks toe puudumisega keeltele, kuigi see on sageli seotud jĂ”udluse kuludega. Nii et enamikule organisatsioonidest ei ole see piirang ĂŒldiselt suur probleem. Aga siin on asi. Eeldatakse, et ĂŒks serverita mudelite eeliseid on see, et vĂ€he tuntud, harva kasutatavaid programme saab odavalt kasutada, kuna maksate ainult nende kĂ€itusaja eest. Ja vĂ€he tuntud, harva kasutatavad programmid on sageli kirjutatud... vĂ€he tuntud, harva kasutatavates programmeerimiskeeltes.
See ÔÔnestab ĂŒht serverita mudeli pĂ”hipunkte.
Tarnija sidusus
Teise probleemi puhul serverivabade platvormidega vĂ”i vĂ€hemalt nende rakendamisel tĂ€napĂ€eval on see, et need ei sarnane ĂŒksteisele operatsioonitasandil. Funktsioonide, juurutamise ja haldamise osas puudub peaaegu igasugune standardiseerimine. See tĂ€hendab, et funktsioonide migreerimine ĂŒhelt platvormilt teisele vĂ”tab ÀÀrmiselt kaua aega.
KĂ”ige raskem osa serverivabale mudelile ĂŒlemisest ei ole arvutusfunktsioonid, mis tavaliselt on lihtsalt koodifragmendid, vaid see, kuidas rakendused on seotud seotud sĂŒsteemidega, nagu objektide salvestamine, identiteedihaldus ja jĂ€rjekorrad. Funktsioone saab liigutada, kuid rakenduse ĂŒlejÀÀnud osa mitte. See on tĂ€ielik vastand lubatud odavatele ja paindlikele platvormidele.
MÔned vÀidavad, et serverivabad mudelid ilmusid hiljuti ning ei olnud aega nende toimimise standardimiseks. Kuid nagu ma eespool mainisin, ei ole nad nii uued ja paljud teised pilvetehnoloogiad, nÀiteks konteinerid, on juba palju mugavamaks muutunud tÀnu headele standardite vÀljatöötamisele ja laialdasele kasutusele.
TÔhusus
Serverivabade platvormide arvutusvĂ”imsust on keeruline mÔÔta, osaliselt seetĂ”ttu, et mĂŒĂŒjad pĂŒĂŒavad teavet saladuses hoida. Enamik vĂ€idab, et funktsioonid kaugemal asuvatel serverivabadel platvormidel töötavad sama kiiresti kui kohalikes serverites, vĂ€lja arvatud mĂ”ned vĂ€ltimatud latentsusprobleemid.
Kuid eraldi faktid viitavad vastupidisele. Funktsioonid, mida varem ei kĂ€ivitatud teatud platvormil vĂ”i mis ei olnud mĂ”nda aega kĂ€ivitunud, vajavad initsialiseerimiseks teatud aega. TĂ”enĂ€oliselt on see tingitud sellest, et nende kood viidi vĂ€hem kergesti ligipÀÀsetavasse andmekandjasse, kuigi â nagu ka tulemustes â enamik mĂŒĂŒjaid ei ĂŒtle sulle andmete ĂŒleviimisest.
Loomulikult on mitmeid vĂ”imalusi selle ĂŒle saamiseks. Ăks neist seisneb funktsioonide optimeerimises igasuguste pilvekeelete jaoks, milles teie serverivaba platvorm töötab, kuid see kahtleb veidi vĂ€ites, et need platvormid on "paindlikud".
Teine lĂ€henemine on regulaarselt tĂ€ita jĂ”udlust nĂ”udvaid programme, et need pĂŒsiksid âvĂ€rskedâ. See teine lĂ€henemine on muidugi veidi vastuolus vĂ€itega, et serverivabad platvormid on kulutĂ”husamad, kuna maksate ainult oma programmide tööaja eest. Pilveteenusepakkujad on kehtestanud uusi meetodeid kĂŒlmade kĂ€ivituste vĂ€hendamiseks, kuid paljud neist nĂ”uavad âĂŒheks skaleerimistâ (scale to one), mis seab kahtluse alla FaaS-i algse vÀÀrtuse.
KĂŒsimust âkĂŒlma kĂ€ivitustâ saab osaliselt lahendada, kĂ€ivitades serverivabad sĂŒsteemid iseseisvalt, kuid see toob kaasa omad kulud ja jÀÀb niĆĄivalikuks hĂ€sti varustatud ressurssidega meeskondadele.
Te ei saa kÀivitada terveid rakendusi
LÔpuks, vÔib-olla kÔige olulisem pÔhjus, miks serverivabad arhitektuurid ei asenda traditsioonilisi mudeleid lÀhiajal: neid (tavaliselt) ei saa kasutada tervete rakenduste kÀitamiseks.
TĂ€psemalt, see ei ole kulude osas mĂ”ttekas. Teie edukat monoliiti ei tasu ilmselt muuta neljakĂŒmne funktsiooni komplektiks, mis on seotud kaheksa vĂ€rava, neljakĂŒmne jĂ€rjekorra ja tosin DB eksemplariga. Selle tĂ”ttu on serverivabad lahendused paremad uute arenduste jaoks. Praktiliselt mitte ĂŒhtegi olemasolevat rakendust (arhitektuuri) ei saa migreerida. VĂ”ite migreerida, kuid peate alustama nullist.
See tĂ€hendab, et enamikul juhtudel kasutatakse serverivabu platvorme sisemiste serverite tĂ€iendamiseks suurte arvutuslike ĂŒlesannete tĂ€itmiseks. See eristab neid tugevalt kahest teisest pilvetehnoloogia vormist - konteineritest ja virtuaalmasinatest, mis pakuvad terviklikku lĂ€henemist kaugarvutuste teostamisele. See illustreerib mĂ”ningaid raskusi mikroteenustelt serverivabade sĂŒsteemide ĂŒleminekul.
Muidugi ei tÀhenda see alati probleemi. VÔimalus perioodiliselt kasutada tohutuid arvutusressursse ilma oma riistvara ostmata vÔib tuua reaalse ja pikaajalise kasu paljudele organisatsioonidele. Kuid kui mÔned rakendused on sise-serverites ja teised serverita pilvearhitektuurides, siis muutub haldamine uueks keerukuse tasemeks.
Elagu revolutsioon?
Hoolimata kĂ”igist neist kaebustest ei ole ma serverita lahenduste vastu. Ausalt öeldes. Lihtsalt arendajad peavad mĂ”istma â eriti kui nad uurivad serverita mudeleid esmakordselt â et see tehnoloogia ei asenda servereid otse. Selle asemel tutvuge meie nĂ”uannete ja ressurssidega ja otsustage, kuidas seda mudelit parimal viisil kasutada.
Allikas: habr.com
