Skip to main content
Version: 1.15

Architecture

OpenEverest is an open-source platform for automated database provisioning and management on Kubernetes. This page explains the key architectural decisions behind OpenEverest and describes its main components.

Kubernetes Operators​

At the heart of OpenEverest is a deliberate bet on Kubernetes Operators as the primary building block for deploying and managing stateful workloads.

!image

A Kubernetes Operator is a software extension that uses custom resources to manage applications and their components. Operators encode operational knowledge — the same knowledge a human expert would use to deploy, configure, scale, and recover a specific piece of software.

Why Operators?​

Unlike Helm charts, which excel at initial deployment, Operators provide full day-2 operational capabilities out of the box:

  • Scaling — horizontal and vertical, with proper coordination across cluster members
  • Backups and restores — scheduled or on-demand, with point-in-time recovery
  • Maintenance — rolling restarts, minor and major version upgrades
  • Self-healing — automatic recovery from pod failures and configuration drift

Beyond automation, database Operators carry built-in domain expertise. They don't just start database pods in the right order — they also configure replication topologies, deploy read/write proxies and connection poolers, and tune engine-level settings based on the resources available. This expertise would otherwise require years of operational experience to develop in-house.

Main components​

OpenEverest is composed of three main components that work together to give users a single pane of glass over their database fleet.

!image

OpenEverest Server​

The OpenEverest Server is the control plane that users interact with directly. It exposes:

  • A web UI for managing database clusters, backups, monitoring endpoints, and access control.
  • A REST API for programmatic access to all OpenEverest capabilities.

OpenEverest Operator​

The OpenEverest Operator acts as an operator of operators. When a user creates or modifies a database cluster through the UI or API, the OpenEverest Operator translates that intent into the native CustomResource object of the appropriate database operator. This abstraction layer means users work with a single, consistent API regardless of which database technology is running underneath.

Database Operators​

Database Operators are Kubernetes Operators created by various open-source communities and vendors. They manage the lifecycle of a specific database engine — handling replication, failover, configuration, backups, and more according to each engine's requirements.

OpenEverest is designed to be modular: new database technologies can be added by integrating a new Operator, without changes to the core platform. The currently supported engines are listed on the supported operators page.