In a previously published article, we delivered a primer on Serverless Computing. Peoples often ask what Is Function-as-a-Service (FaaS) and we think that this topic needs some detailed discussion. This article discusses what FaaS is; it’s principles, types, benefits and of course the limitations. For a complete newbie to the world of cloud computing and cloud computing service models, theat article should be better read before reading this article.
What Is Function-as-a-Service (FaaS) : Towards Definition
Function-as-a-Service (also written as Function as a service) or FaaS is another Cloud Computing Service Model. Sometimes people describes Function as a service and Serverless Computing as same thing. At the moment the concept of Serverless Computing started, it has not much difference with current FaaS. Serverless Computing is technically misnomer as nothing can run without a server. However, the terminology Serverless Computing is intended to be for te end consumers as just a type of service. Serverless computing is more as a marketing term than a technical term
Function-as-a-Service (FaaS) and Serverless Computing practically targeted to decrease the work of provisioning and server management for the developers. Of course the idea is not new – PaaS and PaaS variants like APaaS, iPaaS variants has the similar psychology for the end user but all of them have some limitations. Exactly like what expected from PaaS for the developers, FaaS can leverage an individual developer’s work quite smoothly as it can give service only only to test or deploy a function, action, or snippet which can get executed within milliseconds.
What Are The Principles of Function-as-a-Service (FaaS)?
Ofcourse, the characteristics of cloud computing – Self-assignment, Scalability, Reliability, Fault tolerance, Consolidation, Efficiency, Quality assurance etc are constant. Extra are –
- Abstraction of backend from the user
- Consumption-execution based billing
- Event driven service
- Highly scalable
Microservice Architecture And Function-as-a-Service (FaaS)
In a microservice architecture, solutions provided by a system are divided into tiny sized service applications instead of monolithic, larger services with complex APIs. For example, to build an e-commerce back end one can build a service that will have an API with all the necessary functionality from payment processing to shipment tracking. One can also approach the same problem by designing several micro-sized services, such as an authentication/authorization service, a payment service, an inventory service, etc. By dividing modules in a huge service into separate services, one have a system architecture with independently-scalable components that are running as separate services.
Function-as-a-Service (FaaS) refers to a system where deployment of a software service is done on a cloud platform, where the p who develop and deploy a service are not really interested around the underlying infrastructure. This was actually what many of the cloud services are. With serverless computing, cloud providers are selling developers a more homogeneous computing platform where developers purchase computing power instead of the individual servers. Most of the time developers do not have the best experience and knowledge on deployment. Their expensive work hours should also be spent on development, not deployment. As these cloud offerings become more and more uniform, deployment of software becomes much easier. Deployment is something that works best when automated. Serverless computing and microservices architecture, microservices architecture allows small teams of developers to focus on separate services, each providing a specific task, and serverless computing helps them get these microservices up and running with the least effort.
What Are The Types Of Function-as-a-Service (FaaS)?
In very short, in Function-as-a-Service (FaaS) the developer can executes code using only the precise amount of compute resources needed to complete the task without calculating and tweaking the settings of operating system or packages (like we need to do with php.ini file). When a pre-defined event occurs, that triggers the platform to execute the task. So, Function-as-a-Service (FaaS) is event-driven. Hence, to classify, it depends on the user scenario classified by the provider for the sake of billing :
- Scheduled task type
- Web request processing type
- Messages processing type
- Full controlled manual service
Benefits of Function-as-a-Service (FaaS)
It is too big topic, in very short to the end user it should be cost effective and free of backend maintenance headaches. Most PaaS applications are not towards bringing the entire application scale up and down for every request, whereas Function-as-a-Service (FaaS) does this.
Limitations of Function-as-a-Service (FaaS)
Ofcourse there can be indirect hidden costs in using a serverless approach when creating an entire back-end based on Function-as-a-Service (FaaS). Normally we can guess, monitor and match the increase of resource usage from server’s other monitoring tools to exclude bug and various types of malicious activities.