Besluiten of serverloze computing aansluit op uw bedrijfsbehoeften

Voltooid

Als u wilt bepalen of serverloze computing wel of niet geschikt is voor u, moet u eerst weten wat serverloos eigenlijk is.

Wat is serverloze computing?

Serverloze computing kunt u zien als een Function as a Service (FaaS) of een microservice die wordt gehost op een cloudplatform. Uw zakelijke logica wordt uitgevoerd als functie en u hoeft niet handmatig de infrastructuur in te richten of te schalen. De cloudprovider beheert de infrastructuur. Uw app wordt automatisch uitgeschaald of omlaag geschaald, afhankelijk van de belasting. Azure biedt verschillende manieren om dit type architectuur op te zetten. De twee meest voorkomende benaderingen zijn Azure Logic Apps en Azure Functions. Dit is de focus van deze module.

Wat is Azure Functions?

Azure Functions is een serverloos toepassingsplatform. Hiermee kunnen ontwikkelaars bedrijfslogica hosten die kan worden uitgevoerd zonder infrastructuur in te richten. Azure Functions biedt intrinsieke schaalbaarheid en er worden alleen kosten in rekening gebracht voor de gebruikte resources. U kunt uw functiecode schrijven in de taal van uw keuze, waaronder C#, Java, JavaScript, Python en PowerShell. Ondersteuning voor pakketbeheerders, zoals NuGet en npm, is ook inbegrepen, zodat u populaire bibliotheken in uw bedrijfslogica kunt gebruiken.

Voordelen van een serverloze computingoplossing

Serverloze computing is een goede optie voor het hosten van bedrijfslogica in de cloud. Met serverloze producten als Azure Functions kunt u uw bedrijfslogica in de taal van uw keuze schrijven. U krijgt automatisch schalen, u hebt geen servers om te beheren en er worden kosten in rekening gebracht op basis van wat wordt gebruikt, niet op gereserveerde tijd. Hier volgen enkele andere kenmerken van een serverloze oplossing die u kunt overwegen.

Voorkomt overbezetting van infrastructuur

Stel dat u virtuele-machineservers (VM)-servers hebt ingericht en deze hebt geconfigureerd met voldoende resources om uw piekbelastingstijden te verwerken. Wanneer de belasting licht is, betaalt u mogelijk voor infrastructuur die u niet gebruikt. Serverloze computing lost dit probleem van toewijzing op door automatisch omhoog of omlaag te schalen. Er worden alleen kosten in rekening gebracht als met uw functie daadwerkelijk taken worden verwerkt.

Staatloze logica

Staatloze functies zijn goede kandidaten voor serverloze computing, omdat functie-exemplaren op aanvraag worden gemaakt en verwijderd. Als een staat noodzakelijk is, kan deze worden opgeslagen in de gekoppelde opslagservice.

Gebeurtenisgestuurd

Functies zijn gebeurtenisgestuurd. Ze worden alleen uitgevoerd als reactie op een gebeurtenis (een 'trigger' genoemd), zoals het ontvangen van een HTTP-aanvraag of een bericht dat wordt toegevoegd aan een wachtrij. U configureert een trigger als onderdeel van de functiedefinitie. Deze benadering vereenvoudigt uw code doordat u kunt aangeven waar de gegevens vandaan komen (trigger/invoerbinding) en waar ze naartoe gaan (uitvoerbinding). U hoeft geen code te schrijven om wachtrijen, blobs, hubs enzovoort te bekijken. U kunt zich helemaal richten op de bedrijfslogica.

Functies kunnen worden gebruikt in traditionele rekenomgevingen

Functies zijn een belangrijk onderdeel van serverloze computing, maar ze zijn ook een algemeen rekenplatform voor het uitvoeren van elk type code. Als de behoeften van uw app veranderen, kunt u uw project meenemen en implementeren in een niet-serverloze omgeving. Dit biedt u de flexibiliteit om schaalaanpassing te beheren, uit te voeren op virtuele netwerken en zelfs uw functies volledig te isoleren.

Nadelen van een serverloze computingoplossing

Serverloze compute, zoals geleverd door Azure Functions in het verbruiksabonnement, is niet altijd de juiste oplossing voor het hosten van uw bedrijfslogica. Hier is een aantal kenmerken van functies die van invloed kunnen zijn op uw beslissing om uw services te hosten met serverloze computing.

Uitvoeringstijd

Functies hebben standaard een time-out van vijf (5) minuten. Deze time-out kan worden ingesteld op maximaal 10 minuten. Als het uitvoeren van uw functie meer dan 10 minuten duurt, kunt u die beter op een VM hosten. Daarnaast geldt dat de time-out is beperkt tot 2,5 minuut als uw service wordt gestart door een HTTP-aanvraag en u die waarde verwacht als HTTP-antwoord. Er is echter ook een optie genaamd Durable Functions waarmee u de uitvoeringen van meerdere functies zonder time-out kunt organiseren.

Uitvoeringsfrequentie

Een ander kenmerk is uitvoeringsfrequentie. Als u verwacht dat clients uw functie continu uitvoeren, is het verstandig om het gebruik te schatten en de kosten voor het gebruik van functies dienovereenkomstig te berekenen. Het is mogelijk voordeliger om uw service op een VM te hosten.

Wanneer uw functie wordt geschaald, kan er slechts één exemplaar van de functie-app elke 10 seconden worden gemaakt voor maximaal 200 exemplaren. Houd er rekening mee dat elk exemplaar meerdere gelijktijdige uitvoeringen kan verwerken, dus er is geen limiet ingesteld voor hoeveel verkeer één exemplaar kan verwerken. Verschillende triggers hebben verschillende schaalvereisten. Onderzoek daarom uw gekozen trigger en de bijbehorende limieten.