hook.io in late 2014 and was shortly followed by AWS Lambda, Google Cloud Functions, Microsoft Azure Functions and many others. This means that you can upload modular pieces of functionality into the cloud that are independently executed. Imagine the possibilities this provides!
Before this, you needed to scale a monolithic REST server to handle the potential load, and now you can divide the server into several functions which can be scaled automatically and separately. That is something that blew my mind upon discovery.
However, I should also mention the differences between FaaS and PaaS (Platform As A Service) so that you could distinguish them one from another. Some serverless computing architectures don’t require the user to have any direct interaction in managing resources, and it is called Platform As A Service (PaaS).
Let me remind you that these services are very different in their implementation architecture, having some scaling implications. Most of the PaaS systems continually run at least one server process. Even with the autoscaling functionality, a few longer-running processes are merely added on the same machine which further means that the scalability is a more visible problem to developers. The FaaS systems are the place where the functions should start in milliseconds to be able to allow handling of individual requests while the PaaS systems, in contrast, gives us the idea of the application thread which keeps running for an extended time period while handling multiple requests. The mentioned difference is most visible in the pricing. While FaaS services charge per execution time of the function and PaaS services charge per running time of the thread where the server application is running.
Some of the use cases regarding the FaaS are in close connection with “on demand” functionality. This “on demand” functionality enables the supporting infrastructure to be powered down, so it won’t incur any charges while it’s not in use. Meaning you can cut your server bills drastically! Check out these cost calculators for AWS Lambda and AWS API Gateway if you don’t believe me.
Some of the examples would be the data processing ones like batch processing or stream processing, ETL. Even the IOT services for devices that are connected to the internet, mobile apps as well as the web apps.
There are various types of functions are I will briefly explain them. Since there are many potential uses for functions and support and implementation for the functions varies by the providers. Some of the most common scenarios are scheduling tasks or jobs, processing web requests or process queue messages or even running them manually. These functions can also be chained together meaning that a web request can write a queue and it can then be picked up by a different function.
If you are asking yourself “Do I need to use FaaS and will it bring positive solutions to my every day development workflow?”, you should discover more details about whether it will benefit your work or not. Like every other tool, it depends on what you need to use it for. FaaS is an excellent choice for centralization of function implementation while it also has the benefit of scaling the implementation. This further means that if you need numerous instances running at the same time, the provider will handle that for you. For more details about this and many other topics, search through our blog on our website.
All-in-all, FaaS is yet to be used to its full potential, but as for now and by what we already know, it’s a big game-changer.
We aim to improve Dashbird every day and user feedback is extremely important for that, so please let us know if you have any feedback about these improvements and new features! We would really appreciate it!
Failure detection, analytics and visibility for serverless applications in under 5 minutes.