Function as a Service
Last updated
Last updated
FaaS is a relatively new concept that was first made available in 2014 by hook.io and is now implemented in services such as AWS Lambda, Google Cloud Functions, IBM OpenWhisk and Microsoft Azure Functions. It provides a means to achieve the serverless dream allowing developers to execute code in response to events without building out or maintaining a complex infrastructure. What this means is that you can simply upload modular chunks of functionality into the cloud that are executed independently. Imagine the possibilities! Instead of scaling a monolithic REST server to handle potential load, you can now split the server into a bunch of functions which can be scaled automatically and independently. If you’re familiar with microservices, this image might make you feel
).
As an illustration, here’s all the code you would need to deploy a fully scalable and useable function to the cloud.
FaaS Advantages
Fewer developer logistics — server infrastructure management is handled by someone else.
More time focused on writing code / app specific logic — higher developer velocity.
Inherently scalable. Rather than scaling your entire application you can scale your functions automatically and independently with usage.
Never pay for idle resources.
Built in availability and fault tolerance.
Business logic is necessarily modular and conform to minimal shippable unit sizes.
Existing FaaS providers
Microsoft/Azure Functions — https://azure.microsoft.com/en-us/services/functions/
Tooling, bindings & triggers
Logic apps — visual designer with 25+ connectors and function orchestration
Event grid
Local debugging
AWS Lambda Functions — https://aws.amazon.com/lambda/
Functions, APIs, Tables
Google Cloud Functions / Firebase — https://cloud.google.com/functions/
Cloud storage, Cloud pub/sub, HTTPS, Stackdriver logs
Tracing & debugging in production
Firebase provides realtime DB, analytics, additional event triggers
IBM Cloud Functions — https://console.bluemix.net/openwhisk/