DLB02 Industrialiser PostgreSQL
DLB02 Industrialiser PostgreSQL
Industrialiser PostgreSQL
18.10
Dalibo SCOP
http ://[Link]/
Industrialiser PostgreSQL
REVISION : 18.10
COPYRIGHT : © 2005-2018 DALIBO SARL SCOP
Le logo éléphant de PostgreSQL (“Slonik”) est une création sous copyright et le nom
“PostgreSQL” est marque déposée par PostgreSQL Community Association of Canada.
Remerciements : Ce livre blanc est le fruit d’un travail collectif. Nous remercions chaleu-
reusement ici toutes les personnes qui ont contribué directement ou indirectement à cet
ouvrage, notamment : Carole Arnaud, Damien Clochard, Léo Cossic, Adrien Nayrat, Tho-
mas Reiss, Maël Rimbault. Nous remercions également la société DSIA qui a contribué au
financement de ce livre blanc.
À propos de DALIBO :
Nos livres blancs sont issus de plus de 12 ans d’études, d’expérience de terrain et de pas-
sion pour les logiciels libres. Pour Dalibo, l’utilisation de PostgreSQL n’est pas une marque
d’opportunisme commercial, mais l’expression d’un engagement de longue date. Le choix
de l’Open Source est aussi le choix de l’implication dans la communauté du logiciel.
Au-delà du contenu technique en lui-même, notre intention est de transmettre les valeurs
qui animent et unissent les développeurs de PostgreSQL depuis toujours : partage, ouver-
ture, transparence, créativité, dynamisme… Le but premier de nos livres blancs est de vous
aider à mieux exploiter toute la puissance de PostgreSQL mais nous espérons également
qu’ils vous inciteront à devenir un membre actif de la communauté en partageant à votre
tour le savoir-faire que vous aurez acquis avec nous.
Nous mettons un point d’honneur à maintenir nos productions à jour, avec des infor-
mations précises et des exemples détaillés. Toutefois malgré nos efforts et nos multiples
relectures, il est probable que ce document contienne des oublis, des coquilles, des impré-
cisions ou des erreurs. Si vous constatez un souci, n’hésitez pas à le signaler via l’adresse
contact@[Link] !
Table des Matières
Industrialiser PostgreSQL 9
Le concept de “socle” 11
3 axes de travail : outils, procédures, manuels . . . . . . . . . . . . . . . . . . . . 11
7 domaines couverts : de l’installation à la haute-disponibilité . . . . . . . . . . . 11
Le Domaine Architecture 13
Le Domaine Déploiement 15
Installation des logiciels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Gestion des instances, bases et utilisateurs . . . . . . . . . . . . . . . . . . . . . 15
Le Domaine Maintenance 16
Outils d’analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Procédures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Le Domaine Supervision 20
Organiser la collecte d’information . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Le Domaine Haute-Disponibilité 22
Le Domaine Sécurité 24
Intégration Continue 26
Développement interne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Développement sous-traité à l’extérieur . . . . . . . . . . . . . . . . . . . . . . . 27
Se procurer un socle déjà construit . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Annexe A : Références 29
Annexe B - Définitions 30
8
INDUSTRIALISER POSTGRESQL
INDUSTRIALISER POSTGRESQL
Les Directions des Systèmes d’Information (DSI) sont confrontés à plusieurs défis dans la
gestion de leur “actif PostgreSQL” :
• à court terme, et dans des délais souvent contraints, elles doivent mettre à la dispo-
sition des applications un “service PostgreSQL” totalement exploitable, robuste et
performant,
4 ENJEUX MAJEURS
Pour chacun de ces niveaux, il existe en effet un certain nombre d’écueils à éviter. Par
exemple :
2. un délai trop long de mise à disposition de l’infrastructure PostgreSQL pour les ap-
plications serait aussi préjudiciable :
Il apparaît donc clairement que l’industrialisation de la solution PostgreSQL est une étape
stratégique dans la modernisation d’un Système d’Information.
10
LE CONCEPT DE “SOCLE”
LE CONCEPT DE ``SOCLE''
La réponse à ce triple défi consiste à bâtir, à déployer puis à maintenir ce qu’on peut
appeler un “socle PostgreSQL”, qui constituera une brique essentielle de la composante
“bases de données” du Système d’Information.
Ce socle ainsi bâti est donc constitué d’un ensemble cohérent de logiciels, procédures et
documentations couvrant tous les besoins relatifs à la fourniture du “service PostgreSQL”.
Ce socle a ensuite vocation à être déployé de manière standardisée sur tous les environ-
nements qui le nécessite.
Autour de ces 3 axes de travail, les sujets peuvent décomposés en 7 domaines fonction-
nels :
4. Le domaine Sauvegarde définit les actions mise en oeuvre pour assurer la pérennité
des données, notamment le Plan de Reprise d'Activité (PRA)
11
http ://[Link]/
Industrialiser PostgreSQL
12
LE DOMAINE ARCHITECTURE
LE DOMAINE ARCHITECTURE
Avant de lancer la phase d’implémentation du socle, une étude doit être réalisée pour fixer
les choix d’architecture qui devront guider sa mise en œuvre.
Cette phase d’architecture doit être formalisée par un “Dossier d’Architecture Technique”
qui décrira dans le détail les choix d’architecture retenus.
Parmi les grands thèmes à traiter dans le cadre de l’étude d’architecture, citons :
• l’intégration des composants du socle sur les plateformes (types de serveur, sto-
ckage, ressources allouées,…),
• les relations entre les applications et les bases de données,
• les inter-relations entre les bases de données,
• l’évaluation de la Perte Maximale de Données Tolérable (PMDT), avec les moyens de
répondre à cet objectif : sauvegarde/restauration, archivage des journaux de tran-
sactions, “Point In Time Recovery”,
• les besoins en matière de sécurité (confidentialité, authentification, principes de
gestion des droits,…),
13
http ://[Link]/
Industrialiser PostgreSQL
• la quantification des flux entre les moteurs PostgreSQL et tous les composants ex-
ternes (applications, serveur d’archivage, de sauvegarde, de réplication,…).
Très peu de composants logiciels sont concernés par ce domaine. Néanmoins, des outils
de migration tels que ora2pg (outil facilitant la migration des bases Oracle et MySQL)
peuvent aider à la cartographie d’un parc de bases existantes candidates à une migration
vers PostgreSQL. (Cf. le Livre Blanc “Migrer d’Oracle à PostgreSQL1 ”)
1. [Link]
14
LE DOMAINE DÉPLOIEMENT
LE DOMAINE DÉPLOIEMENT
Comme le socle est destiné à être déployé sur potentiellement un grand nombre de ser-
veurs, le processus d’installation et de configuration doit être industrialisé.
Une fois les logiciels installés, il faut pouvoir créer une instance, la configurer, créer la ou
les bases de données et les utilisateurs nécessaires.
La configuration des instances doit, elle aussi, être standardisée sur l’ensemble du parc
PostgreSQL. Néanmoins, certains paramètres peuvent être à valoriser en fonction de la
taille de chaque instance (volumétrie, charge d’accès,…). La définition des règles de valo-
risation des “bons paramètres” conditionnera naturellement la qualité du “service Post-
greSQL”. Cette tâche essentielle requiert un bon niveau d’expertise sur le SGBD.
La gestion des instances, des bases de données et des utilisateurs impose de disposer,
pour chacun de ces types d’objet, de procédures de création, de suppression et de mo-
dification. Il faut également prévoir une procédure de duplication de base de données.
Toutes ces procédures doivent être documentées dans le “Manuel d’Exploitation”.
15
http ://[Link]/
Industrialiser PostgreSQL
LE DOMAINE MAINTENANCE
Pour limiter la charge de travail nécessaire pour ces tâches au quotidien, il est nécessaire
de disposer :
OUTILS D'ANALYSE
On peut classifier les outils d’analyse en deux catégories : ceux qui permettent d’avoir une
vision en temps réel de l’activité et ceux qui permettent d’avoir une vision à posteriori de
l’activité. La première catégorie est couverte par le Domaine Supervision décrit plus bas.
Parmi les outils qui permettent d’analyser le fonctionnement des instances PostgreSQL,
citons simplement deux logiciels :
2. [Link]
3. [Link]
16
LE DOMAINE MAINTENANCE
Les outils sélectionnés doivent permettent des diagnostics fins en apportant une vision
précise sur à minima : la consommation mémoire, les espaces disques, les I/O, le trafic
SQL, l’utilisation des journaux de transaction.
PROCÉDURES
Comme pour les autres procédures, celles-ci doivent être décrites dans le “Manuel d’Ex-
ploitation”.
17
http ://[Link]/
Industrialiser PostgreSQL
Les sauvegardes/restaurations constituent bien sûr un élément clé pour garantir la péren-
nité du patrimoine des données de l’entreprise ou de l’organisation. Avoir un socle solide
dans ce domaine est donc essentiel.
Or les fonctions offertes par le logiciel PostgreSQL dans ce domaine nécessitent d’être
enrichies par des logiciels complémentaires, tels que les deux composants issus de la R&D
Dalibo :
Quels que soient les outils sélectionnés, au delà de la simple conservation des sauve-
gardes des instances ou des bases de données, il est important de nos jours de pouvoir
mettre en place un archivage fiable des journaux de transaction afin d’être capable de
mettre en œuvre, en cas de besoin, les techniques de Point In Time Recovery (PITR).
4. [Link]
5. [Link]
18
LE DOMAINE SAUVEGARDE ET RESTAURATION
La solution globale retenue devra répondre aux objectifs de “Perte Maximale de Données
Tolérable” (PMDT) définis dans le Domaine Architecture.
Il est également conseillé de compléter cette documentation par la rédaction d’un “Plan
de Reprise d’Activité” qui décrit précisément le protocole à suivre pour reconstuire les
bases de données et remettre en route le service Postgres aprè sun incident majeur de
production.
19
http ://[Link]/
Industrialiser PostgreSQL
LE DOMAINE SUPERVISION
En matière d’outils, deux grandes approches sont possibles. On peut intégrer les compo-
sants PostgreSQL dans une supervision plus large, voir unifiée du système de production.
Mais on peut également bâtir une supervision dédiée à PostgreSQL.
Dans le premier cas, on pourra utiliser des logiciels comme Nagios ou Zabbix et dans
le second cas, des logiciels comme PoWA6 (suivi du trafic en temps réel), OPM7 ou
TemBoard8 (collecte et centralisation des statistiques d’activité du parc d’instances).
Dans quasiment tous les cas, il sera nécessaire de déployer sur les serveurs PostgreSQL
un agent de supervision. Le déploiement ou la désactivation d’un agent de supervision, et
l’activation d’une sonde PostgreSQL ou système doivent faire l’objet de procédures prêtes
à l’emploi et documentées.
6. [Link]
7. [Link]
8. [Link]
20
LE DOMAINE SUPERVISION
Mais la sélection et le déploiement des outils n’est qu’une première étape de ce chantier.
Il faut en effet définir également les métriques collectées et les seuils de déclenchement
associés. Cette activité requiert elle aussi un bon niveau d’expertise en administration
PostgreSQL.
La rédaction d’un “Guide de Supervision” permettra de formaliser ces choix et d’en garder
la trace.
21
http ://[Link]/
Industrialiser PostgreSQL
LE DOMAINE HAUTE-DISPONIBILITÉ
La mise en œuvre de ces techniques permet de bâtir des architectures avec un bon niveau
de haute disponibilité. Mais dans certains cas, il faut pouvoir aller plus loin. Typiquement,
deux fonctionnalités complémentaires peuvent être souhaitées :
Dans le premier cas, on pourra choisir un logiciel tel que pgBouncer9 . Dans le second
cas, on pourra tirer profit du logiciel PostgreSQL Automatic Failover10 (PAF), basé sur
9. [Link]
10. [Link]
22
LE DOMAINE HAUTE-DISPONIBILITÉ
23
http ://[Link]/
Industrialiser PostgreSQL
LE DOMAINE SÉCURITÉ
Néanmoins, il peut être parfois nécessaire d’aller plus loin dans la sécurité.
24
LE DOMAINE SÉCURITÉ
25
http ://[Link]/
Industrialiser PostgreSQL
INTÉGRATION CONTINUE
Dans ce qui précède, nous avons défini ce que peut être le concept de socle et nous en
avons précisé le contenu. L’enjeu ici n’est pas simplement de réussir l’investissement initial
poru mettre en place le socle mais de “faire vivre” ce socle en incoporant progressivement
les nouveautés et les améliorations produite par la communauté PostgreSQL.
Vous devez donc aligner le cylce de vie du socle sur celui de PostgreSQL. Bonne nouvelle
! Le cycle des versions de Postgres est à la fois simple, régulier et dynamique :
Par exemple : si vous avez développé un socle autour de PostgreSQL 9.6 en 2016 vous
pouvez conserver cette version jusqu’en 2021. A l’inverse il peut être tentant d’intégrer
chaque année la nouvelle version de Postgres dans le socle afin de fournir les toutes
dernières avancées aux équipes projets…
Nous préconisons généralement une stratégie intermédaire basée sur des cycles de 3 ans
qui garantit à la fois la stabilité des environnements et l’enrichissement continu du service
PostgreSQL.
Notons également qu’il est possible de développer un socle multi-versions mais que cela
implique un investissement très élévé en terme de maintenance.
Examinons maintenant quelles sont les différentes façons de développer puis de mainte-
nir un socle. Trois types d’approches sont envisageables :
26
INTÉGRATION CONTINUE
DÉVELOPPEMENT INTERNE
Globalement, l’équipe ainsi constituée devra avoir un bon niveau d’expertise sur le lo-
giciel PostgreSQL, mais aussi une bonne connaissance des outils périphériques et plus
largement des technologies des Systèmes d’Information. Elle devra être capable de coder
de manière fiable et de documenter les procédures d’exploitation.
Les charges de travail que nous pouvons voir chez nos clients qui ont entrepris cette
démarche sont souvent aux alentours d’une personne à temps plein pour la phase de
développement pendant 9 à 12 mois (suivant les fonctionnalités mises en œuvre), et d’à
minima un demi équivalent temps plein par la suite pour le maintien en condition opéra-
tionnelle du socle.
La disponibilité et le niveau de compétence des ressources internes sont donc les facteurs
clés de réussite de cette approche.
Enfin, il est possible de se procurer sur le marché un socle déjà construit. C’est ce que
propose par exemple Dalibo avec ses deux socles “Dalibo Essential PostgreSQL” et “Dalibo
Advanced Postgres”.
Associés aux formations, ces socles constituent un moyen de rapidement mettre en place
un service PostgreSQL. Mais ils répondent aussi à la nécessité de standardiser les envi-
ronnements PostgreSQL déployés au sein du Système d’Information et enfin d’assurer la
pérennité du socle sur le long terme.
28
ANNEXE A : RÉFÉRENCES
ANNEXE A : RÉFÉRENCES
Catalogue de Formation :
[Link]
SLA Standard :
[Link]
29
http ://[Link]/
Industrialiser PostgreSQL
ANNEXE B - DÉFINITIONS
Instance : désigne un serveur PostgreSQL. Une instance PostgreSQL peut contenir plu-
sieurs bases de donnée. Il est possible d’héberger plusieurs instances sur un hôte Linux
30
NOTES
NOTES
NOTES
NOTES
NOTES
NOTES
NOTES
NOS AUTRES PUBLICATIONS
FORMATIONS
LIVRES BLANCS
• Industrialiser PostgreSQL
TÉLÉCHARGEMENT GRATUIT
Les versions électroniques de nos publica ons sont disponibles gratuitement sous licence
open-source ou sous licence Crea ve Commons. Contactez-nous à l’adresse contact@
[Link] pour plus d’informa on.
DALIBO, L’EXPERTISE POSTGRESQL
Depuis 2005, Dalibo met à la disposi on de ses clients son savoir-faire dans le domaine
des bases de données et propose des services de conseil, de forma on et de support aux
entreprises et aux ins tu onnels.