Container Attached Storage (CAS) with openEBS
If one looks into the current development model, it's all about microservices and kubernetes. It is a service talking to services breaking down the big monolith, with scalability and redundancy built in. Arguably, one can state that applications have changed, but somebody forgot to tell storage. What can we learn from this, by looking at these cloud-native patterns and apply them to storage? Instead of doing IO to a storage subsystem, would it be possible to do IO between containers? What technologies could we leverage, to build these IO containers without pulling in legacy protocols that have not changed since forever? Or could this be the beginning of new protocols if we make the contract between these containers dynamic through a data mesh? Lastly, hardware trends enforce a change in the way we look at storage. Some NVMe devices can deliver more performance compared to an expensive storage array, how can these be utilized in a cloud-native environment? During this talk, we will go over the concept of Container Attached Storage (CAS) where we have decomposed traditional storage systems, into a set of micro-services that creates a "storage instance" per application, giving the DevOps persona full control. We will talk about the concept of the Input/Output Container (IOC) and how we leverage existing technology borrowed from the VM space, to do IO between containers entirely in user space, taking full advantage of the new hardware. We will discuss how one can enable specific storage features by selecting a different type of controller and how that can benefit the application and leverage k8s as a control plane to keep the data local for the application and implement storage HA functionality.