Wat zijn de voordelen?
FaaS dus! Dat klinkt ideaal, maar wat houdt FaaS precies in? Een FaaS functie kan worden aangeroepen door middel van een event. Een event kan een HTTP request, servicebus bericht of een job trigger zijn. Een FaaS functie bestaat altijd maar uit één taak. Een voorbeeld is het verkleinen van een foto. De functie krijgt een bestand binnen, verkleint de foto en stuurt het terug. Normaliter zou je dit kunnen combineren met andere functionaliteit met betrekking tot het aanpassen van foto’s. Bij een FaaS functie gebeurt dit niet.
De voordelen van FaaS functies zijn:
- productiviteit verhoging
- kostenbesparing
- time-to-market versnellen
Zoals in de bovenstaande afbeelding te zien is neemt de cloud provider de verantwoording voor het schaalbaar hosten op zich. Dit heeft verschillende voordelen, zo hoeft een organisatie bijvoorbeeld weinig kennis te hebben over het schaalbaar hosten van functionaliteit. Voor veel organisaties is het niet mogelijk, of te duur, om een speciale operations afdeling op te zetten. Het schaalbaar hosten van de functionaliteit komt in dat geval op het bordje van de ontwikkelaar te liggen. Dit gaat ten koste van de productiviteit. Naast het inrichten van een schaalbare omgeving moet een dergelijke omgeving ook worden onderhouden, bij een FaaS oplossing draagt de cloud provider deze verantwoordelijkheid.
FaaS functies worden event-driven geschaald, dit houdt in dat je alleen betaalt op het moment dat de functie actief is getriggerd door bijvoorbeeld een HTTP request. PaaS oplossingen worden resource driven geschaald, maar om functionaliteit aan te bieden moeten er altijd resources actief zijn. Je kunt dit vergelijken met een interne softwareontwikkelafdeling waar bij drukte extra capaciteit wordt bijgeplaatst. Of het uitbesteden van softwareontwikkeling voor je organisatie. Bij een interne afdeling zijn er altijd kosten. Op het moment dat de capaciteit wordt vergroot lopen de kosten op. Wanneer de softwareontwikkeling wordt uitbesteedt, zijn er alleen kosten wanneer de externe partij wordt ingezet.
Het laatste voordeel dat ik wil noemen is de gereduceerde time-to-market van functionaliteit. Het inrichten van een schaalbare infrastructuur is een tijdrovende klus. Wanneer deze verantwoordelijkheid bij de cloud provider ligt kan functionaliteit die schaalbaar moet zijn een stuk sneller worden opgeleverd.