Zakaj je revolucija brez strežnikov zastala

Ključne točke

  • Že nekaj let nam obljubljajo, da bo brezstrežniško računalništvo (brezstrežniško) odprlo novo obdobje brez posebnega operacijskega sistema za izvajanje aplikacij. Povedali so nam, da bi taka struktura rešila veliko težav z razširljivostjo. Pravzaprav je vse drugače.
  • Čeprav mnogi vidijo brezstrežniško tehnologijo kot novo idejo, lahko njene korenine izsledimo v letu 2006 z Zimki PaaS in Google App Engine, ki uporabljata brezstrežniško arhitekturo.
  • Obstajajo štirje razlogi, zakaj je revolucija brez strežnikov zastala, od omejene podpore programskega jezika do težav z zmogljivostjo.
  • Računalništvo brez strežnikov ni tako neuporabno. Daleč od tega. Vendar jih ne bi smeli obravnavati kot neposredno zamenjavo za strežnike. Za nekatere aplikacije so lahko priročno orodje.

Strežnik je mrtev, naj živi strežnik!

To je bojni krik privržencev revolucije brez strežnikov. Hiter pogled na industrijski tisk v zadnjih nekaj letih zadostuje za sklep, da je tradicionalni strežniški model mrtev in da bomo čez nekaj let vsi uporabljali brezstrežniške arhitekture.

Kot ve vsak v industriji in kot smo tudi poudarili v našem članku o stanje brezstrežniškega računalništva, to je narobe. Kljub številnim člankom o zaslugah revolucija brez strežnika, nikoli se ni zgodilo. Pravzaprav, nedavne študije kažejoda je ta revolucija morda zašla v slepo ulico.

Nekatere obljube za brezstrežniške modele so se zagotovo uresničile, vendar ne vse. Ne vsak.

V tem članku želim razmisliti o razlogih za to stanje. Zakaj je pomanjkanje prilagodljivosti brezstrežniških modelov še vedno ovira za njihovo širšo uporabo, čeprav ostajajo uporabni v posebnih, natančno opredeljenih okoliščinah.

Kaj so obljubljali poznavalci brezstrežniškega računalništva

Preden preidemo na težave brezstrežniškega računalništva, poglejmo, kaj so morali zagotoviti. Obljube o revoluciji brez strežnikov so bile številne in - včasih - zelo ambiciozne.

Za tiste, ki izraza ne poznate, je tukaj kratka definicija. Brezstrežniško računalništvo definira arhitekturo, v kateri se aplikacije (ali deli aplikacij) izvajajo na zahtevo v izvajalnih okoljih, ki običajno gostujejo na daljavo. Poleg tega je mogoče gostiti sisteme brez strežnikov. Gradnja robustnih brezstrežniških sistemov je bila glavna skrb sistemskih skrbnikov in podjetij SaaS v zadnjih nekaj letih, saj (trdi se) ta arhitektura ponuja več ključnih prednosti pred "tradicionalnim" modelom odjemalec/strežnik:

  1. Brezstrežniški modeli od uporabnikov ne zahtevajo vzdrževanja lastnih operacijskih sistemov ali celo gradnje aplikacij, ki so združljive z določenimi operacijskimi sistemi. Namesto tega razvijalci ustvarijo kodo v skupni rabi, jo naložijo na brezstrežniško platformo in opazujejo, kako teče.
  2. Viri v brezstrežniških okvirih se običajno zaračunavajo po minutah (ali celo sekundah). To pomeni, da stranke plačajo le čas, ko dejansko izvedejo kodo. To je v primerjavi s tradicionalnim VM v oblaku, kjer stroj večino časa miruje, vendar morate za to plačati.
  3. Rešen je bil tudi problem razširljivosti. Viri v brezstrežniških okvirih se dodeljujejo dinamično, tako da se lahko sistem zlahka spopade z nenadnimi skoki povpraševanja.

Skratka, modeli brez strežnikov zagotavljajo prilagodljive, poceni in razširljive rešitve. Presenečen sem, da na to idejo nismo pomislili prej.

Je to res nova ideja?

Pravzaprav ideja ni nova. Koncept, ki omogoča uporabnikom, da plačajo samo za čas, ko se koda dejansko izvaja, je prisoten, odkar je bil predstavljen pod Zimki PaaS leta 2006 in približno v istem času je Google App Engine predstavil zelo podobno rešitev.

Pravzaprav je model, ki ga zdaj imenujemo »brez strežnika«, starejši od mnogih tehnologij, ki se zdaj imenujejo »domače v oblaku« in zagotavljajo skoraj enako. Kot smo že omenili, so modeli brez strežnikov v bistvu le razširitev poslovnega modela SaaS, ki obstaja že desetletja.

Prav tako je vredno priznati, da model brez strežnika ni arhitektura FaaS, čeprav obstaja povezava med obema. FaaS je v bistvu del brezstrežniške arhitekture, ki je osredotočen na računalništvo, vendar ne predstavlja celotnega sistema.

Zakaj torej ves ta hype? No, ko stopnja prodora interneta v državah v razvoju strmo narašča, se povečuje tudi povpraševanje po računalniških virih. Številne države s hitro rastočimi sektorji e-trgovine na primer preprosto nimajo računalniške infrastrukture za aplikacije na teh platformah. Tukaj nastopijo plačljive brezstrežniške platforme.

Težave z modeli brez strežnikov

Ulov je v tem, da imajo modeli brez strežnikov ... težave. Ne razumite me narobe: ne trdim, da so sami po sebi slabi ali da nekaterim podjetjem v nekaterih okoliščinah ne zagotavljajo pomembne vrednosti. Toda glavna trditev »revolucije« – da bo brezstrežniška arhitektura hitro nadomestila tradicionalno – se nikoli ne uresniči.

Zato.

Omejena podpora za programske jezike

Večina brezstrežniških platform omogoča izvajanje samo aplikacij, napisanih v določenih jezikih. To močno omejuje prožnost in prilagodljivost teh sistemov.

Šteje se, da brezstrežniške platforme podpirajo večino glavnih jezikov. Funkcije AWS Lambda in Azure nudijo tudi ovoj za izvajanje aplikacij in funkcij v nepodprtih jezikih, čeprav to pogosto povzroči stroške zmogljivosti. Za večino organizacij ta omejitev običajno ni velika težava. Ampak tukaj je stvar. Ena od prednosti brezstrežniških modelov naj bi bila ta, da je mogoče nejasne, redko uporabljane programe uporabljati ceneje, ker plačate le čas njihovega delovanja. In nejasni, redko uporabljeni programi so pogosto napisani v... nejasnih, redko uporabljenih programskih jezikih.

To spodkopava eno ključnih prednosti brezstrežniškega modela.

Vezava na prodajalca

Druga težava brezstrežniških platform ali vsaj načina njihove trenutne implementacije je, da si na operativni ravni običajno ne izgledajo enako. Praktično ni standardizacije v smislu pisnih funkcij, uvajanja in upravljanja. To pomeni, da je selitev funkcij z ene platforme na drugo izjemno zamudna.

Najtežji del prehoda na model brez strežnika niso računalniške funkcije, ki so običajno le izrezki kode, ampak kako aplikacije komunicirajo s povezanimi sistemi, kot so shranjevanje objektov, upravljanje identitete in čakalne vrste. Funkcije je mogoče premikati, ostale aplikacije pa ne. To je pravo nasprotje obljubljenih poceni in prilagodljivih platform.

Nekateri trdijo, da so modeli brez strežnikov novi in ​​da ni bilo časa za standardizacijo njihovega delovanja. Vendar niso tako nove, kot sem omenil zgoraj, in številne druge tehnologije v oblaku, kot so vsebniki, so zaradi razvoja in širokega sprejemanja dobrih standardov že postale veliko bolj priročne.

Produktivnost

Računalniško zmogljivost brezstrežniških platform je težko izmeriti, delno zato, ker prodajalci ponavadi zadržujejo informacije v tajnosti. Večina trdi, da funkcije na oddaljenih platformah brez strežnikov delujejo enako hitro kot na notranjih strežnikih, razen nekaj neizogibnih težav z zakasnitvijo.

Vendar pa nekateri dokazi kažejo drugače. Funkcije, ki se prej niso izvajale na določeni platformi ali se niso izvajale nekaj časa, potrebujejo nekaj časa za inicializacijo. To je verjetno posledica tega, da je bila njihova koda prenesena na manj dostopen pomnilniški medij, čeprav - tako kot pri merilih uspešnosti - vam večina prodajalcev ne bo povedala o prenosu podatkov.

Seveda obstaja več načinov, kako se temu izogniti. Ena je optimizacija funkcij za kateri koli jezik v oblaku, v katerem deluje vaša platforma brez strežnika, vendar to nekoliko spodkopava trditev, da so te platforme "agilne".

Drug pristop je zagotoviti, da se programi, ki so kritični za zmogljivost, izvajajo redno, da ostanejo "sveži". Ta drugi pristop je seveda nekoliko v nasprotju s trditvijo, da so brezstrežniške platforme stroškovno učinkovitejše, ker plačate samo za čas izvajanja svojih programov. Ponudniki oblakov so uvedli nove načine za zmanjšanje hladnih zagonov, vendar mnogi od njih zahtevajo "razmerje na eno", kar spodkopava prvotno vrednost FaaS.

Težavo hladnega zagona je mogoče delno rešiti z uporabo sistemov brez strežnikov v podjetju, vendar to pride na svoje stroške in ostaja nišna možnost za ekipe z dobrimi viri.

Ne morete izvajati celotnih aplikacij

Nazadnje, morda najpomembnejši razlog, zakaj brezstrežniške arhitekture ne bodo kmalu nadomestile tradicionalnih modelov, je ta, da (na splošno) ne morejo izvajati celotnih aplikacij.

Natančneje, s stroškovnega vidika je nepraktičen. Vašega uspešnega monolita verjetno ne bi smeli spremeniti v niz štirih ducatov funkcij, povezanih z osmimi prehodi, štiridesetimi čakalnimi vrstami in ducatom primerkov baze podatkov. Zaradi tega je brezstrežniško bolj primerno za nov razvoj. Skoraj nobene obstoječe aplikacije (arhitekture) ni mogoče prenesti. Lahko se preselite, vendar morate začeti iz nič.

To pomeni, da se v veliki večini primerov brezstrežniške platforme uporabljajo kot dopolnilo zalednim strežnikom za izvajanje računalniško intenzivnih nalog. To se zelo razlikuje od drugih dveh oblik računalništva v oblaku, vsebnikov in virtualnih strojev, ki ponujata celovit način izvajanja oddaljenega računalništva. To ponazarja enega od izzivov selitve z mikrostoritev na sisteme brez strežnikov.

Seveda pa to ni vedno problem. Zmožnost občasne uporabe ogromnih računalniških virov brez nakupa lastne strojne opreme lahko mnogim organizacijam prinese resnične in trajne koristi. Če pa so nekatere aplikacije na notranjih strežnikih, druge pa na brezstrežniških arhitekturah oblaka, potem upravljanje preide na novo raven kompleksnosti.

Naj živi revolucija?

Kljub vsem tem pritožbam ne nasprotujem rešitvam brez strežnika kot takim. Iskreno povedano. Samo razvijalci morajo razumeti – še posebej, če prvič raziskujejo modele brez strežnikov – da ta tehnologija ni neposredna zamenjava za strežnike. Namesto tega si oglejte naše nasvete in vire izdelava brezstrežniških aplikacij in se odločite, kako najbolje uporabiti ta model.

Vir: www.habr.com

Dodaj komentar