In the previous article of this series, we talked to the major players of the Kubernetes space to understand how they define stateful workloads. In this article, we focus on the benefits of stateful workloads.
It’s not a stateful vs stateless debate. Both are needed; they solve different problems. It’s like comparing cars with airplanes. Wouldn’t you love your car to be able to fly so you could escape rush hour? That’s exactly what containerizing stateful apps do to them.
“Containerized Stateful apps benefit from the agility to drive faster business results, reduction in hardware and administrative costs due to consolidation and ease of management and last but not the least, can future-proof the infrastructure/apps for a multi-cloud world,” said Radhesh Menon, CMO of Robin Systems.
One of the biggest benefits of containers is better resource management that reduces costs. Containerized applications provide access to computing resources at lower costs and higher performance than previous technologies such as virtualization. You can now manage your stateful workloads with Kubernetes, just the way you would manage your stateless apps.
“Containerized applications are portable across any cloud environment (private or public), so they provide future-proofed flexibility about where to run a stateful application. And finally, they inherit all the automation, security and policy-management that come from container platforms running Kubernetes, so operational teams can deliver those stateful applications more consistently,” explained Brian Gracely, Director, Product Strategy, OpenShift at Red Hat.
It actually makes more technical and business sense to containerize existing stateful apps. The teams are already using containers for a majority of their business applications. Containerizing stateful apps help bring everything to the same fold.
“As teams adopt containers for improved agility, they want to realize these benefits across all of their applications, both stateless and stateful, and use a common operational model across both,” said Bob Quillin, Vice President, Oracle Cloud Developer Relations.
Companies like Robin Systems are already offering solutions that help customers containerize their existing stateful apps. Suddenly the teams are able to bring all benefits of stateless applications to stateful apps.
So what exact benefits are these? Wendy Cartee, Senior Director, Cloud-Native Apps Advocacy of VMware points out the advantages of containerized stateful apps:
- Flexible deployment and upgrade – Leverage built-in Kubernetes capabilities for application scaling and upgrade, an organization can increase deployment replicas during busy periods, and reduce load when not needed. Organizations can also leverage Kubernetes built-in upgrade capabilities such as canary, blue-green or rolling upgrade to deliver new features while maintaining application SLA.
- Improved business availability – containerized apps improves fault isolation and are distributed in nature, deployed across multiple servers. Failure of one server or POD will not impact the entire application. Failed POD will be rescheduled by Kubernetes automatically, without manual intervention.
- Faster time to market leveraging– once you split a large monolithic application into a small set of stateful services, each running on its own by communicating with each other through API,you can make changes to any service without impacting the operational status of another. With containerized stateful apps, you can deliver features frequently and incrementally without affecting the running application.
Andreas Jaeger, Product Manager at SUSE believes that business benefits for containerized stateful apps are the same as they are for containerization of any other apps. “Their portability, small size, and fast startup times make containers ideal for application developers to use – they help accelerate the dev/test process, which involves the use of multiple different environments and many, many test deployments,” he said.
Operators also benefit from containerized stateful apps. “Containers can dramatically improve resource utilization, and facilitate more rapid application scaling and recovery. Container portability also allows operators to leverage ‘the right resource for the job’ more easily – containers can be moved across bare metal, private or public cloud infrastructure,” Jaeger said.
Everything is not rosy. There are many challenges for containerizing stateful apps. Refactoring or rewriting existing apps from scratch is expensive and time-consuming. While companies like Robin Systems do offer solutions which don’t need any such refactoring, some challenges remain. But the benefits overweigh any such challenges. In the final article of the series, we will discuss these challenges and solutions available to enterprise customers.