Databases
There are a few different paths one can take when it comes to deploying and provisioning a database. These mostly differ by deployment location.
On-cluster Databases
Section titled “On-cluster Databases”BYO database
Section titled “BYO database”There are no limitations for the databases deployed in the Kubernetes clusters. However, we do not consider such a deployment production ready.
The benefits of such databases are that they are easy to deploy and you are in full control.
Monitoring, and with that optimizing performance, can be done with the application observability stack provided by FLOW.
The drawbacks are that you will not have an off-cluster backup, you will have to figure out the backup/restore process yourself and make sure your solution is BIO- and GDPR-compliant.
As such, this way of deploying a database is only suitable for development/testing.
Cloud Native PG (CNPG) is an operator that covers the full lifecycle of a highly available PostgreSQL database cluster with a primary/standby architecture, using native streaming replication.
It makes operating a PostgreSQL database on cluster perfectly viable. The CNPG provides a very extensive set of features and we strongly recommend going through their documentation.
The main thing that FLOW adds to CNPG-deployed databases is the ability to backup and restore to an external S3 service, currently provided via s3Proxy using NFS as a storage backend. The S3 service is used by the Barman Cloud CNPG-I Plugin, which provides the base and WAL archiving (the backups). This gives you full, point-in-time recovery (PITR).
