Operators are becoming an increasingly popular method of implementing application maintenance in Kubernetes, and are the basis for all management operations in the OpenShift Container Platform. Many people refer to this as the "operator framework", but that is a very specific project to enable developers to write their own operators [link]. I'd like to talk more broadly about the Operator Pattern, the design philosophies behind Operators, and how we're leveraging that pattern in OpenShift Container Storage today.

To start, an Operator is just a program running in a container that talks to OpenShift to execute operations on other applications. What makes the Operator Pattern distinct is that the program follows the Kubernetes pattern of reconciling state with eventual consistency. This means that the Operator runs in a loop, checking the state of the cluster and comparing it against a desired state it's been configured to enforce. If the two states differ, the Operator performs incremental operations to bring the observed state in line with the desired state. In this way, they can codify behaviors that human operators would normally have to perform themselves.

OpenShift Container Storage is software-defined storage for containers, running natively in containers itself. It brings the power of Ceph to OpenShift, enabling applications to take advantage of its reliability, scalability, and performance while enabling administrators to manage storage using the same control plane they do for all their other OpenShift applications. But bringing Ceph into OpenShift is no easy task; Ceph is composed of multiple independent daemons running in tandem with one another, so there is a level of orchestration that is needed to get things running and keep them running. This is where Rook comes in.

The Rook project provides storage orchestration for Kubernetes. It is a set of Operators focused on providing storage for containerized applications. Rook-Ceph is the Rook Operator focused on orchestrating Ceph, and OpenShift Container Storage brings Rook-Ceph to the enterprise in OpenShift. Setting up a Ceph cluster with Rook-Ceph can be as easy as running a single command, and in OpenShift Container Storage we take it a step further with an end-to-end user experience that will give you a Ceph cluster with just a few clicks. This empowers any OpenShift administrator to setup and run their own storage solution right from the same console they already use for all their other administration tasks.

OpenShift Container Storage also introduces the NooBaa Operator to OpenShift Container Platform as the Multi-Cloud Object Gateway. This piece of OpenShift Container Storage acts as an efficient, secure frontend for object storage that can be backed by any number of backend storage solutions. What gives the Multi-Cloud Object Gateway its namesake is the ability to back and replicate data across local storage, public clouds, and private clouds, bringing a true hybrid-cloud experience to an application's data availability.

The benefits of the Operator Pattern don't just stop on Day 1. OpenShift Container Storage also facilitates so-called "Day 2" operations, such as storage expansion and recovery from hardware failures. Normally, recovery from hardware failure  is typically a manual process. With the automation of OpenShift Container Storage and OpenShift Container Platform such failures can be mitigated and even repaired without administrator intervention. In the event that the automation can't resolve the issue, Operators collect the necessary information so that the administrators can quickly find it and address the issues.

Ultimately, this all culminates into a seamless storage experience for developers. They can trust their data is fault-tolerant and maximize uptime. And with Ceph's scalability and performance, they can trust that access to their data will be more than adequately responsive for the majority of their applications. To the developer, OpenShift Container Storage is storage that just works and easily integrates with their containerized applications.

The Operator Pattern is a powerful tool for automating common and often complex administrative tasks, and OpenShift Container Storage leverages it to great effect to set up and manage a robust storage solution for OpenShift Container Platform. Storage has never been so easy, and administrators can feel confident that they will be getting a complete, end-to-end, enterprise-grade experience with the same ease-of-use as any other Operator in OpenShift Container Platform.

Additional Resources

OpenShift Container Storage: openshift.com/storage

OpenShift | Storage YouTube Playlist

OpenShift Commons ‘All Things Data’ YouTube Playlist

Feedback

To find out more about OpenShift Container Storage or to take a test drive, visit https://www.openshift.com/products/container-storage/

If you would like to learn more about what the OpenShift Container Storage team is up to or provide feedback on any of the new 4.3 features, take this brief 3-minute survey.