What is Function-as-a-Service (FaaS)?
Deepak Maheshwari
Principal Solution Architect | Engagement Manager | Cloud Business Leader | Gen AI | Trusted Advisor | Blogger | Angel Investor at Capgemini
Introduction
In today’s world, almost all the capabilities are being described using the “as a service” model. It all started with Infrastructure as a service “IaaS”, Wand now it has expanded in various areas, few examples are database as a service, testing as a service, security as a service, storage as a service, business as a service likewise “Function-as-a-Service (FaaS)” is very popular these days due to adoption of cloud. As per Research and Markets report — the Global “Function-As-A-Service” market is expected to grow from USD 8.59 Billion (2022 market) to USD 20.96 Billion by 2026.
In this article, I am going discussion about FaaS Model but before we take deeper dive into FaaS, let’s understand “serverless architecture”. Serverless architecture is a way to develop, build and run applications without worrying about infrastructure management. The application or database or services still runs on servers but maintenance, provisioning, and scaling are managed by cloud providers.
FaaS allows the execution of a modular piece of code in a serverless manner in most languages such as Java, Python, and Node. The code can be updated or written on the fly. FaaS helps developer to focus on writing business logic while serverless providers take care of executing the code on runtimes and servers. This reduces overhead for developers and enables time to focus on solving business problems that are scalable, reliable, and resilient. Also, FaaS billing is based on real consumption, not on the declared resources needs, therefore it is based “pay per compute usage” model.?
Serverless and FaaS are often interchangeably used with one another but the truth is that FaaS is actually a subset of serverless. Serverless can include Compute, Storage, Database, and other services but FaaS is limited to application code executed on certain events.
Let’s understand FaaS evolution -?
Software development has progressively enabled levels of abstraction, from physical servers to virtualization to OS / Middleware to runtime to containers to functions, thereby increasing the focus more and more on the code to be written and less and less on the infrastructure to be implemented. Also, as we moved from Hardware to Function, the time to market for any software product has reduced from months to milliseconds. The figure below highlights this trend.
If we take a deeper dive to understand the history based on the above diagram then the following 6 steps should provide enough background around FaaS evolution:?
If we combine the above two points then it shows the emergence of “Infrastructure as a service (IaaS)” AWS Cloud offering which changed the entire dimension of running applications on-prem. It has improved to time to market from months/weeks to hours/minutes.?
3. Operating System / Middleware: This is the core piece that helps in running the actual program.?
4. Runtime: Responsible for execution of the program (for example, Java Runtime)
Now, if we combine capabilities for all above points then it results into “Platform-as-a-service (PaaS)” model. This helps in improving time to market from minutes to seconds and users don't have to worry about hardware, virtualization, OS and runtime, etc.?
5. Application: This layer is considered as “Software-as-a-service (SaaS)”. SaaS enables cloud-hosted, ready-to-use application software. Users pay a monthly or annual fee to use complete applications or modules based on the licensing cost and agreements.?
6. Function: This is the highest level of abstraction where developers don't have to worry about anything except writing their business logic. For example, if a developer is writing stock market comparisons then that’s the only piece of work required by the developer, and the rest of the overhead is managed by the cloud provider. Also, time to market and provision time is in milliseconds.?
领英推荐
How FaaS is utilized in various?Clouds?
The below picture depicts various FaaS services which are provided by Cloud Providers. Based on this, you can imagine the power which FaaS brings to the table.
What are the Benefits of using?FaaS?
Challenges with?FaaS
Below are the keys challenges in the implementation and maintenance of FaaS solutions?:?
FaaS principles and best practices
There are several best practices you can follow to design FaaS easier to design, deploy, and manage in a more effective and cost-efficient way. A few of the important ones are mentioned below:
What are the use cases for?FaaS?
FaaS is much more expensive than a typical IaaS cloud service, so the use cases need to be considered appropriately otherwise it can become prohibitively expensive. Few are the use cases are mentioned below:
Conclusion
FaaS is an innovative and game-changing technology for some, but it won’t work for everyone. With FaaS, developers have no need to get into the server side of things, and the developers can focus on the coding part of the application, which is a good thing. Also, if users follow the best practices in FaaS implementation then it helps applications to design, deploy, and manage in a more effective and cost-efficient way. Common FaaS vendors include IBM Cloud Functions, AWS Lambda, Alibaba Cloud, Google Cloud Functions, and Microsoft Azure Functions.
At last, even if you are new to FaaS but this market is expected to grow up to USD 20.96 Billion by 2026, so there is never a better time to learn about this market.?
Data & AI Solution Architect || AWS Certified SAA || Azure AZ900 || Big Data Specialization || Support Sales and Solution Planning ||ITIL Foundation, SO, Transition Certified
1 年Very useful article and well described. Thank you for sharing.
Strategic Technology Architect + Advisor
1 年This is a fascinating read. My immediate question is: If many organizations today do not have the capability to think at a level of abstraction needed to fully conceptualize - let alone leverage - SaaS, what is the path to achieving yet a higher level of abstraction and potential complexity? I’m finding there is a limit to the level of abstract thinking that enterprises are capable of.