IP manager for PostgreSQL clusters
The purpose of a PostgreSQL HA (High Availability) cluster is to avoid downtime and to provide a ready-to-use database service at all times. Downtime is expensive and can seriously damage the reputation of a company; a High Availability cluster addresses this issue.
CYBERTEC has the HA expertise you need and offers database clusters to customers worldwide. However, the question often arises: How can the database cluster be made transparent to the application? How can we assure that an application does not have to be aware of the inner workings of our PostgreSQL High-Availability solution?
YAIM: Managing IPs intelligently
YAIM is an intelligent IP manager for PostgreSQL and Patroni clusters. It allows you to transparently manage IP addresses and thus ensures that your applications don’t need to negotiate the topology of your cluster.
How YAIM works
YAIM manages a pool of IP addresses which can be distributed inside the cluster to allow the application to dynamically load balance. The application will see a set of IP addresses and transparently connect to a random IP.
YAIM and Patroni will take care of the rest:
- Automatic failover
- Automatic recovery
- Transparent IP management
- Automatic load balancing (with DNS)
How do you manage IPs with YAIM? Simply choose a set of IP addresses. YAIM will automatically assign those IPs to the available nodes in the cluster:
In case of a failure, yaim will automatically assign those IPs which were taken by the failed machine and distribute them among the remaining servers. That means all IPs will always be reachable.
Patroni will automatically recover a server which is available after a system failure. Once a server is back in action, yaim will automatically assign spare IP addresses to the PostgreSQL server.
DNS and load balancing for PostgreSQL
DNS is a wonderful way to scale read-only workloads. Simply assign a DNS name to your pool of IPs. Load balancing will happen automatically via DNS using Round-Robin.
Scale out your cluster easily and transparently.
- Use DNS names instead of IPs
- Add servers without changes to the application
- Hide the size of your cluster
- Scale your workload