Why containers?
Much like ransomware, it’s not a matter of if but when. Containers usage continues to rise in enterprises. And, according to initial data from Evaluator Group’s “Spring 2021 Hybrid Cloud Study," they noted 29% of enterprises are using Kubernetes in a production environment today with another 40% testing Kubernetes with plans to go to production. What’s driving the interest in containers?
Containers are another type of virtualization, and Docker is the most popular container platform. Containers are a specialized environment in which applications can be deployed easily. Containers can be considered as lightweight virtual machines (VMs). VMs contain an operating system (OS) copy and containers share the underlying OS, and each of them contains only the required files/images and application files needed by the application to run in a container. Many containers running on a single VM take up far fewer resources than the same number of VMs running elsewhere. Containers are typically designed to serve an application such as a database or an API server or load balancer. When multiple applications need to communicate with each other, they need to be able to interact with each other separately over the network. This allows for a true scale-out architecture for applications and helps make them both resilient and available.
Do containers need backup?
Containers can run in an environment where the state of applications may or may not need to be preserved which we call stateful or stateless container applications. If the container does not need to have its running state backed up, it is considered running as a stateless application. This means there is no data stored by these applications running in the container. It is running an instance of a container image. In the eventuality the new container with the application image needs to be brought up easily, it can by the container orchestration engine Kubernetes.
Kubernetes is a container orchestrator engine and controls the life cycle of containers.
This adds high availability into every part of the container infrastructure. This also means containers can be created and deleted as needed by any workload. Unfortunately, many confuse this high availability with the ability to recover from a disaster. With application modernization on the rise, developers realize the microservices architecture simplified by containers can be expanded to stateful applications as well. This helps organizations accelerate the development cycle and deliver applications faster.
In stateful applications running in a Kubernetes cluster the following questions/scenarios need to be considered:
- Is high availability built into Kubernetes enough to recover the data of stateful applications running within containers?
- Can I recover from human error of deploying an incorrect config file when applications need to be moved from a TEST/DEV environment to production, or from production to staging before an upgrade?
- Can I bring up application copy for TEST/DEV to reproduce, analyze problems that cannot be run from production data?
If you are unsure of any of the answers to these questions, then you need to look at your backup and DR strategy.
In the next blog in this series, we’ll take a look at what data you’ll need to backup and how you can backup containers using HYCU.