Pikat Kryesore
- Prej disa vitesh na premtuan se llogaritë pa serverë do të hapin një epokë të re pa një sistem operativ konkret për ekzekutimin e aplikacioneve. Na u tha se ky strukturë do të zgjidhte shumë probleme në lidhje me shkallëzimin. Në të vërtetë, gjithçka është ndryshe.
- Megjithëse shumë i shohin teknologjinë pa serverë si një ide të re, rrënjët e saj mund të ndjekin deri në vitin 2006, kur u shfaqën Zimki PaaS dhe Google App Engine — në të dy rastet shkolla pa serverë zbatohet.
- Ka katër arsye për të cilat revolucioni pa serverë është bllokuar: nga mbështetje e kufizuar për gjuhët e programimit deri te problemet me performancën.
- Llogaritë pa serverë nuk janë aq të padobishme. Aspak. Megjithatë, nuk duhet të konsiderohen si një zëvendësim i drejtpërdrejtë për serverët. Në disa aplikacione, ato mund të jenë një mjet i përshtatshëm.
Serveri është i vdekur, jetofshin serverët!
Kështu tingëllon thirrja e revolucionarëve pa serverë. Mjafton të shikosh përmbledhjet e industrisë në vitet e fundit, dhe është e lehtë të arrish në përfundimin se modeli tradicional i serverëve është i vdekur dhe se pas disa vjetësh të gjithë do të përdorim arkitekturë pa serverë.
Siç e dinë të gjithë në industri, dhe siç e kemi theksuar edhe në artikullin tonë për , kjo nuk është e vërtetë. Pavarësisht nga numri i madh i artikujve mbi përfitimet e , ai ende nuk është realizuar. Në të vërtetë, , se ky revolucion, ndoshta, ka arritur në një pikë të verbër.
Disa nga premtimet për modelet pa serverë, padyshim, janë realizuar, por jo të gjitha. Aspak të gjitha.
Në këtë artikull, dua të shqyrtoj arsyet për këtë gjendje. Pse mungesa e fleksibilitetit të modeleve pa serverë është ende një pengesë për adoptimin e tyre më të gjerë, edhe pse ato mbeten të dobishme në rrethana të caktuara, të përcaktuara qartë.
Çfarë premtuan mbështetësit e computing-ut pa serverë
Para se kalojmë në problemet e computing-ut pa server, le të shohim se çfarë ata duhej të ofronin. kanë qenë të shumta dhe – ndonjëherë – shumë ambicioze.
Për ata që nuk janë të njohur me termin, ja një përkufizim i shkurtër. Computingu pa server përcakton një arkitekturë ku aplikacionet (ose pjesë të aplikacioneve) ekzekutohen sipas kërkesës në mjedise ekzekutimi që zakonisht janë të vendosura larg. Përveç kësaj, sistemet pa server mund të hostohen nga vetë. Gjatë disa viteve të fundit, krijimi i sistemeve të qëndrueshme pa server ka qenë një shqetësim kryesor për administratorët e sistemeve dhe kompanitë SaaS, pasi (siç thuhet) kjo arkitekturë ofron disa përfitime kyçe në krahasim me modelin 'tradicional' klient-server:
- Modelet pa server nuk kërkojnë që përdoruesit të mbështesin vetë sistemet e tyre operative ose madje të krijojnë aplikacione që janë të përshtatshme për sisteme të caktuara operative. Përkundrazi, zhvilluesit krijojnë kod të përbashkët, e ngarkojnë atë në një platformë pa server dhe e vëzhgojnë ekzekutimin e tij.
- Burimet në framework-et serverless zakonisht paguhen në minuta (ose madje në sekonda). Kjo do të thotë se klientët paguajnë vetëm për kohën kur ata në fakt ekzekutojnë kodin. Kjo është një përparësi të dukshme në krahasim me VM-të tradicionale në cloud, ku makina qëndron e papërdorur për shumicën e kohës, por për të duhet paguar.
- Problemi i shkallëzueshmërisë gjithashtu është zgjidhur. Burimet në framework-et serverless emërohen dinamikisht, kështu që sistemi i përgjigjet lehtësisht shpërthimeve të papritura të kërkesës.
Me fjalë të tjera, modelet serverless ofrojnë zgjidhje fleksibile, të lira dhe të shkallëzueshme. E habitshme që nuk e menduam këtë ide më parë.
A është vallë kjo një ide e re?
Në të vërtetë, ideja nuk është e re. Koncepti që lejon përdoruesit të paguajnë vetëm për kohën kur kodi ekzekutohet në fakt ka ekzistuar qëkur u prezantua në kuadër të në vitin 2006, dhe rreth në të njëjtën kohë Google App Engine ofroi një zgjidhje shumë të ngjashme.
Në të vërtetë, ajo që ne aktualisht e quajmë model "pa server" është më e vjetër se shumë teknologji që tani quhen "re të natyrshme", dhe që ofrojnë praktikisht të njëjtën gjë. Siç është përmendur, modelet pa server janë në thelb një vazhdim i modelit të biznesit SaaS, i cili ekziston prej disa dekadash.
Gjithashtu duhet pranuar se modeli pa server nuk është arkitektura FaaS, megjithëse ka një lidhje midis tyre. FaaS është, në thelb, komponenti i fokusuar në llogaritje i arkitekturës pa server, por nuk përbën gjithësinë e sistemit.
Pra, përse gjithë kjo zhurmë? Epo, për shkak se shpejtësia e përhapjes së internetit në vendet në zhvillim vazhdon të rritet me shpejtësi, po ashtu rritet edhe kërkesa për burime llogaritëse. Për shembull, në shumë vende me sektorë të shpejtë në rritje të tregtisë elektronike, thjesht nuk ka infrastrukturë llogaritëse për aplikacionet në këto platforma. Këtu është aty ku shfaqen platformat pa server me pagesë.
Problemet e modeleve pa server
Problemi është se modelet pa server kanë... çështje. Mos më kuptoni gabim: nuk po them se ato vetë janë të këqija ose se nuk ofrojnë vlerë të rëndësishme për disa kompani në disa rrethana. Por pretendimi kryesor i "revolucioneve" - që arkitektura pa server do të zëvendësojë shpejt tradicionalen - kurrë nuk do të realizohet.
Kjo është arsyeja pse.
Mbështetje e kufizuar për gjuhët e programimit
Shumica e platformave pa server lejojnë vetëm ekzekutimin e aplikacioneve që janë shkruar në gjuhë të caktuara. Kjo e kufizon seriozisht fleksibilitetin dhe adaptueshmërinë e këtyre sistemeve.
Konsiderohet se platformat pa server mbështesin shumicën e gjuhëve kryesore. AWS Lambda dhe Azure Functions gjithashtu ofrojnë një hapësirë për të ekzekutuar aplikacione dhe funksione në gjuhët e papërkrahura, megjithëse kjo shpesh shkakton kosto në performancë. Prandaj, për shumicën e organizatave, ky kufizim zakonisht nuk ka shumë rëndësi. Por ja në çfarë konsiston. Supozohet se një nga përfitimet e modeleve pa server është se programet pak të njohura, të përdorura rrallë mund të përdoren më lirë, pasi paguani vetëm për kohën e ekzekutimit të tyre. Dhe programet pak të njohura, të përdorura rrallë shpesh shkruhen në... gjuhë programuese pak të njohura, të përdorura rrallë.
Kjo minon një nga përfitimet kryesore të modelit pa server.
Lidhja me shitësin
Problemi i dytë me platformat pa server ose, të paktën, mënyra se si ato aktualisht zbatohen, është se ato zakonisht nuk janë të ngjashme me njëra-tjetrën në nivelin operativ. Praktikisht nuk ka standardizim në lidhje me shkruajten e funksioneve, duke i vendosur ato në përdorim dhe menaxhimin. Kjo do të thotë se migrimi i funksioneve nga një platformë në një tjetër merr jashtëzakonisht shumë kohë.
Pjesa më e vështirë e kalimit në modelin pa server është se nuk janë funksionet e llogaritjes, të cilat zakonisht janë thjesht fragmente kodi, por mënyra se si aplikacionet janë të lidhura me sistemet e lidhura, si ruajtja e objekteve, menaxhimi i identitetit dhe radhët. Funksionet mund të zhvendosen, por pjesa tjetër e aplikacionit nuk mund. Kjo është krejtësisht e kundërt me platforma të premtuara të lira dhe fleksibile.
Disa pretendojnë se modelet pa server janë shfaqur kohët e fundit dhe nuk ka pasur kohë për të standardizuar funksionimin e tyre. Por ato nuk janë kaq të reja, siç e theksova më parë, dhe shumë teknologji të tjera të rejave në cloud, si kontenierët, kanë filluar të jenë shumë më të lehta për t'u përdorur për shkak të zhvillimit dhe zbatimit të kontrolleve të mira.
Performanca
Përformanca llogarithmike e platformave pa server është e vështirë të matet, pjesërisht sepse shitësit përpiqen të mbajnë informacionin sekret. Shumica e tyre pretendojnë se funksionet në platforma pa server funksionojnë po aq shpejt sa në serverë të brendshëm, përveç disa problemeve të pashmangshme me vonesën.
Megjithatë, disa fakte të veçanta tregojnë të kundërtën. Funksionet që nuk janë ekzekutuar më parë në një platformë të caktuar ose që nuk janë ekzekutuar për një periudhë të caktuar kërkojnë pak kohë për t'u inicializuar. Probabilisht, kjo lidhet me faktin se kodi i tyre është transferuar në ndonjë mbajtës të dhënash më pak të qasshëm, edhe pse - siç ndodh me metrikat e performancës - shumica e shitësve nuk do t'ju tregojnë rreth transferimit të të dhënave.
Sigurisht, ka disa mënyra për të anashkaluar këtë. Një nga to është optimizimi i funksioneve për çdo gjuhë cloud në të cilën funksionon platforma juaj pa server, por kjo disi minon pretendimin se këto platforma janë "flexibile."
Një qasje tjetër është të sigurohet ekzekutimi i rregullt i programeve kritikë për performancën, në mënyrë që ato të qëndrojnë "të freskëta". Kjo qasje e dytë, natyrisht, është paksa në kontradiktë me pretendimin se platformat pa server janë më ekonomike, sepse paguani vetëm për kohën e funksionimit të programeve tuaja. Ofruesit e cloud kanë implementuar mënyra të reja për të reduktuar nisjet e ftohta, por shumë prej tyre kërkojnë "shkallëzim deri në një" (scale to one), çka minon vlerën fillestare të FaaS.
Problemi i "nisjes së ftohtë" mund të zgjidhet pjesërisht duke filluar sistemet pa server me forcat tona, por kjo është e lidhur me koston e vet dhe mbetet një opsion niş për ekipet që kanë burime të mirëfillta.
Nuk mund të filloni aplikacione të plota
Së fundmi, ndoshta arsyeja më e rëndësishme pse arkitekturat pa server nuk do ta zëvendësojnë modelet tradicionale në një të ardhme të afërt: ato (zakonisht) nuk mund të përdoren për të filluar aplikacione të plota.
Në fakt, kjo nuk është e dobishme nga këndvështrimi i kostove. Monolithi juaj i suksesshëm me siguri nuk ia vlen të shndërrohet në një grup nga katërdhjetë funksione të lidhura me tetë portat, dyzet radhët dhe një dymbëdhjetë instance DB. Për këtë arsye, serverless është më i përshtatshëm për zhvillime të reja. Praktikisht asnjë aplikacion (arkitekturë) ekzistuese nuk mund të transferohet. Mund të migroni, por do t'ju duhet të filloni nga fillimi.
Kjo do të thotë se në shumicën dërrmuese të rasteve, platformat serverless përdoren si një plotesues për serverat vendorë për të kryer detyra që kërkojnë llogaritje të mëdha. Kjo e dallon ndjeshëm nga dy format e tjera të teknologjive cloud - kontejnerët dhe makinat virtuale, të cilat ofrojnë një mënyrë të plotë për të kryer llogaritje të largëta. Kjo ilustron një nga vështirësitë e kalimit nga mikroshërbimet në sistemet serverless.
Sigurisht, kjo nuk është gjithmonë një problem. Mundësia për ta përdorur periodikisht burime të mëdha llogaritëse, pa blerë harduerin tuaj, mund të sjellë një përfitim të vërtetë dhe afatgjatë për shumë organizata. Por nëse disa aplikacione janë në serverët e brendshëm, ndërsa të tjera janë në arkitektura cloud pa server, menaxhimi kalon në një nivel të ri kompleksiteti.
Jetë të gjatë revolucionit?
Pavarësisht të gjitha këtyre ankesave, unë nuk kam asnjë problem me zgjidhjet pa server. Fjalë për fjalë. Thjesht zhvilluesit duhet të kuptojnë — sidomos nëse po eksplorojnë modelet pa server për herë të parë — se kjo teknologji nuk është një zëvendësim i drejtpërdrejtë për serverët. Në vend të kësaj, shihni këshillat dhe burimet tona për dhe vendosni se si është më e mira për ta zbatuar këtë model.
Burimi: habr.com
