Development

Cloud
Architectuur

Serverless: cloudtrend 2016

Applicaties zijn eenvoudiger, sneller en goedkoper te ontwikkelen

© CC BY 2.0 - Flickr.com seier+seier
19 januari 2017

Applicaties ontwikkelen zonder je druk te hoeven maken over het beheer van de onderliggende infrastructuur, zoals servers of loadbalancers. Onafhankelijk van de schaal en het verbruik.

Dat is de belofte van ‘serverless computing’, de cloudtrend van 2016 die volgt op de evoluties van het afgelopen decennium: van fysieke hardware naar virtualisatie, IaaS- en PaaS-cloudservices. De focus bij ‘serverless’ ligt echter volledig op het ontwikkelen van functionaliteiten en niet meer op onderliggende infrastructurele afhankelijkheden.

Serverless computing is gebaseerd op het FaaS-concept: Function as a Service. Je ontwikkelt een microservice (bijvoorbeeld het schalen van een afbeelding of het verwerken van gebruikersdata) en uploadt deze naar een cloudservice, bijvoorbeeld AWS Lambda of Azure Functions. Tezamen vormen de verschillende services een logisch geheel.

Voordelen

Een serverless architectuur biedt een aantal voordelen. Zo past de architectuur van nature goed binnen een continuous delivery-aanpak om in hoog tempo aanpassingen door te voeren in onderdelen van de applicatie. Geïsoleerd laten functionaliteiten zich uiteraard eenvoudiger aanpassen dan als onderdeel van een monolitische applicatie-codebase. Daarnaast zijn – mits goed opgezet – de functies goed herbruikbaar in andere applicatieonderdelen of toepassingen.

Wat betreft de kosten van ‘serverless’: wordt de code niet aangeroepen, dan betaal je ook niets. Bijkomend voordeel: de kosten worden zeer fijnmazig – per functie -  inzichtelijk, wat nieuwe mogelijkheden biedt voor doorbelasting naar eindgebruikers.

Om rekening mee te houden: applicaties ontwikkelen op basis van serverless computing vereist kennis van functioneel programmeren, maar ook software engineers die polyglot zijn, thuis zijn in meerdere ontwikkeltalen. Dat kan – tijdelijk – een drempel vormen, maar functioneel programmeren resulteert uiteindelijk in herbruikbare, robuustere en vaak beter te doorgronden code.

Een ander aspect: de relaties tussen microservices moeten ook goed gedocumenteerd worden of via tools inzichtelijk worden gemaakt, want met een groot aantal functies kan een samenhangend begrip lastiger worden.

Lagere kosten

Is serverless daarmee de heilige graal voor alle toekomstig te ontwikkelen applicaties? Nee, zeker niet. Serverless leent zich goed voor event-driven architecturen die dynamisch van aard zijn en daardoor meeschalen met het gebruik. In situaties met extreme high-performance vereisten en/of een stabiele load is serverless niet altijd de oplossing. Echter voor veel toepassingen is serverless een prima alternatief en zijn de voordelen navenant: applicaties zijn eenvoudiger en sneller te ontwikkelen en tegen - substantieel – lagere kosten te exploiteren. Het is nu tijd om te experimenteren en je voor te bereiden op de volgende fase van moderne applicatieontwikkeling.

Reactie toevoegen
1
Reacties
Pieter 19 januari 2017 12:54

En wie garandeert de kwaliteit van deze microfuncties? Of zullen deze via bepaalde parameters alle data kunnen omleiden? Ik ben al bezig aan de functie "check_creditcard"...