Ces entreprises françaises qui ne jurent que par PostgreSQL (ou presque)
Pour le PGGTIE, un groupe de travail rassemblant entreprises privées et organisations publiques françaises, PostgreSQL est un véritable couteau suisse permettant non seulement de se passer des SGBD historiques, mais aussi de certaines bases de données NoSQL.
Selon une enquête menée par StackOverFlow auprès de 53 000 développeurs professionnels, PostgreSQL est la deuxième base de données la plus exploitée pour des projets d’envergure après MySQL. La maturité du projet explique en partie cette adoption : il a fêté ses 25 ans cette année.
Par ailleurs, les éditeurs et les fournisseurs multiplient les offres autour de ce système. Toutefois, une telle information ne dit pas ce qu’en pensent réellement les utilisateurs.
Lors du salon parisien Open Source Experience, les membres du Groupe de Travail Inter-Entreprises (PGGTIE) se sont évertués à présenter les qualités de la base de données open source. Ce groupe rattaché à la communauté française de PostgreSQL rassemble les représentants d’une vingtaine d’entreprises et d’organisations publiques dont la SNCF, leboncoin, la Société Générale, la MAIF, l’IGN, la Gendarmerie nationale ou encore Météo France.
La base de données robuste et multi-usage
Ces spécialistes partagent leur retour d’expérience technique ainsi que leurs bonnes pratiques, contribuent au projet open source et encouragent l’adoption du SGBD. Pour ces entreprises, le choix est évident : ce SGBDR est robuste.
« Faire crasher PostgreSQL, c’est tout de même très difficile et l’on peut se reposer dessus pendant plusieurs années », note Anthony Nowocien, expert PostgreSQL chez la Société Générale. « La base de données s’exécute sur énormément de systèmes d’exploitation : Linux, macOS, Windows, et sur diverses architectures matérielles, même sur des machines équipées de processeurs Risc-V », ajoute-t-il.
Anthony NowocienExpert PostgreSQL, Société Générale
Outre le respect de la norme SQL, ces utilisateurs considèrent que la modularité de la base de données, grâce à son mécanisme d’extensions, en fait un choix évident pour bon nombre de projets de développement. « PostgreSQL repose sur un “petit” moteur sur lequel l’on peut greffer des fonctionnalités », décrit Anthony Nowocien.
L’Institut National de l’information géographique et forestière (IGN) l’exploite depuis 2005 pour traiter des données géographiques. « Il y a un bon nombre d’extensions de PostgreSQL afin de déployer un SIG », déclare Cédric Duprez, expert bases de données chez l’IGN. L’institut emploie principalement l’extension PostGIS. « PostGIS permet de mieux représenter les informations géospatiales dans la base de données : des points pour les lieux remarquables, des lignes correspondant aux réseaux routiers et les polygones pour représenter les surfaces », ajoute-t-il. Certaines données, comme des éléments de rastérisation, nécessaires à la création de modèles en 3D peuvent être exploitées avec PostGIS grâce à des bibliothèques open source compatibles. « Le gros intérêt, c’est de croiser des données spatiales avec d’autres informations stockées dans la base de données », vante Cédric Duprez.
Par ailleurs, l’extension PGRouting sert à effectuer du calcul d’itinéraire, tandis que PgPointcloud gère les nuages de points issus des LiDAR, des systèmes de télémétrie laser utilisés pour analyser les traits de côtes, les évolutions des crus ou encore évaluer les ressources forestières. Pour autant, PostgreSQL ne remplace pas ArcGIS chez IGN, il le complète. L’IGN manipule ArcGIS pour la création de cartes.
Se passer des moteurs propriétaires, même quand ils sont NoSQL
Mais c’est la licence libre du SGBDR qui fait de PostgreSQL un remplaçant de choix pour les systèmes propriétaires existants, en particulier les bases Oracle, mais aussi Sybase, DB2, Microsoft SQL ou encore Informix. C’est l’autre raison de la création du PGGTIE au cours de l’année 2016. « La licence de PostgreSQL est très permissive. Beaucoup de sociétés l’ont repris en faisant des forks et la version communautaire est gratuite », rappelle Anthony Nowocien.
En l’occurrence, les foreign data wrappers (FDW), intégrés entre 2011 et 2013, sortes de connecteurs vers des data store distants, tels des serveurs Postgres, ou les bases de données mentionnées ci-dessus sont très populaires. En fonction des FDW, les données sont accessibles soit en écriture, soit en lecture, soit les deux. De nombreuses sources et formats de données sont supportés (CSV, parquet, ZIP, JSON, collection de documents, XML, etc.).
« À la MAIF, nous nous servons de PostgreSQL comme entrepôt de données. Nous allons chercher nos données dans nos cœurs de métiers Oracle pour les unifier afin d’effectuer des traitements décisionnels. Cela permet de créer des référentiels de données et cela nous sert également d’outil de migration d’Oracle vers PostgreSQL », illustre Yohann Martin, expert base de données chez la MAIF.
Yohann MartinExpert bases de données, MAIF
« Nos développeurs aiment beaucoup PostgreSQL : c’est très bien documenté, clair, il y a une grosse communauté capable de répondre aux questions », ajoute-t-il. En sus de PostGIS, JSON, les extensions search graph, full text search sont appréciés, tout comme la possibilité de concevoir « ses propres extensions facilement ». « Cela nous permet d’éviter d’autres bases de données, puisque les développeurs trouvent toutes les fonctionnalités dans le moteur PostgreSQL », affirme Yohann Martin.
Si la plupart des entreprises migrent ou ont migré de ces SGBD propriétaires vers PostgreSQL, elles se passent, complètent ou remplacent aussi des SGBD NoSQL, tels MongoDB.
« PostgreSQL prend en charge les données JSON, il est possible de gérer des paires clés-valeurs avec, et l’indexation et le requêtage sont très performants », souligne Anthony Nowocien. « Nous sommes plusieurs au sein du PGGTIE à utiliser PostgreSQL au lieu de MongoDB ou autres ».
Flavio Gurgel, Lead ingénieur infrastructure chez Leboncoin, explique que PostgreSQL est non seulement déployé comme le SGBD transactionnel principal du site de petites annonces, mais également pour prendre en charge des documents JSON. En l’occurrence, les paramètres des annonces peuvent régulièrement être mis à jour. « Nous avons un microservice qui consomme une table d’événements qui est une réplique logique de la table principale qui contient ces modifications. Cette réplique hébergée AWS RDS effectue des DELETE à chaque ligne qu’elle consomme et met à jour un seul fichier JSON par annonce dans cette base de données intermédiaire », décrit Flavio Gurgel.
Un autre microservice alimente des topics Apache Kafka avec ces fichiers JSON qui sont eux-mêmes connectés à des clusters Elasticsearch. « Cela permet à Kafka de compresser les topics et d’accélérer le rejeu. Par ailleurs, si un cluster Elasticsearch tombe, les flux Kafka et la base de données intermédiaire me permettent de le reconstruire rapidement », précise-t-il.
PostgreSQL et le défi du cloud
Comme leboncoin, les entreprises privées se tournent de plus en plus vers le cloud pour héberger leurs instances PostgreSQL. Plus précisément, elles adoptent les services managés des fournisseurs cloud. Interrogés à ce sujet lors de leurs interventions, les experts de la Société Générale, de la MAIF et du boncoin identifient les points d’attention avec les services AWS et Microsoft Azure.
« Nous faisons confiance à AWS pour utiliser une version communautaire de PostgreSQL dans RDS. Nous ne savons pas s’il s’agit exactement de la même distribution, mais au moins toutes les fonctionnalités sont là », déclare Flavio Gurgel.
Anthony NowocienExpert PostgreSQL, Société Générale
En outre, l’ingénieur explique qu’avec AWS, « il faut faire un compromis entre les ressources CPU et I/O ». Leboncoin a fait le choix d’exploiter jusqu’à 100 % des capacités I/O, mais se limite en charge CPU, puisque sa problématique est davantage liée à la lecture massive de données.
« RDS semble reprendre la version communautaire », corrobore Anthony Nowocien. « Cependant, Aurora est une fork propriétaire. Le stockage ne se comporte pas de la même manière : AWS a supprimé le mécanisme de checkpoint pour le remplacer par un système de stockage journalisé. Il y a des avantages et des inconvénients bien documentés », ajoute-t-il. « Si vous souhaitez utiliser une version communautaire ou une distribution qui s’en rapproche très fortement, Aurora n’est pas un tel produit ».
La MAIF emploie les services managés PostgreSQL d’Azure. « De ce que j’en ai vu, Microsoft déploie la version communautaire », témoigne Yohann Martin. « Une majorité des paramètres sont accessibles, d’autres sont cachés et bloqués, à moins d’effectuer des tickets auprès du support Azure afin de les modifier ». Pour autant, malgré les retards de versioning, le service serait performant et « très facile d’utilisation ».
De son côté, Anthony Nowocien précise que la fonction de sharding Hyperscale, disponible dans Azure Database pour PostgreSQL est propre à Microsoft. « Hyperscale ne se retrouve pas dans les autres services managés, mais ce service est davantage réservé aux bases de données d’au moins un pétaoctet », répond Yohann Martin.
Enfin, la conteneurisation de PostgreSQL prendrait de l’ampleur auprès de la communauté PostgreSQL. Pour l’expert de la Société Générale, la chose demeure difficile, car Docker peut entraîner la perte des données si d’autres composants ou une architecture plus complexe n’ont pas été mis en place.
« Il y a de plus en plus d’opérateurs Kubernetes pour PostgreSQL, je pense que c’est une tendance importante. J’envisage de l’adopter chez leboncoin, mais un de nos ingénieurs Kubernetes m’a conseillé d’attendre parce que la gestion des volumes est compliquée », témoigne Flavio Gurgel. « En revanche, d’autres l’ont déjà fait : Zalando a déjà entièrement déployé PostgreSQL sur Kubernetes ».
Pour autant, ce cas d’usage spécifique n’est pas soutenu par un éditeur : les ingénieurs de la boutique en ligne ont libéré leur propre opérateur sur GitHub.