Container Native Storage (CNS) is a format of the Docker application container, and offers some advantages over traditional data volumes where running containers can store data. The specifications for CNS was originally created by the team at Box as part of their research into interesting strategies for storing data as containers.
2. The Container World is an interesting place with
its own set of challenges and opportunities.
Container images tend to be significantly larger
than virtual machine (VM) images due to the
difference in base image formats and their
usage.
3. For example, a VM with one vCPU and two GB RAM might
typically take up only 4–5GB whereas a container that serves
as a web server or application server might need 50GB or
more – mostly because you include all your application code
and binaries in it. This can lead to huge storage requirements
for Container Hosts just to store the container images and
associated containers state data such as logs.
4. With COVID-19 efficiency of remote work became
a high priority task for many organizations.
Container Native Storage (CNS) was one of the
technologies that were propelled into the
limelight by COVID-19 to accommodate this
requirement.
5. Container Native Storage is storage purpose built with
containers in mind to ensure optimum throughput, low
latency and performance; whereas traditional SAN/NAS
storage can be prohibitively expensive when it comes
to containerized environments, which need to scale
rapidly while keeping costs under control.
6. While Container Native Storage is often assumed to require
SSDs due to their significant speed advantage over spinning
disks, there are many viable alternatives available today;
including NVMe types like PCIe RDMA (Remote Direct Memory
Access), which allow Container Native Storage to be built on a
variety of media, including PCIe cards that can go into servers
or even as direct-attached storage (DAS) to Container Hosts.
7. Regardless of the Container Native Storage technology
employed, what matters is its ability to provide low latency and
performance without sacrificing capacity. Container Native
Storage must also keep pace with the rate at which Container
Images are being deployed by Container Orchestrators like
Kubernetes or Swarm for rapid release cycles, as well as the
growing number of VMs/Containers hosted inside each
Container Host.
8. When Container Native Storage was
originally introduced, the common use
case of Container Native Storage was to
improve Container Deployments by
speeding up Container Builds.
9. However, our experience has shown that
Container Native Storage not only speeds up
CI/CD but also pushes developer velocity
exponentially when CNS is used for Container
Image Management and Container Builds.
10. This article provides an overview on how Container Native
Storage works in practice to boost developer velocity using
Solid Fire DSSD. We explain some of the advantages of CNS
when it comes to image storage and how this translates into
high performance for developers during Container Builds, but
also how it can be beneficial in Reduced Time-to-Market with
Continuous Delivery (RTM-CD).