Spilo — screenshot of github.com

Spilo

Spilo is a Docker image I use to provision HA PostgreSQL clusters, bundling PostgreSQL with Patroni for high availability. It simplifies deploying resilient Postgres on Docker.

Visit github.com →

Questions & Answers

What is Spilo?
Spilo is a Docker image that bundles PostgreSQL and Patroni to create highly available PostgreSQL clusters. Patroni serves as a template for PostgreSQL HA, enabling multiple Spilo instances to form a resilient database setup.
Who is Spilo designed for?
Spilo is designed for developers and operations teams who need to deploy scalable and highly available PostgreSQL clusters within a Docker or Kubernetes environment. It is particularly useful for those seeking a pre-packaged solution for HA PostgreSQL.
How does Spilo differ from other PostgreSQL deployment methods?
Spilo differentiates itself by integrating PostgreSQL and Patroni into a single Docker image, simplifying the setup of HA clusters. Unlike deploying bare Patroni, Spilo provides a complete, opinionated package ready for containerized environments.
When should I consider using Spilo for PostgreSQL?
You should consider using Spilo when deploying PostgreSQL in environments that leverage Docker or Kubernetes, especially when high availability is a critical requirement. It is suitable for production systems needing robust and resilient database infrastructure.
How does Spilo manage client connections for high availability?
Spilo assumes a correctly configured load balancer directs client connections to the master node. This can be achieved either by configuring the load balancer to poll Spilo's API URL for node status or by using callback scripts to dynamically update load balancer configurations.