PCG logo
Artikel

Server eller Server-löst i Cloud Computing

Illustration of office workers and computer screen with paper clouds hanging above them | Miracle Mill

Om du har umgåtts med mjukvaruutvecklare de senaste åren (eller kanske bara råkat hamna i en av de nördigare delarna av stan) kan du ha hört entusiastiskt prat om "serverless". Det kan väl vara uppenbart att detta är något som inte involverar servrar, men vad exakt är serverless? Serverless restauranger? Serverless banker? Du är förlåten om du tror det sistnämnda, men uppenbarligen pratar de om serverless-apputveckling, och det är vad vissa människor kallar en revolution inom mjukvaruproduktionen.

Redhat beskriver serverless computing som "en molnbaserad utvecklingsmodell som möjliggör att bygga och köra applikationer utan att behöva befatta sig med servrar." Man märker direkt motsättningen i termen: serverless betyder alltså inte att det inte finns några servrar överhuvudtaget. Istället är servrarna inte längre utvecklarnas eller kundernas ansvar, utan allt tas hand om av molnleverantören.

En mycket kort sammanfattning av serverbaserad utveckling

Traditionell mjukvaruproduktion innebär ofta ett rum fullt av datorer och kablar där dina mjukvarufiler och kanske din webbplats bor. Användare och utvecklare är anslutna till dessa servrar antingen via kablar eller genom ett trådlöst nätverk, nöjda i vetskapen om att vad de arbetar med finns i rummet bredvid inom det säkra lokala nätverket.

Majoriteten av molncomputing-tjänster försöker efterlikna denna modell genom att ha lagring och servrar som fungerar på liknande sätt för slutanvändaren, men själva datan finns istället någon annanstans på internet - kanske till och med utspridd på många olika platser.

Att arbeta i molnet på detta sätt innebär en rad nya möjligheter och utmaningar, men begreppen om enheter, filer och arkiv är i princip desamma. Om du hyr en virtuell server, är detta precis vad du får. Du kan möjligtvis göra den större eller mindre, vilket kräver att du stoppar servern, justerar den, och sedan startar igen. En server förblir dock en server tills du stänger ner den.

Serverless, som språkgrodan kallas, är en helt annan sak.

Toys in the shape of a monkey in the sky

Fördelar med serverless

Beskrivningen frånCloud NativeComputing Foundations Serverless Working Group är en perfekt sammanfattning:

"Serverless computing betyder inte att vi inte längre använder servrar för att förvara och köra kod; eller att driftsingenjörer inte längre behövs. Det syftaristället på idén att användare av serverless computing inte längre behöver lägga tid och resurser på serverprovisionering, underhåll, uppdateringar, skalning och kapacitetsplanering. Alla dessa uppgifter och funktioner hanteras av en serverless plattform och abstraheras helt från utvecklare och IT/driftsteam. Resultatet blir att utvecklarnakan fokuserapå sin applikations affärslogik."

Som utvecklare kan serverless metodiken göra det möjligt att minimera arbete med hantering av servrar, infrastruktur och delar av applikationen som inte tillför mycket värde för dina kunder. Serverless kan göra det lättare att leverera nya funktioner i applikationer, starta experiment och även förbättra ditt teams leveranshastighet. Samtidigt erbjuder den en kostnadsmodell där man betalar efter värde.

Vad det gäller affärsmålen sammanfattar vår egen artikel "5 fördelar med att bygga serverless applikationer" de viktigaste poängerna enligt följande:

  • Gå snabbare från idé till marknad.
  • Sänk dina kostnader.
  • Skapabättre applikationer, lättare.
  • Bättreskalbarhet.
  • Högtillgänglighet.

Dessapunkter är tagna från centrala principer om strömlinjeformning och förenklingar av processer. Som Jason Katzer förklarar i Learning Serverless (O'Reilly, 2020), "Du behöver inte en specifik anledning att använda serverless, men här är några exempel på egenskaper i arbetet du vill utföra som kommer att ha minst friktion och mest nytta när du använder serverless:

  1. Arbetsuppgifter som kan brytas ned i små oberoende delar.
  2. Uppgifter som antingen har oregelbundna eller oförutsägbara användningsmönster.
  3. Bakgrundsuppgifter eller system-till-system-kommunikation som inte påverkas av kallstarter.”
working environment with clouds hanging from the ceiling

Nackdelar med serverless

Den ovanstående hänvisningen till "kallstarter" ger en vink om att det finns situationer där serverless-modellen kanske inte är helt lämplig. Katzer förklarar vidare att "Serverless kommer inte att tjäna dig bäst när:

  1. Uppgifterna är beräkningsintensiva.
  2. Uppgifterna har en lång körningstid som inte kan brytas ned i mindre delar.
  3. Du behöver ytterligare funktioner som för närvarande inte stöds av molnleverantörerna.

Tekniska begränsningar

Även om den här artikelninte kan ta upp alla tekniska begränsningar i detalj kan följande exempel ge en uppfattning om problemen och deras potentiella lösningar.

  1. Kallstarter. En direkt konsekvens av att du bara betalar för det du använder, och att tjänsteleveransen expanderar och krymper med efterfrågan, är att serverlösa applikationer kan uppleva något liknande till att starta bilen en kylig morgon. Det kan ta tid för en funktion att starta upp nödvändiga resurser vid första körningen. Det är inte riktigt så att det tar lång tid (snarare extra millisekunder), men vissa operationer som kräver en väldigt snabb respons kan påverkas. I andra fall har detta ingen betydelse.
  2. Beräkningstidsgränser. Serverlösa plattformar tillämpar vanligtvis en gräns för hur länge beräkningsoperationer kan pågå, något som förändras med tiden. Det bästa sättet att lösa eventuella problem här är att bryta ner arbetet i mindre bitar och att designa med serverless i åtanke.
  3. Nätverksproblem. I vissa specifika fall måste du ta beslut om driften av ett Virtuellt Privat Moln. Det kan vara så att serverless inte är lämpligt i dessa fall. Det är inte vanligt, men det är värt att vara medveten om.
  4. Felsökning. Vissa utvecklare är relativt knutna till de mer sofistikerade formerna av felsökning som finns i de mer traditionella plattformarna, och de kan bli frustrerade med fel förekomster i serverless miljön. Verktygen utvecklas dock snabbt för att kompensera för detta tillkortakommande, och med en större betoning på bra arkitektur blir också detta ett mindreproblem.

Organisatoriska bekymmer

Det är inte alla potentiella problem som är strikt tekniskaoch därför kan lösningarna vara förändringar i organisation och tillvägagångssätt, såväl som i teknik:

  1. Leverantörsberoende. Om du börjar utforma ditt produktionssystem runt Amazon Web Services eller Microsoft Azure kan du bli orolig att du fastnar med dem. På kort sikt kan du ha rätt, men det är inte mer så än med något annat proprietärsystem som du kanske använder. På vissa sätt kan den ökade betydelsen av god arkitektur också innebära att du på lång sikt faktiskt är mindre begränsad eftersom du förstår dina applikationer bättre och det konceptuella tänkandet kan överföras till andra ställen - även till framtida tjänsteerbjudanden som ännu inte finns!
  2. Potential att det blir dyrare. Ja, det är sant att om du gör fel kan du få betala mer än du skule ha gjort med en serverbaserad uppsättning, och det gör ont när en av de vanligaste anledningarna för en övergång är att minska kostnaderna. En dåligt skriven funktion kan teoretiskt sett dra upp ”användningen”i ditt betala-för-vad-du-använder-konto innan du inser vad som har hänt. Lyckligtvis finns det verktyg för att hindra detta från att hända, och AWS tillhandahåller olika typer av hjälp så att man håller sig inom budgeten och förhindrar kostsamma misstag.
  3. Tillgänglighet av utvecklare. En fara med framgångar med serverless är att efterfrågan ibland kan överskrida tillgången av utvecklare med rätt kompetens för det nya arbetssättet. Vi håller till en viss del med om detta eftersom vi själva har anställt flera av dem! Trots detta kommer den ökade populariteten leda till en stadig tillväxt i antalet kurser och utexaminerade utvecklare som finns tillgängliga. Genom att ansluta dig tidigt kommer du att lägga dig i en bättre position för att rekrytera effektivt i framtiden.

Slutsatser

Efter att ha tittat på några för- och nackdelar med serverless computing borde du nu ha en bättre förståelse för vad det kan göra för ditt företag och när det kanske inte passar. Nästa väsentliga steg i en övergång är att forska vidare och få en bra förståelse för dina egna organisatoriska och tekniska krav. Att ha en tydlig arkitektur och en vilja att ompröva dina tillvägagångssätt kan lösa många problem innan de ens uppstår.

På internet finns en mängd information och potentiella källor till hjälp som handlar om serverless, från Reddit-grupper och YouTube-videos, till mer specifika resurser som serverless-sektionen på Amazon Web Services. Ett av våra viktigaste områden av expertis här på PCG är förstås att hjälpa företag med övergången till serverless och se till att lösningen blir den bästa möjliga.

Vill du veta vad serverless kan betyda för dig?

Hur du får i gång din applikation på nolltid, sänker dina kostnader och slipper oroa dig för skalbarhet eller tillgängligheten av din applikation. Kontakta oss och låt oss visa!


Använda tjänster

Läs mer

Artikel
5 enkla sätt molnberäkning kan hjälpa ditt företag

Automatiserade backuppar

Läs mer
Artikel
För- och nackdelar med Cloud Computing

Molnet och dess många fördelar är ett populärt samtalsämne, men vilka är några av fördelarna? Låt oss vägleda dig genom några av för- och nackdelarna, så att du kan fatta bättre och mer välgrundade beslut.

Läs mer
Artikel
En Test-Driven Development metodik

Test-driven development är en väl etablerad mjukvarudesignpraxis för mjukvaruutveckling. Att skriva testet innan koden kan verka konstigt, men det är mycket effektivt.

Läs mer
Fallstudie
Telekommunikationer
Serverless
Cost Management
Använd AWS Lambda för att driva en serverlös plattform för händelsehantering

Vad är Festyvent? Festyvent arbetar nära evenemangsarrangörer för att hitta nya sätt att engagera publiken genom unika digitala upplevelser och dataanalys. Denna webb- och mobilapp skapar mycket anpassade appar för liveevenemang. Appen tillåter evenemangsarrangörer att märka sitt evenemang och spåra sin publik. Appanvändare kan delta i digitala upplevelser skräddarsydda för dem.

Läs mer
Se allt

Låt oss jobba tillsammans

United Kingdom
Arrow Down