About cookies on this site Our websites require some cookies to function properly (required). In addition, other cookies may be used with your consent to analyze site usage, improve the user experience and for advertising. For more information, please review your options. By visiting our website, you agree to our processing of information as described in IBM’sprivacy statement. To provide a smooth navigation, your cookie preferences will be shared across the IBM web domains listed here.
Publication
Future Generation Computer Systems
Paper
Extensible persistence as a service for containers
Abstract
Micro-services and containers are becoming the de-facto way of building software and deploying workloads in an agile manner. Following these paradigms leads eventually to replacing the old fashioned monolithic applications by compositions of single-purpose, independent services communicating with each other through light-weight mechanisms. These services are often deployed in containers which have proven to be a suitable runtime platform for micro-services. In the container landscape, there are different container frameworks enabling elastic horizontal scaling for the workloads that are designed as so-called 12-factor applications. 1 These frameworks were built to accommodate stateless services and require that any state need to be maintained out-of-band of the platform. Support for stateful services in a scalable way is not well covered, particularly in scenarios where state is accessed from workloads in different deployment platforms. It is noteworthy that these workloads cover a wide spectrum of legacy software applications. In order to efficiently support these kinds of workloads, persistent storage such as filesystem or block storage is necessary to maintain the data and make it available for the containers. Managing different types of persistent storage across heterogeneous container orchestrators is a challenging task that people tried to resolve in a specific way for each storage backend or container orchestrator. In this paper, we present the Ubiquity framework, which provides seamless access to persistent storage across different container orchestrators (Cloud Foundry, OpenShift, Kubernetes, Docker and Mesos). Ubiquity is extensible to other container frameworks and different types of file and block storage systems, which can be managed independently of the container orchestrator. Ubiquity makes it easy to onboard stateful services in heterogeneous container environments and based on heterogeneous storage backends, extending the efficiency gains of containerization.