EDIT 16/05/2024 : ajout de commentaires notamment sur CrunchyData/postgres-operator.
Dans le cadre de ce comparatif, après avoir effectué plusieurs recherches et après avoir collecté les avis de mes pairs, la liste des sélectionnés est la suivante :
- zalando/postgres-operator
- CrunchyData/postgres-operator
- cloudnative-pg/cloudnative-pg
- percona/percona-postgresql-operator
- sorintlab/stolon
- ongres/stackgres
Pour comparer ces diffĂ©rents opĂ©rateurs, examinons quelques critères clĂ©s tels que la facilitĂ© d’utilisation, la prise en charge des fonctionnalitĂ©s avancĂ©es de PostgreSQL, la robustesse et la communautĂ© de support.
FacilitĂ© d’utilisation, dans son ensemble
zalando/postgres-operator
: conçu avec une attention particulière Ă l’automatisation et Ă la simplification des tâches d’administration, il offre une expĂ©rience utilisateur fluide une fois la configuration initiale effectuĂ©e. Comme pour d’autres, il respecte les règles du Cloud Native.CrunchyData/postgres-operator
: il est connu pour sa documentation approfondie et ses outils abordables, cette solution offre une expérience utilisateur agréable pour le déploiement et la gestion des clusters PostgreSQL. Le respect des règles du Cloud Native est bien présent.cloudnative-pg/cloudnative-pg
: il est construit sur l’opĂ©rateur de Crunchy Data (CrunchyData/postgres-operator), il propose quelque chose de similaire similaire. SponsorisĂ© par CNCF, nous pouvons nous attendre Ă un maintien certain. Avec CNCF derrière, on peut s’attendre Ă ce que la solution soit Cloud Native ready.perco/percona-postgresql-operator
: offre une installation et une configuration relativement simples avec des guides détaillés. La configuration initiale peut nécessiter une certaine expertise, mais une fois configuré, il est facile à gérer. Un WebPanel peut être déployé pour faciliter sa gestion. Lui aussi, respecte les prérequis Cloud Native.sorintlab/stolon
: Bien qu’il soit puissant, son installation et sa configuration peuvent ĂŞtre plus complexes que d’autres solutions car nĂ©cessitant une comprĂ©hension approfondie de PostgreSQL et de Kubernetes.ongres/stackgres
: stackgres vise Ă simplifier le dĂ©ploiement de clusters PostgreSQL sur Kubernetes en fournissant une interface conviviale et des outils d’administration simplifiĂ©s. SponsorisĂ© lui aussi par CNCF.
Prise en charge des fonctionnalités avancées
zalando/postgres-operator
: propose une prise en charge robuste des fonctionnalités avancées de PostgreSQL, y compris la haute disponibilité et la réplication.CrunchyData/postgres-operator
: reconnu pour son support avancé des fonctionnalités de PostgreSQL telles que la sauvegarde et la restauration, la réplication, et la gestion des données volumineuses.cloudnative-pg/cloudnative-pg
: hĂ©rite des fonctionnalitĂ©s avancĂ©es de PostgreSQL et de l’opĂ©rateur CrunchyData, il fournit des outils pour les dĂ©ployer efficacement sur Kubernetes.perco/percona-postgresql-operator
: offre une gamme complète de fonctionnalités avancées de PostgreSQL, avec la haute disponibilité, la sauvegarde et la restauration.sorintlab/stolon
: prise en charge robuste de la haute disponibilité et de la réplication, mais peut nécessiter une configuration plus manuelle pour certaines fonctionnalités avancées.ongres/stackgres
: se concentre sur la prise en charge des fonctionnalités avancées de PostgreSQL tout en simplifiant leur gestion sur Kubernetes.
Robustesse et communauté de support
zalando/postgres-operator
: bien que dĂ©veloppĂ© par Zalando, il peut avoir une communautĂ© de support lĂ©gèrement plus petite que d’autres solutions plus Ă©tablies.CrunchyData/postgres-operator
: bénéficie du soutien de Crunchy Data, une entreprise spécialisée dans les solutions PostgreSQL, avec une solide communauté et un support professionnel disponible.cloudnative-pg/cloudnative-pg
: profite de l’expertise de Crunchy Data et de sa base d’utilisateurs, offrant ainsi un support fiable et une communautĂ© active.perco/percona-postgresql-operator
: soutenu par Percona, une entreprise bien établie dans le domaine des bases de données open source, avec une communauté active.sorintlab/stolon
: projet inactif depuis 2021 ! Faire attention car la communautĂ© n’est que peu active.ongres/stackgres
: projet plus récent, il gagne en popularité mais peut avoir une communauté de support plus réduite par rapport aux solutions plus anciennes.
Informations diverses
Opérateur | Stars | Fréquence commits | Fréquence de mise à jour |
---|---|---|---|
zalando/postgres-operator | 6 mois | ||
CrunchyData/postgres-operator | inconnu | ||
cloudnative-pg/cloudnative-pg | 1 Ă 2 mois | ||
perco/percona-postgresql-operator | Varie entre 1 mois et 6 mois | ||
sorintlab/stolon | Aucune depuis 2021 | ||
ongres/stackgres | 1 mois |
A noter
EDIT 16/05/2024
Après avoir discutĂ© de ce comparatif avec d’autres professionnels, un expert DB et notamment de PostgreSQL m’a prĂ©venu de quelque chose d’important : des conditions d’utilisation obscures sont placĂ©es sur l’opĂ©rateur CrunchyData. Ces conditions sont indirectes car elles ne s’appliquent pas Ă l’opĂ©rateur mais au PostgreSQL modifiĂ© par CrunchyData utilisĂ© dans l’opĂ©rateur (source). Ces règles plutĂ´t dissimulĂ©es empĂŞchent l’utilisation de l’opĂ©rateur dans une structure de plus de 50 salariĂ©s si vous ne possĂ©dez pas de licence. Percona, se basant en partie sur l’opĂ©rateur CrunchyData, a rĂ©ussi Ă faire en sorte de ne pas vous exposer Ă ce problème. Cependant, rien ne dit que les conditions d’utilisation de CrunchyData ne vont pas Ă©voluer dans le futur, empĂŞchant Percona de fonctionner dans ces conditions.
Concrètement, il s’agit des Developer Terms of Use, appliquĂ© aux logiciels CrunchyData. Il serait logique de penser qu’il ne s’agit de conditions d’utilisation applicables seulement Ă des environnements de dĂ©veloppement, mais c’est lĂ que la subtilitĂ© rĂ©side. L’opĂ©rateur PGO est pourtant sous licence Apache 2.0. MalgrĂ© cela, on peut lire dans le repo Github :
The use of container images downloaded from the Crunchy Data Developer Portal are subject to the Crunchy Data Developer Program terms.
https://github.com/CrunchyData/postgres-operator
Attention donc Ă ces choix.
Conclusion
En rĂ©sumĂ©, on constate surtout que les solutions sont souvent propulsĂ©es soit par un besoin interne dans une sociĂ©tĂ© (je pense Ă Zalando), soit par une entreprise proposant des services autour de PostgreSQL. Dans tous les cas, le choix de l’opĂ©rateur Kubernetes pour PostgreSQL dĂ©pendra des besoins spĂ©cifiques de votre projet, de votre niveau de confort avec Kubernetes et PostgreSQL, ainsi que de la disponibilitĂ© des ressources de support et de la communautĂ©. Chaque opĂ©rateur a ses propres forces et faiblesses, donc une Ă©valuation approfondie est recommandĂ©e avant de prendre une dĂ©cision.