A micro service architecture is the championed way to design and develop large scale robust software applications. These loosely coupled software modules allow for hyper agile continuous integration and deployment. Containers are a natural fit for this application architecture. Services can be packaged as stateless containers that talk to other services for their data persistence needs. Data services typically derive their storage from either cloud providers or legacy storage vendors.
Separating the storage-tier from the app-tier with the right primitives makes sense. Containers are ephemeral instances and don’t need to be tightly coupled with storage. But we believe that the underlying storage needs to be designed with the requirements of the application in mind. IO profiles and storage level primitives for containers are different from virtual machines or applications running on bare metal – storage primitives at the volume, LUN, or VM granularity have nothing to do with containers. Moreover, micro services coupled with hyper-agile development and deployment practices create containers at adifferent scale and require us to examine storage layer for containers with fresh eyes.
At Portworx, we want to do just that – build storage infrastructure designed for containers from the ground up with an eye on the new IO requirements that containers bring to the table. Building storage at container granularity allows policies to be applied at the container level enabling higher level requirements of agility, application state consistency, high-availability, rolling upgrades and high performance. In addition, building storage this way allows for visibility and monitoring IO at the container or the application level. We couple these benefits with tight insertion within the various components of the container ecosystem. Like the literary detective, Dirk Gently, Portworx operates on the principle of the “fundamental interconnectedness of all things.” His specialty is missing cats and messy divorces, ours is a holistic approach to IO.