Serverløs teknologi har genereret en masse hype i teknologisamfundet, der fremkalder en masse nysgerrighed og modtager nogle tilbageslag i et lille omfang. Det er en teknologi, der begyndte med lanceringen af AWS Lamba i 2014, som hurtigt blev fulgt op af Azure -funktioner senere i 2016.
Google senere fulgt trop med frigivelsen af Google Cloud fungerer i juli 2018. Så hvad er serverløs teknologi? For bedst at besvare dette spørgsmål, lad os tage vores sind tilbage til traditionel serverbaseret computing.
I den traditionelle it -model stod du for stort set alt. Som virksomhedsejer bliver du nødt til at budgettere med servere og andet netværksudstyr såsom routere og switches og stativer til sorg over serverne.
Du skulle også bekymre dig om at få et uberørt og sikkert datacenter og sikre, at det i tilstrækkelig grad kan levere køling og redundant strøm og internettjeneste. Når du er konfigureret, skal du derefter installere operativsystemet og senere implementere dine applikationer. Derudover ville du blive påkrævet
oprette overvågningssystemer og implementere sikkerhedsfunktioner som f.eks firewalls og indbrudsforebyggelse og detektionssystemer.Som du måske har gættet, er dette ressourcekrævende, dyrt og drænende.
Derefter skyen brød ind i teknologiverdenen og revolutionerede fuldstændigt den måde, vi implementerer og administrerer servere og applikationer på. Det indvarslede en ny æra, hvor udviklere hurtigt ville piske cloud -servere og databaser op på kort tid og begynde at arbejde på deres applikationer. Ingen bekymringer om problemer i forbindelse med traditionel IT -computing såsom nedetid, dyrt udstyr og leje af datacentre.
Mens cloud computing medførte bekvemmeligheden og stordriftsfordelene ved implementering af it-ressourcer, ville nogle virksomheder overkøbe serverplads og ressourcer såsom RAM og CPU i påvente af en stigning i netværkstrafik eller aktivitet, der kan overvælde applikationer.
Selvom det er et forsigtigt skridt, er det utilsigtede resultat underudnyttelse af serverressourcer, som ofte går til spilde. Selv med autoskaling kan stadig en uforudset og pludselig stigning vise sig at være dyr. Du skal også stadig udføre andre opgaver, f.eks. Opsætning af belastningsbalancere, som også sandsynligvis vil øge driftsomkostningerne.
Det er tydeligt, at på trods af at de skifter til skyen, hænger nogle flaskehalse stadig op og har potentiale til at skalere omkostninger og forårsage ressourcespild. Og det er her Serverløs computing kommer i.
Serverløs computing er en cloud-model, der leverer backend-tjenester til brugere på en pay-as-you-go-basis. Enkelt sagt tildeler skyudbyderen kun beregningsressourcer og gebyrer for den tid, applikationerne kører. Dette svarer til at skifte fra en månedlig plan for kabelbetaling til kun at betale for, når du ser dine tv -udsendelser.
Begrebet 'Serverløs'Kan være lidt misvisende. Er der servere involveret? Sikker, men i dette tilfælde håndteres og vedligeholdes serverne og den underliggende infrastruktur rent af cloud -udbyderen. Som sådan behøver du ikke bekymre dig om dem. Som udvikler er dit fokus udelukkende på at udvikle dine applikationer og sikre, at de fungerer til din tilfredshed.
På den måde fjerner serverløs computing hovedpinen ved at administrere servere og sparer dig dyrebar tid til at arbejde på dine applikationer.
Et perfekt eksempel på serverløs backend -service er Funktion-som-en-service (FaaS) platform. FaaS er en cloud computing -model, der gør det muligt for udviklere at udvikle, eksekvere og administrere kode som reaktion på begivenheder uden kompleksiteten ved at bygge og administrere en underliggende infrastruktur, der normalt er forbundet med implementeringen af mikrotjenester.
Faas er en underkategori af Serverless computing med subtile forskelle. Serverløs computing omfatter en bred vifte af tjenester, herunder computere, database, lagring og API for at nævne nogle få. FaaS er udelukkende fokuseret på en hændelsesdrevet computermodel, hvor applikationer udføres on-demand, det vil sige som svar på en anmodning.
Eksempler på FaaS computermodeller omfatter:
Sammenfattende har vi set det med FaaS, du betaler kun for den tid, din applikation kører, og cloud -udbyderen gør stort set alt for dig, herunder håndtering af den underliggende infrastruktur. Håndtering af servere er det mindste af dine bekymringer.
På nuværende tidspunkt har du en god idé om nogle af de fordele, som serverløs computing bringer til bordet. Lad os gå dybere ind i fordelene ved at omfavne teknologien.
Dette er måske en af de største fordele ved at anvende den serverløse computermodel. Selvom udtrykket 'serverløs'Kan blive misforstået for at betyde, at der ikke er nogen servere involveret, faktum er, at applikationer stadig kører på servere. Kernen i sagen er, at serveradministration udelukkende er cloud -leverandørens virksomhed, og det giver dig mere tid til at arbejde med dine applikationer.
Serverløs infrastruktur giver automatisk skalering af applikationer som reaktion på en stigning i brug, efterspørgsel eller vækst i brugerbase. Hvis applikationen kører i flere instanser, starter og stopper serverne, når det er påkrævet. I en traditionel cloud computing -opsætning kan en stigning i trafik eller aktivitet let overbelaste serverressourcer, hvilket fører til uoverensstemmelser med applikationen, der udføres.
Som udvikler behøver du ikke opbygge nogen særlig infrastruktur for at gøre dine applikationer meget tilgængelige. Serverløs computing giver dig indbygget høj tilgængelighed for at sikre, at dine applikationer er i gang, når det er nødvendigt.
Serverløs computing tildeler ressourcer på en pay-as-you-use-basis. Din applikation kræver kun backend -funktioner, når koden udføres og skaleres automatisk baseret på mængden af arbejdsbyrde.
Dette giver stordriftsfordele, da du kun faktureres for den tid, applikationerne kører. I den traditionelle servermodel skal du betale for serverplads, databaser blandt andre ressourcer, uanset om applikationen kører eller er inaktiv.
Den serverløse arkitektur eliminerer behovet for backend -konfiguration og manuel upload af kode til servere som i den traditionelle opsætning. Det er let for udviklere at uploade små stakke kode på en effektiv måde og lancere et godt produkt.
Den lette implementering gør det også muligt for udviklere at lappe og opdatere visse funktioner i kode uden at ændre hele applikationen.
Er der nogen ulemper forbundet med den serverløse model? Lad os finde ud af det.
Dårligt konfigurerede applikationer udgør en af de største risici forbundet med serverløs computing. Hvis du vælger AWSfor eksempel er det klogt at konfigurere forskellige tilladelser til din applikation, som igen vil bestemme, hvordan de vil interagere med andre tjenester inden for AWS. Hvor tilladelser er vage, kan en funktion eller en tjeneste have flere tilladelser, end der kræves, hvilket giver rigelig plads til sikkerhedsbrud.
At vælge en serverløs model kan give udfordringer ved migrering til en anden leverandør. Dette skyldes hovedsageligt, at hver leverandør har sine egne funktioner og arbejdsgange, der afviger lidt fra resten.
En anden udfordring ved den serverløse model er vanskeligheden ved at gengive et serverløst miljø til test og overvågning af kodens ydeevne, før den går live. Dette skyldes primært, at udviklere mangler tilgængelighed til backend -tjenester, der er et forbehold af Cloud -udbyderen.
Overvågning af serverløse applikationer er en kompleks virksomhed af de samme årsager, som fejlfinding og test er en opadgående opgave. Dette er blevet forstærket af utilgængeligheden af værktøjer med integration til backend -tjenester som f.eks AWS Lamba.
Serverløs computing fortsætter med at vinde trækkraft og optagelse blandt virksomheder og udviklere af tre vigtige årsager. Den ene er overkommelighed, hvilket indebærer reducerede driftsomkostninger. For det andet letter serverløs computing automatisk og hurtig skalering, og endelig skal udviklere ikke bekymre sig om den underliggende infrastruktur, der håndteres af leverandøren.
I mellemtiden arbejder cloud -udbydere døgnet rundt for at løse nogle af de faldgruber, der er forbundet med serverløs computing, f.eks. Vanskeligheder med fejlfinding og overvågning af applikationer.