At Platform9, we spend a lot of time evangelizing the benefits of cloud-native architectures. The dominant construct is kubernetes with serverless technology a close second. To that end, we helped publish The Gorilla Guide to Serverless on Kubernetes, written by Joep Piscaer, with some input from yours truly. You can download the full guide here.
Kubernetes is an open-source solution for automating deployment, scaling, and management of containerized applications. The business value provided by Kubernetes has been extending into the Serverless world as well. In general, Serverless and Kubernetes are a natural fit– with Kubernetes being the ideal infrastructure for running Serverless applications, because of a few key reasons.
Serverless & the main variant- FaaS – allows organizations to get very granular in application development with the ability to develop singular functions, or group those functions together to create more complex applications fast.
With serverless frameworks, organizations can get functions into production in less than one hour. By deploying these functions on Kubernetes, these functions can be deployed anywhere. The combination of serverless on Kubernetes provides the agility and acceleration that developers are looking for.
Serverless Greases the DevOps Wheel
Although at first glance serverless may seem counterintuitive for those in DevOps-culture organizations where development teams do their own operations, it really isn’t. Serverless decouples the bits that make up the runtime (language-specific environments, containers, operating systems, VMs, physical hardware, networks, storage, and so on) and the tooling in the developer’s pipeline (to build, test, and deploy code) from the actual code put in production, minimizing the operational part of the development workflow. It frees the coder from any concern about the plumbing.
This diagram more clearly shows the relationship between serverless and the underlying architecture and how this is different from other service deployment models.
This isn’t to say that operations aren’t done anymore, but rather that it’s abstracted away from the developer. The function still has to be monitored, deployed, secured, supported, scaled, and debugged; these things are still happening, but they’re merely packaged up as part of the service or platform.
While cost benefits are often cited as the major reason for using FaaS, it’s the reduction in lead time that may be the most exciting improvement. Instead of spending time on inefficiencies, product development teams can now focus more time on continuous experimentation, which will lead to more innovation and greater market advantages.
For a more in-depth and handy technical and business discussion, please download The Gorilla Guide to Serverless on Kubernetes to learn more.