Over the last year, along with Kubernetes, Serverless computing platforms have acquired tremendous mindshare among the development community. As Serverless implementations begin to proliferate, I want to make the case that there are tremendous synergies to be gained by bringing both these paradigms together. Some of these benefits have been covered in previous posts.
The majority of enterprises are embarking on their DevOps journey. Scaling such processes across a large enterprise is complicated. In one of the previous posts, I discussed (please see below) FaaS may just be what frustrated developers need in terms of accelerating business application delivery.
How Fission on Kubernetes Takes FaaS & Serverless From DevOps to NoOps
While, the top motivators for using FaaS will vary from enterprise to enterprise, the top considerations should always be –
- Accelerating developer productivity & self service
- Freeing developers from runtime infrastructure considerations
- Achieving cloud independence or zero IaaS lockin
- Keeping the cost of their FaaS implementation low as usage scales exponentially
- Unified Monitoring i.e not having to re-invent monitoring just for the FaaS portion of the architecture
Kubernetes not only offers a flexible and scalable orchestration platform but also provides the hooks to handle all the enterprise integrations a real-world FaaS implementation needs. Thus, Kubernetes is a great platform for running functions.
The chief advantages of running a FaaS framework on Kubernetes is that you can support a diverse set of infrastructure – on-premise VMs/public cloud-based/ Bare Metal etc. Another big advantage is the need to not have to redo cluster management, storage integration, load balancing, networking, scheduling etc from an Operations standpoint.
Thanks to the versatility, power, and flexibility of Kubernetes – Cloud Native Architectures are now deployed in business scenarios that were previously unthinkable. This includes three specific areas – at the Edge (where customer interaction, or, device interaction takes place), in Transit ( as the data stream flows into the backend application) and at the Core (the data center). Functions perform a range of tasks such as transformation, normalization, and simple computational tasks.
The same benefits seen at the core with Serverless (low TCO, Increased Operational Efficiency, Efficient Developer Experience) become magnified when deployed on Kubernetes.