Skip to content

Comparatif des opérateurs Kubernetes pour PostgreSQL

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 :

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érateurStarsFréquence commitsFréquence de mise à jour
zalando/postgres-operator6 mois
CrunchyData/postgres-operatorinconnu
cloudnative-pg/cloudnative-pg1 Ă  2 mois
perco/percona-postgresql-operatorVarie entre 1 mois et 6 mois
sorintlab/stolonAucune depuis 2021
ongres/stackgres1 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.