A survey conducted by Robin Systems revealed that more than 3 out of 4 IT decision makers are interested in running stateful applications like databases inside containers. The two motivations behind this interest are workload consolidation and better performance, with an 80 percent planned increase in container adoption.
Stateful applications include databases and Big Data applications like Hadoop and Spark. The survey results revealed that 60% organizations running stateful applications are using LXC/LXD and around 38% have adopted Docker.
For stateful applications like databases, it is important that the data be consistent. The PID 1 signaling problem in Docker that is addressed by third-party solutions might lead to inconsistent application state. There are other solutions too but none that are part of Docker itself. On being asked if this could be a deterrent for running data centric apps inside Docker containers, Robin Systems’ CMO Sushil Kumar explained that:
There are two types of containers - application containers, such as Docker, are designed to run a single process or service and therefore do not include background services like init. System containers, such as LXC and LXD, on the other hand are essentially lightweight VMs that not only include the init system, but also have their own hostname and IP addresses that you can SSH into, and pretty much manage like VMs.
The survey results indicate that system containers are the more prevalent container technology that’s being used to run data applications.
In traditional setups of database servers (both RDBMS and NoSQL), scalability is sometimes achieved by throwing more resources (CPU and memory) at it. Moving databases to a containerized environment makes adding CPU and memory easier to manage, according to Kumar, and he adds “that is exactly why containers are the natural platform for running data applications.”
The most popular storage backend for containers was reported to be AWS Elastic Block Storage (EBS) at 30%. This implies that cloud native applications - at least those running on AWS - are adopting containers to a good extent.