LFCA: Lær serverløs databehandling, fordeler og fallgruver – del 15


Serverløs-teknologi har skapt mye hype i teknologimiljøet som vekker mye nysgjerrighet og har mottatt noe tilbakeslag i en liten grad. Det er en teknologi som begynte med lanseringen av AWS Lamba i 2014, som snart ble fulgt av Azure Functions senere i 2016.

Google fulgte senere etter med utgivelsen av Google Cloud-funksjoner i juli 2018. Så, hva er serverløs teknologi? For best mulig svar på dette spørsmålet, la oss ta tankene tilbake til tradisjonell serverbasert databehandling.

I den tradisjonelle IT-modellen var det du som hadde ansvaret for stort sett alt. Som bedriftseier må du budsjettere for servere og annet nettverksutstyr som rutere og svitsjer, og stativer for å sørge over serverne.

Du må også bekymre deg for å få et perfekt og sikkert datasenter og sørge for at det kan gi tilstrekkelig kjøling og redundant strøm og internetttjeneste. Når du er konfigurert, må du installere operativsystemet og senere distribuere applikasjonene dine. I tillegg må du sette opp overvåkingssystemer og implementere sikkerhetsfunksjoner som brannmurer og inntrengningsforebygging og deteksjonssystemer.

Som du kanskje har gjettet, er dette ressurskrevende, kostbart og drenerende.

Så brøt cloud computing inn i teknologiverdenen, og revolusjonerte fullstendig måten vi distribuerer og administrerer servere og applikasjoner på. Det innvarslet en ny æra der utviklere lett kunne piske opp skyservere og databaser på kort tid og begynne å jobbe med applikasjonene sine. Ingen bekymringer om problemer knyttet til tradisjonell IT-databehandling som nedetid, dyrt utstyr og leie av datasentre.

Mens cloud computing førte med seg bekvemmeligheten og stordriftsfordelene ved å distribuere IT-ressurser, ville noen selskaper overkjøpe enheter med serverplass og ressurser som RAM og CPU i påvente av en økning i nettverkstrafikk eller aktivitet som kan overvelde applikasjoner.

Selv om det er et fornuftig grep, er det utilsiktede resultatet underutnyttelsen av serverressurser som ofte går til spille. Selv med autoskalering kan en uforutsett og plutselig økning bli kostbar. Du må også fortsatt utføre andre oppgaver som å sette opp lastbalansere som sannsynligvis også vil øke driftskostnadene.

Det er tydelig at til tross for et skifte til skyen, er det fortsatt noen flaskehalser som henger igjen og har potensialet til å oppskalere kostnadene og forårsake ressurssløsing. Og det er her serverløs databehandling kommer inn.

Hva er serverløs databehandling

Serverløs databehandling er en skymodell som tilbyr backend-tjenester til brukere på en pay-as-you-go-basis. Enkelt sagt tildeler skyleverandøren dataressurser og tar betalt kun for tiden applikasjonene kjører. Dette tilsvarer å bytte fra en månedlig plan for kabelbetaling til å betale kun for når du ser på TV-programmene dine.

Begrepet «serverløs» kan være litt misvisende. Er det servere involvert? Men i dette tilfellet blir serverne og den underliggende infrastrukturen rent håndtert og vedlikeholdt av skyleverandøren. Som sådan trenger du ikke bekymre deg for dem. Som utvikler er fokuset ditt utelukkende på å utvikle applikasjonene dine og sikre at de fungerer til din tilfredshet.

Ved å gjøre det tar serverløs databehandling bort hodepinen med å administrere servere og sparer deg for dyrebar tid til å jobbe med applikasjonene dine.

Backend-tjenester levert av serverløs databehandling

Et perfekt eksempel på serverløs backend-tjeneste er plattformen Function-as-a-Service (FaaS). FaaS er en cloud computing-modell som gjør det mulig for utviklere å utvikle, utføre og administrere kode som svar på hendelser uten kompleksiteten med å bygge og administrere en underliggende infrastruktur som vanligvis er forbundet med distribusjon av mikrotjenester.

Faas er en underkategori av serverløs databehandling med subtile forskjeller. Serverløs databehandling omfatter et bredt spekter av tjenester, inkludert databehandling, database, lagring og API for å nevne noen. FaaS er utelukkende fokusert på en hendelsesdrevet datamodell hvor applikasjoner utføres på forespørsel, det vil si som svar på en forespørsel.

Eksempler på FaaS-databehandlingsmodeller inkluderer:

  • AWS Lambda av AWS
  • Azure-funksjoner fra Microsoft
  • Cloud Functions fra Google
  • Cloudflare Workers av Cloudflare

Oppsummert har vi sett at med FaaS betaler du kun for tiden applikasjonen din kjører, og skyleverandøren gjør stort sett alt for deg, inkludert håndtering av den underliggende infrastrukturen. Å administrere servere er den minste bekymringen.

Fordeler med serverløs databehandling

Nå har du en god ide om noen av fordelene som serverløs databehandling bringer til bordet. La oss gå dypere inn i fordelene ved å omfavne teknologien.

1. Ingen serveradministrasjon

Dette er kanskje en av de største fordelene ved å ta i bruk den serverløse databehandlingsmodellen. Selv om begrepet «serverløs» kan misforstås for å antyde at det ikke er noen servere involvert, er faktum at applikasjoner fortsatt kjører på servere. Sakens kjerne er at serveradministrasjon er helt og holdent skyleverandørens virksomhet, og dette gir deg mer tid til å jobbe med applikasjonene dine.

2. Enkel og effektiv skalering

Serverløs infrastruktur gir automatisk skalering av applikasjoner som svar på en økning i bruk, etterspørsel eller vekst i brukerbasen. Hvis applikasjonen kjører på flere forekomster, vil serverne starte og stoppe ved behov. I et tradisjonelt cloud computing-oppsett kan en økning i trafikk eller aktivitet lett overbelaste serverressurser som fører til inkonsistens med applikasjonen som kjøres.

3. Innebygd tilgjengelighet

Som utvikler trenger du ikke bygge noen spesiell infrastruktur for å gjøre applikasjonene dine høyst tilgjengelige. Serverløs databehandling gir deg innebygd høy tilgjengelighet for å sikre at applikasjonene dine er oppe og kjører når det kreves for å gjøre det.

4. Reduserte driftskostnader

Serverløs databehandling tildeler ressurser på en betal-som-du-bruk-basis. Applikasjonen din vil bare kreve backend-funksjoner når koden kjøres og skaleres automatisk basert på mengden arbeidsbelastning.

Dette gir stordriftsfordeler siden du kun blir fakturert for tiden applikasjonene kjører. I den tradisjonelle servermodellen må du betale for serverplass, databaser blant andre ressurser uavhengig av om applikasjonen kjører eller er inaktiv.

5. Raskere distribusjon av applikasjoner

Den serverløse arkitekturen eliminerer behovet for backend-konfigurasjon og manuell opplasting av kode til servere som i det tradisjonelle oppsettet. Det er enkelt for utviklere å laste opp små stabler med kode på en effektiv måte og lansere et flott produkt.

Den enkle distribusjonen lar også utviklere enkelt lappe og oppdatere visse funksjoner i koden uten å endre hele applikasjonen.

Fallgruvene ved serverløs databehandling

Er det noen ulemper forbundet med den serverløse modellen? La oss finne det ut.

1. Sikkerhet

Dårlig konfigurerte applikasjoner utgjør en av de største risikoene forbundet med serverløs databehandling. Hvis du for eksempel velger AWS, er det klokt å konfigurere ulike tillatelser for applikasjonen din, som igjen vil avgjøre hvordan de vil samhandle med andre tjenester i AWS. Der tillatelsene er vage, kan en funksjon eller en tjeneste ha flere tillatelser enn det som kreves, noe som gir god plass for sikkerhetsbrudd.

2. Leverandørlåsing

Å velge en serverløs modell kan by på utfordringer ved migrering til en annen leverandør. Dette er hovedsakelig fordi hver leverandør har sine egne funksjoner og arbeidsflyter som varierer litt fra resten.

3. Vanskeligheter med å teste og feilsøke applikasjoner

En annen utfordring som den serverløse modellen utgjør, er vanskeligheten med å reprodusere et serverløst miljø for testing og overvåking av ytelsen til kode før den går live. Dette er først og fremst fordi utviklere mangler tilgjengelighet til backend-tjenester som er forbeholdt skyleverandøren.

4. Vanskeligheter med å overvåke serverløse applikasjoner

Overvåking av serverløse applikasjoner er en kompleks oppgave av de samme grunnene som feilsøking og testing er en oppoverbakke oppgave. Dette har blitt forsterket av manglende tilgjengelighet av verktøy med integrasjon til backend-tjenester som AWS Lamba.

Konklusjon

Serverløs databehandling fortsetter å få trekkraft og opptak blant selskaper og utviklere av tre hovedårsaker. Det ene er overkommelighet som innebærer reduserte driftskostnader. For det andre letter serverløs databehandling automatisk og rask skalering, og til slutt trenger ikke utviklere å bekymre seg for den underliggende infrastrukturen som håndteres av leverandøren.

I mellomtiden jobber skyleverandører døgnet rundt for å løse noen av fallgruvene knyttet til serverløs databehandling, for eksempel problemer med å feilsøke og overvåke applikasjoner.