In our last post on Couchbase, we covered how to run Couchbase on OCI IaaS with Terraform. That’s all well and good, but now, as they say, for something completely different…

This week Kubecon is going on in Seattle. Oracle is there with lots of announcements, many of which are part of the Oracle Cloud Native Framework. This builds on earlier work we’ve done, joining the CNCF as a Platinum member and releasing a managed Kubernetes service called OKE.

Conventional Kubernetes wisdom is that it’s great for running stateless containers, but not stateful workloads. This means recommended architectures have had application servers managed by Kubernetes with databases running outside on VMs or bare metal. This approach performs well, but negates one of the biggest advantages of Kubernetes — providing a single orchestrator that can be used to manage an entire application. The result is a no you have two problems situation where you get to manage software both inside and outside of Kubernetes along with the connections between the two. It’s not fun.

The Kubernetes community recognized all this as a limitation and tried a number of approaches for running stateful workloads. The first was called Pet Sets, drawing on the pets/cattle analogy common in the cloud. This was later renamed to StatefulSets. That model was then superseded by something an approach called Sidecar, which suffer from a variety of issues including single point of failure. All that culminated in CoreOS proposing a model called Operator which uses a Custom Resource Definition (CRD) to manage a stateful application inside of a Kubernetes cluster.

A variety of stateful pieces of software now run with the Operator model, including Confluent, Hazelcast and Couchbase. If you’re looking for an industry leading NoSQL database to build your Kubernetes application on top of, Couchbase is an obvious choice. Couchbase itself is a great product, with all the features you’d expect in a NoSQL database. The Couchbase Autonomous Operator distinguishes it a bit further.

We’ve partnered closely with Couchbase to make it easy to deploy the Operator on OKE:

“Couchbase is collaborating with Oracle to bring the benefits of the Oracle Kubernetes Engine (OKE) to applications like the Couchbase Data Platform. With Couchbase Autonomous Operator for Kubernetes now one can easily deploy Couchbase Data Platform on OKE.”

Anil Kumar, Director of Product Management at Couchbase

The Operator allows you to run your database next to the application in Kubernetes, lowering latency and simplifying administration of the application as a whole. The operator also blurs the line between enterprise software and a managed service, automating many tasks including:

Resizing the cluster

Recovery from node failure

Upgrading the database version

Because the Operator relies on the CRD API, it can run on any conformant Kubernetes distribution. This includes, of course, OKE. Getting started with the Couchbase Autonomous Operator on OKE is really easy.

First off, you’ll want to deploy an OKE cluster. Instructions to do that, along with a Terraform module that automates the process, are here.

With your Kubernetes Cluster up and running, the next step is to deploy Couchbase. We’ve created a walk through for that here.

As always, it’s been a pleasure working with the Couchbase team to set this this up. Special shout out to Tommie McAfee at Couchbase for helping with some permissions issues! If you have any questions, please drop me a line at ben.lackey@oracle.com or on Twitter @benofben.