AWS

Kas yra be serverio? „AWS Lambda“ ir kiti „FaaS“

Kas yra be serverio? „AWS Lambda“ ir kiti „FaaS“
Siekdami suprasti „serverless“, „AWS Lamda“ ir panašius „Function-as-a-Service“ pasiūlymus, pradėsime nuo skaičiavimo istorijos ir peizažo, o tada pritaikysime šias naujas paslaugas kontekste. Pradėkime.

Fiziniai kompiuteriai

Mes nuėjome ilgą kelią nuo didžiulių „dotcom“ eros serverių. Tais laikais serverių infrastruktūra dažniausiai buvo numatyta vietoje. Verslas savo sprendimus vykdė fiziniame serveryje. Žmonės įvairiems tikslams naudojo ištisus atskirus serverius (atsargines kopijas, pašto serverį, žiniatinklio serverį ir kt.). Kai tam tikras serveris nesugebėjo išlaikyti augančių įmonės poreikių, jį pakeitė naujesnis greitesnis serveris. Jūs pakeitėte mastą įsigydami geresnę aparatinę įrangą. Jūs pakeitėte vertikaliai.

Hipervizoriai

Tada atėjo hipervizorių era. Tai įgavo pagreitį augant „VMWare“ ir žmonės suprato, kad gali gauti vieną lentyną, kad valdytų juos visus. Vienas stovas, skirtas paleisti visus įvairius naudojimo atvejus ir suteikti kiekvienam iš jų savo atskirą virtualią mašiną. Tai taip pat sukėlė debesų kompiuteriją, o įmonės nustojo tiesiogiai investuoti į serverių aparatinę įrangą ir nusprendė „išsinuomoti“ virtualius serverius.

Didžiulius ir brangius duomenų centrus valdė debesų tiekėjai visame pasaulyje. Verslo įmonės tuo pasinaudojo teikdamos savo paslaugas visame pasaulyje, naudodamos kuo platesnį duomenų centrų rinkinį. Tai buvo padaryta daugiausia siekiant sumažinti vėlavimą, pagerinti klientų patirtį ir nukreipti į didesnę rinką.

Tai taip pat privertė programinės įrangos autorius galvoti apie paskirstytas sistemas. Jie rašė programinę įrangą, kuri nuosekliai ir patikimai veiktų ne vienu milžinišku, o daugeliu vidutiniškų kompiuterių. Jūs pakeitėte mastelį horizontaliai.

Jūs vis tiek galite mastelį vertikaliai. Tiesą sakant, dėl virtualinimo tapo lengviau pasirūpinti daugiau išteklių. Jūs išjungėte VM, pakoregavote jos išteklius ir šiek tiek sumokėjote debesies paslaugų teikėjui. Torto gabaliukas.

Pagrindiniai fiziniai serveriai niekur nedingo. Debesų tiekėjai dabar yra atsakingi už tinklo sąsajų, OS suderinamumo ir kitų siaubingų patologijų sudėtingumo valdymą.

Konteineriai

Tada atėjo konteineriai. Konteineriai buvo tai nuostabi lengvoji abstrakcija. Virtuali aplinka su operacine sistema, kuri leido programinę įrangą supakuoti ir įdiegti kaip vieną vienetą. Kaip ir virtualios mašinos, kiekvienas konteineris veikė nežinodamas kitų talpyklų, tačiau jos turėjo tą patį operacinės sistemos branduolį.

Tai leido žmonėms įdiegti programinę įrangą serveriuose (fiziniuose ar virtualiuose, nesvarbu) dar aukštesniu abstrakcijos lygiu. Jums nerūpėjo gamybos operacinė sistema. Kol jis palaikys jūsų konteinerių technologiją, jis paleis jūsų programinę įrangą. Be to, konteinerius lengviau sukti, todėl paslaugos tapo labiau keičiamos nei bet kada.

Tai dar labiau padidino paskirstytų sistemų lankstumą. Naudodamiesi tokiomis technologijomis, kaip „Kubernetes“, galite turėti daugybę konteinerių, valdančių sudėtingą paslaugų spektrą. Paskirstytosios sistemos teikia daug privalumų - aukštą prieinamumą, tvirtumą ir galimybę išgydyti save nuo mazgo gedimo.

Tuo pačiu metu, kadangi jie yra tokie sudėtingi, juos taip pat yra sunkiau kurti, diegti, prižiūrėti, stebėti ir derinti. Tai prieštarauja pradinei tendencijai ištrinti savo programinės įrangos sudėtingumą ir perduoti šią atsakomybę savo debesies paslaugų teikėjui. Čia atsiranda serverio architektūra.

Be serverio arba funkcija kaip tarnyba (FaaS)

„Serverless“ idėja tapo svarbiausia dėl „AWS Lambda“, ir čia aš tai naudosiu kaip modelį kalbėdamas apie „serverless“. „FaaS“ principai yra šie:

Kai niekas nesinaudoja jūsų paslaugomis, paslaugos nėra aktyvios. Taip nebuvo tradicinių prieglobos sprendimų atveju, kai mokate už VPS, kuris visada veikia ir veikia, net jei jis sėdėjo tuščiąja eiga ir nedarė nieko naudingesnio, nei klausydamas naujos užklausos.
Be serverio architektūros jūsų paslauga neveikia, nebent kas nors iš tikrųjų nori ja naudotis. Kai gaunama užklausa, sklandžiai sukuriama paslauga, skirta jai tvarkyti.

Kaip tai veikia?

Jūsų funkcija (pavyzdžiui, „Python“, „Go“ arba „Java“ programa) yra failas „AWS Lambda“. Su šia funkcija susiejate tam tikrus suaktyvinimo įvykius, pvz., API šliuzą, arba naują objektą, patenkantį į jūsų S3 grupę. Tam tikri ištekliai, tokie kaip duomenų bazė ar kita objektų saugykla ar EC2 egzempliorius.

Reaguodamas į bet kurį susijusį suaktyvinimo įvykį, „AWS Lambda“ sukuria sudėtinį rodinį, kuriame yra jūsų funkcija. Funkcija vykdo ir pateikia atsakymą. Pavyzdžiui, jei į jūsų S3 kibirą patenka naujas vaizdas, tada „AWS Lambda“ gali turėti mašininio mokymosi kodą, kuris išanalizuotų šį vaizdą ir įrašytų jo išvestį į „DynamoDB“ (vieną iš AWS duomenų saugyklos paslaugų).

Jūs neturite mokėti už visą serverį, bet tik už atminties kiekį, kurį paskyrėte savo funkcijai, gautų užklausų skaičių ir kiek laiko jūsų funkcija veikia.

Be to, jums nereikia jaudintis dėl talpyklų mastelio keitimo atsižvelgiant į didelį gaunamą darbo krūvį. Jei vienu metu įvyksta daug įvykių, tada AWS pasirūpins naujų konteinerių sukūrimu ir darbo krūvių planavimu tarp jų ir visų kitų sudėtingumų.

Ne visas sprendimas

Kai atsirado virtualios mašinos, fiziniai serveriai nenustojo egzistuoti. Atvykę konteineriai vis tiek naudojome VM. „FaaS“ yra aukštesnio lygio abstrakcija ir ji puikiai tinka šiuolaikiniam „RESTful“ API, be pilietybės paslaugų ir lengvų kalbų, tokių kaip „Node“, dizainui.js arba „Python“.

Tačiau jis vis dar veikia fiziniame serveryje (pvz., Valdomas AWS), jis vis tiek klauso gaunamų užklausų (jūs tiesiog nemokate už tai tiesiogiai) ir vis tiek turite nuolat saugoti duomenis, todėl jis S3, EC2 ir kitų paslaugų integravimas. Vis dėlto tai yra naudinga abstrakcija.

How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Peržiūrėkite pelės mygtukus skirtingai programinei įrangai naudodami „X-Mouse Button Control“
Galbūt jums reikia įrankio, kuris galėtų pakeisti jūsų pelės valdymą kiekvienoje jūsų naudojamoje programoje. Tokiu atveju galite išbandyti programą, ...
„Microsoft Sculpt Touch“ belaidžio pelės apžvalga
Neseniai skaičiau apie „Microsoft Sculpt Touch“ belaidę pelę ir nusprendė ją nusipirkti. Kurį laiką naudojęs, nusprendžiau pasidalinti savo patirtimi....