OpenStack hands you instances, volumes and networks. A database service is everything between those primitives and a developer typing "give me a PostgreSQL 16 with failover". This is what sits in that gap, why Trove rarely fills it, and the three routes teams actually take. There is a fourth: edgeContinuum delivers managed PostgreSQL on the infrastructure you already operate, with none of this to build.
Every ingredient for a database is already in an OpenStack deployment. Nova gives instances with predictable flavors, Cinder gives block volumes with volume types you can map to real storage tiers, Neutron gives isolated networks and security groups, Keystone gives per-project identity, and object storage gives somewhere to put write-ahead logs.
What is missing is everything that makes those ingredients a service: a catalog entry a developer can order, a topology decision made once and applied identically every time, replication configured and verified, failover that promotes a standby without a human, backups that run and get restored as a test, minor patches applied on a schedule, major upgrades planned, and per-tenant limits so one team cannot fill the array.
The distance between "PostgreSQL is easy to install" and "PostgreSQL is a product our teams order" is that list. It is also why the request "we need a database" is answered in weeks on most private clouds and in seconds on a public one.
edgeContinuum closes that gap as a product. A team requests PostgreSQL with a version and a size from a catalog, inside the quota its project carries, and provisioning, high-availability clustering, failover, backups and version lifecycle are handled by the platform on your own hardware. See managed PostgreSQL on-premises, or start a free trial and create one in minutes.
Trove is OpenStack's own database-as-a-service project, and it is still developed: it ships in current OpenStack releases and PostgreSQL is one of its supported datastores. The architecture is distinctive. A Trove instance is a Nova instance booted from a Trove guest image with a guest agent inside it, and since the Victoria release a single guest image serves every datastore, with the database itself running as a container inside that instance.
Three things make teams hesitate, and none of them is a criticism of the code:
The result is that Trove is technically available and organizationally rare. edgeContinuum does not use Trove: managed PostgreSQL is delivered without a guest agent inside the database instance and without a datastore image pipeline for you to own.
Trove asks you to operate a database platform in order to get databases. That trade is reasonable if you have a team that wants to own it. It is a poor trade if what you wanted was a catalog entry your developers can click.
Databases become first-class OpenStack resources with their own API, quotas and CLI, which is genuinely coherent when your operators want everything inside one cloud API. The cost is the guest image pipeline, the guest agent and a thin support ecosystem.
Instances from Nova, volumes from Cinder, and Patroni with etcd or Consul for leader election, pgBackRest or WAL-G for backups, and Ansible to tie it together. This is the most common answer and it works well, because Patroni is excellent. What stays yours is the whole surface: templates, failover testing, backup verification, monitoring, minor patching, major upgrades, and the fact that every instance is slightly different from the last one somebody built.
If you already run Kubernetes on OpenStack, a PostgreSQL operator turns databases into custom resources reconciled by a controller, which is the cleanest declarative model of the three. It also stacks two platforms: the database's availability now depends on the cluster's, storage arrives through Cinder CSI rather than directly, and someone has to own both layers. For a team that already operates Kubernetes seriously, this is the strongest self-built route.
| Route | What you own | Where it fits |
|---|---|---|
| Trove | Guest images, the guest agent, a small support ecosystem | Operators who want databases inside the OpenStack API surface |
| VMs plus Patroni | Templates, failover tests, backups, patching, upgrades | One or two important databases with a DBA behind them |
| Operator on Kubernetes | Two platforms: the operator and the clusters under it | Teams already operating Kubernetes as a product |
| Managed service on your OpenStack | The infrastructure only; the service layer is delivered | Databases requested from a catalog, inside a quota |
Database performance on OpenStack is mostly a storage question, and the defaults are rarely the right answer.
The high-availability topology itself, quorum, synchronous versus asynchronous standbys and split-brain avoidance, is worked through in the private cloud PostgreSQL DBaaS architecture guide.
A Cinder snapshot of a running database volume is a crash-consistent image, and PostgreSQL will usually recover from it. Usually is not a backup strategy. A database backup regime has three properties a snapshot does not: continuous write-ahead log archiving so you can recover to a point in time rather than to whenever the snapshot ran, retention that is independent of the volume's lifecycle so deleting an instance does not delete its history, and a restore that has actually been performed.
The last one is the one that fails in production. An untested restore path is an assumption, and the day it matters is a bad day to test it. Whichever route you take, schedule restores into a scratch project as a routine job, not as an incident.
On a single-team OpenStack, none of this matters. With several teams, or clients you serve, four questions arrive at once: which project owns the instance and its volumes, who can see the credentials, what limits stop one team from consuming the array, and how consumption gets reported per tenant.
OpenStack projects answer the first two adequately and the second two only partly. Project quotas bound instances, volumes and gigabytes, which is a proxy for database consumption rather than a measure of it, and nothing at that layer knows that six instances and their volumes together are "three PostgreSQL clusters belonging to the data team". That gap, and the organizations and roles that close it, is the subject of the users, projects and quotas guide.
PostgreSQL ships a new major version every year and supports each one for five, with minor releases roughly quarterly. That produces two very different jobs. Minor patching is mechanical, restart-only, and easy to postpone until a CVE forces a rushed window across every instance at once. Major upgrades are a project each time: a choice between dump and restore, an in-place upgrade, or logical replication into a new cluster with a controlled cutover, plus extension compatibility and application testing.
On a self-built estate, both jobs scale with instance count and land on whoever built the templates. This is the work that quietly consumes a DBA's year, and it is the clearest argument for making the database a product rather than a build.
edgeContinuum delivers PostgreSQL as a catalog product on the OpenStack you already operate. A team asks for a database with a version and a size, inside the quota its project carries, and the platform provisions it, configures high-availability clustering, handles failover, runs backups and drives version lifecycle from declarative desired state. Instances are scoped to projects and organizations, so consumption is attributable per tenant, and the same platform behaves identically from SaaS control plane to a fully air-gapped deployment.
No guest agent inside your database instances, no datastore image pipeline, no Trove, and nothing forked in the OpenStack underneath: it keeps using standard Nova, Cinder and Neutron APIs, and your operators keep their existing tooling. See managed PostgreSQL on your own infrastructure for what the service does, or the OpenStack management platform page for the layer it belongs to.
Where to start: request a free trial and create a highly available PostgreSQL instance against a lab OpenStack in minutes. If you have databases running today, bring them to the call below and our engineers will work the migration path with you.
Start a free trial and put highly available PostgreSQL in your own catalog, provisioned on request with failover, backups and lifecycle handled. Or bring your storage backends and the databases you run today to a call, and we will work the topology and the migration path with you.
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.