First of all, what is function as a service? If you’re at all involved with IT architecture or the cloud in any capacity, then you’ve certainly heard of software as a service; the function variant is simply more comprehensive and refers to an entire suite of services not limited to software.
In today’s tech and business spheres – although the two are becoming almost indistinguishable – cloud computing is changing the game completely. From giving companies the ability to deploy apps nearly instantly, and with a wider reach, to the greater ease-of-function and lower costs that come with economies of scale. For more in-depth info on function as a service (FaaS) in particular, check out https://stackify.com/function-as-a-service-serverless-architecture/.
FaaS, at its core, frees you of the capital, time and expertise needed to manage the servers that host your actions, services and other functions that you’re trying to get to the consumer. It represents a total abstraction of servers away from your in-house developers so that they can focus on other things.
In fact, you can look at it as a form of outsourcing via the cloud; with the added benefit that your entire offered services are immediately scalable since the infrastructure already exists within the massive cloud architecture of the hosting company. This instantaneity refers only to event-driven services, of course.
Another benefit of FaaS is that how much you pay for it depends on your consumption and the number of actions/executions; usually, if you had to host and deliver your own applications, this would be much more costly as a result of the size of the server and the resources needed to maintain it.
Does this mean that every function is tailor-made for the FaaS delivery system? Not necessarily – as a general rule, high volume transactions tend to be a good fit for serverless architectures. Scheduled tasks and other activities that you anticipate would benefit from scaling.
For actions that you need to be performed infrequently or at sporadic intervals, FaaS may not be worth the cost – given that the servers are online and ready to work around-the-clock, and the pay reflects this. While still much costly than having your own in-house servers, it’s not worthwhile to pay for something you’ll only need once in a blue moon.
Of course, there are setups where you pay just what you use, which means that the FaaS service is event-driven. Thus, you can employ it to run web calls by assigning the request to a queue with one line of code, and then have another function perform a different action on the first one. This represents two events, and it doesn’t matter what resources are needed to effect them – or, rather, this isn’t reflected in your cost.
Evolution of FaaS
Although function as a service stands poised to dominate because of the serverless aspect, and the cost benefits it confers to the business, there are still aspects that need to be ironed out. Currently, monitoring the speed and resource-intensity of your applications is no small feat, since you don’t own the servers, and can’t install any monitoring software on them. Time will, effectively, tell whether it can be developed well enough to address these concerns.