Avgör om serverlös databehandling passar din verksamhet

Slutförd

För att avgöra om serverlös databehandling passar för dig ska vi först lära oss vad serverlös handlar om.

Vad är serverlös beräkning?

Serverlös beräkning kan betraktas som en funktion som en tjänst (FaaS) eller en mikrotjänst som hanteras på en molnplattform. Din affärslogik körs som funktioner och du behöver inte etablera eller skala infrastruktur manuellt. Molnleverantören hanterar infrastrukturen. Din app skalas automatiskt ut eller ned beroende på belastningen. Azure har flera sätt att skapa den här typen av arkitektur. De två vanligaste metoderna är Azure Logic Apps och Azure Functions, som är i fokus för den här modulen.

Vad är Azure Functions?

Azure Functions är en serverlös programplattform. Det gör det möjligt för utvecklare att vara värdar för affärslogik som kan köras utan att etablera infrastruktur. Azure Functions ger inbyggd skalbarhet och du debiteras endast för de resurser som används. Du kan skriva din funktionskod på valfritt språk, inklusive C#, Java, JavaScript, Python och PowerShell. Stöd för pakethanterare som NuGet och npm ingår också, så du kan använda populära bibliotek i din affärslogik.

Fördelar med en serverlös beräkningslösning

Serverlös beräkning är ett bra alternativ för att lagra kod för affärslogik i molnet. Med serverlösa erbjudanden, till exempel Azure Functions, kan du skriva affärslogiken på det språk du föredrar. Du får automatisk skalning, du har inga servrar att hantera och du debiteras baserat på vad som används – inte på reserverad tid. Här följer några andra egenskaper för en serverlös lösning som du kan överväga.

Undviker överallokering av infrastruktur

Anta att du har etablerat virtuella datorservrar (VM) och konfigurerat dem med tillräckligt med resurser för att hantera dina högsta belastningstider. När belastningen är lätt betalar du eventuellt för infrastruktur som du inte använder. Serverlös databehandling löser allokeringsproblem genom att skala upp eller ned automatiskt och du debiteras bara när funktionen bearbetar arbete.

Tillståndslös logik

Tillståndslösa funktioner är bra kandidater för serverlös beräkning. funktionsinstanser skapas och förstörs på begäran. Om ett tillstånd krävs kan det lagras i en associerad lagringstjänst.

Händelsebaserad

Funktioner är händelsebaserade. De körs endast som svar på en händelse (kallas "utlösare"), till exempel att ta emot en HTTP-begäran eller ett meddelande som läggs till i en kö. Du konfigurerar en utlösare som en del av funktionsdefinitionen. Den här metoden förenklar din kod genom att låta dig deklarera var data kommer från (utlösare/indatabindning) och var den ska (utdatabindning). Du behöver inte skriva kod för att titta på köer, blobar, hubbar och så vidare. Du kan fokusera enbart på affärslogiken.

Funktioner kan användas i traditionella beräkningsmiljöer

Funktioner är en viktig komponent i serverlös databehandling, men de är också en allmän beräkningsplattform för körning av alla typer av kod. Om behoven för din app ändras kan du ta projektet och distribuera det i en miljö som inte är serverlös. Det ger dig flexibiliteten att hantera skalning, köra på virtuella nätverk och till och med helt isolera dina funktioner.

Nackdelar med en serverlös beräkningslösning

Serverlös beräkning, som tillhandahålls av Azure Functions i förbrukningsplanen, är inte alltid den lämpliga lösningen för att vara värd för din affärslogik. Här följer några funktionsegenskaper som kan påverka ditt beslut att använda värdbaserade tjänster för serverlös databehandling.

Körningstid

Som standard har funktioner en tidsgräns på fem (5) minuter. Denna tidsgräns kan konfigureras till högst 10 minuter. Om din funktion kräver mer än 10 minuter för att köras kan du lägga upp den på en virtuell dator. Om tjänsten initieras via en HTTP-begäran och du förväntar dig att det värdet ska vara ett HTTP-svar begränsas tidsgränsen ytterligare, till 2,5 minuter. Men det finns också ett alternativ med namnet Durable Functions som gör att du kan orkestrera körningarna av flera funktioner utan någon timeout.

Körningsfrekvens

En annan egenskap är körningsfrekvens. Om du förväntar dig att klienter ska köra funktionen kontinuerligt är det klokt att beräkna användningen och beräkna kostnaden för att använda funktioner i enlighet med detta. Det kan vara billigare att lagra tjänsten på en virtuell dator.

När din funktion skalar kan endast en funktionsappinstans skapas var 10:e sekund, för upp till 200 totala instanser. Tänk på att varje instans kan hantera flera samtidiga körningar, så det finns ingen inställd gräns för hur mycket trafik en enskild instans kan hantera. Olika typer av utlösare har olika skalningskrav, så du bör undersöka ditt val av utlösare och dess begränsningar.