Editor’s note: Today we’re hearing from Couchbase, a database partner that’s built a NoSQL, open source-centric database that can run on Kubernetes. Read on for more about their architecture and how developers use their technology.
Building and running modern web, mobile, and IoT applications has created a new set of technology requirements. Relational databases don’t work for these new requirements, because these apps need better agility, scalability, and performance than is possible when a database is tied to a single physical/VM instance. So we’ve seen many enterprises turning to NoSQL database technology, since it’s designed to manage unstructured and semi-structured data like web content, multimedia files, XML, and more.
Couchbase Server is a scale-out NoSQL database that’s designed for containerized, multi-cloud/hybrid-cloud, microservices-based infrastructures. The core architecture is designed to simplify building modern applications with a flexible data model, a SQL-based query language, and a secure core database platform designed for high availability, scalability, and performance. We’ve seen developers build asset tracking, content management, file service and other apps on Couchbase because it lets them iterate fast, read and write JSON documents, get low-latency access to data, and support millions of concurrent users. Plus, using this type of NoSQL database means they can support global users at any time, and deploy into multiple data centers with an active-active configuration.
Couchbase is the first NoSQL vendor to have a generally available, production-certified operator for Kubernetes platforms such as Google Kubernetes Engine (GKE). The Couchbase Autonomous Operator lets you more quickly adopt the Couchbase database in production to build microservices-based apps. From there, DevOps teams can focus on code, not infrastructure, and build better user experiences.
Managing stateful applications such as Couchbase Server and other databases in containers is a challenge, since it requires application domain knowledge to correctly scale, upgrade, and reconfigure, while also protecting against data loss and unavailability. We decided to build this application-specific operational knowledge into our software that uses the Kubernetes abstractions to help run and manage the application correctly.
The goal of the Couchbase Autonomous Operator is to fully self-manage one or more Couchbase deployments so that you don’t need to worry about the operational complexities of running Couchbase. Not only is the Couchbase Autonomous Operator designed to automatically administer the Couchbase cluster, it can also self-heal, self-manage and automatically upgrade the cluster according to Couchbase best practices. Developers end up with more time to spend on the app itself, and have full control over the database and data.
The Couchbase Autonomous Operator architecture consists of server pods, services, and volumes. When a Couchbase cluster gets deployed, the operator creates additional Kubernetes resources to facilitate its deployment. The resources originating from the Couchbase Autonomous Operator are labeled to make it easier to list and describe the resources belonging to a specific cluster. You can see here how the Couchbase Autonomous Operator works and integrates with Kubernetes.