Ministères
sociaux
Atlas
Plateforme d'hébergement des ministères sociaux
Configurer et gérer des systèmes de gestion de base de données
Ce guide pratique vous montre comment configurer et gérer des SGBD dans la plateforme Atlas. Il est valide pour à la fois les bases de données PostgreSQL et Redis (Valkey).
Prérequis
- Avoir un compte sur la plateforme Atlas
- Être administrateur de workspace ou avoir les droits nécessaires
- Avoir un workspace déjà créé
- Avoir au moins un DeploymentTarget créé
- Avoir accès au dépôt GitOps de votre workspace
Types d'implémentations
Atlas propose deux types d'implémentations pour les bases de données PostgreSQL :
- CNPG (CloudNativePG) : Déploiement dans le cluster Kubernetes, adapté pour les environnements de développement et de test.
- Managed (OVH) : Cluster de base de données managé, recommandé pour les environnements de production.
Note: pour Redis, à ce jour seulement l'implémentation OVH est proposée.
Création d'un DatabaseCluster
1. Cloner le dépôt GitOps de votre workspace
1 2 | |
2. Créer un fichier YAML pour le DatabaseCluster
Créez un nouveau fichier YAML dans le dossier resources du dépôt. Nommez-le de manière significative, par exemple ma-db-dev.yaml.
1 2 | |
3. Définir la configuration du DatabaseCluster
Ouvrez le fichier ma-db-dev.yaml dans votre éditeur préféré et ajoutez la configuration appropriée selon le type d'implémentation que vous souhaitez utiliser.
Option 1 : Configuration CNPG (pour développement/test)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |
Option 2 : Configuration Managed (pour production)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
Assurez-vous de remplacer :
- ma-db-dev ou ma-db-prod par un nom significatif pour votre base de données
- mon-app-dev ou mon-app-prod par le nom de votre DeploymentTarget
- dev ou prod par le nom de la zone appropriée
4. Pousser les changements vers le dépôt
1 2 3 | |
5. Vérifier la création du service
Une fois les changements poussés, ArgoCD détectera automatiquement les modifications et créera la ressource. Vous pouvez vérifier l'état de la création dans ArgoCD.
- Accédez à ArgoCD via l'interface Atlas
- Recherchez l'application correspondant à votre workspace
- Vérifiez que le votre service a été créé avec succès
Paramètres de configuration
Paramètres communs
| Paramètre | Description | Valeur par défaut | Requis |
|---|---|---|---|
name |
Nom de la ressource. Ce champ est immuable et ne peut pas être modifié ultérieurement. | - | Oui |
implementation |
(Postgres DatabaseCluster uniquement) Implémentation du moteur à utiliser. Ce champ est immuable et ne peut pas être modifié ultérieurement. Valeurs possibles: cnpg, managed |
- | Oui |
version |
Version souhaité pour votre service | 15 pour PostgreSQL, 8.0 pour Redis |
Non |
diskSize |
Taille pour le stockage de la base de données, en GiB. | 80 |
Non |
zoneRef.name |
Référence à une Zone qui hébergera le DatabaseCluster. | - | Oui |
secretDeliveryTargets |
Liste des cibles auxquelles livrer le secret. | - | Oui |
Paramètres spécifiques à CNPG
| Paramètre | Description | Valeur par défaut | Requis |
|---|---|---|---|
cnpg.resources.requests.cpu |
Requests de CPU | - | Non |
cnpg.resources.requests.memory |
Requests de mémoire | - | Non |
cnpg.resources.limits.cpu |
Limits de CPU | - | Non |
cnpg.resources.limits.memory |
Limits de mémoire | - | Non |
Paramètres spécifiques à Managed (OVH)
| Paramètre | Description | Valeur par défaut | Requis |
|---|---|---|---|
ovh.plan |
Plan à utiliser pour le cluster de base de données managé | essential |
Non |
ovh.flavor |
Flavor à utiliser pour les instances de VM de support | db1-4 |
Non |
ovh.authorized_ips |
Un tableau d'adresses IP autorisées à se connecter au cluster | [] |
Non |
Format et accès aux informations de connexion
Les informations de connexion à la base de données sont automatiquement livrées au DeploymentTarget spécifié dans secretDeliveryTargets. Le secret est livré dans le format JSON suivant :
1 2 3 4 5 6 7 8 9 | |
Vous pouvez accéder à ces informations de deux façons :
Via Vault
- Accédez à Vault via l'interface Atlas
- Naviguez vers le chemin correspondant à votre DeploymentTarget
- Vous y trouverez les informations de connexion à la base de données
Via les secrets Kubernetes
Les informations de connexion sont également disponibles sous forme de secrets Kubernetes dans le namespace de votre DeploymentTarget. Vous pouvez y accéder dans votre application en montant le secret ou en utilisant les variables d'environnement.
Exemple d'utilisation dans un déploiement Kubernetes :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | |
(Postgres) Exemple d'utilisation avec TypeScript et Sequelize
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | |
Modification d'un service
La modification d'un service se fait en modifiant le fichier YAML correspondant dans le dépôt du workspace. Cependant, certains champs sont immuables et ne peuvent pas être modifiés après la création.
Champs immuables
spec.parameters.name: Le nom du DatabaseCluster ne peut pas être modifié après la création.spec.parameters.implementation: L'implémentation (cnpg ou managed) ne peut pas être modifiée après la création.
1. Cloner le dépôt GitOps de votre workspace (si ce n'est pas déjà fait)
1 2 | |
2. Modifier le fichier YAML du DatabaseCluster
Ouvrez le fichier resources/ma-db-dev.yaml dans votre éditeur préféré et modifiez la configuration selon vos besoins.
3. Pousser les changements vers le dépôt
1 2 3 | |
4. Vérifier la mise à jour du service
Une fois les changements poussés, ArgoCD détectera automatiquement les modifications et mettra à jour le service. Vous pouvez vérifier l'état de la mise à jour dans ArgoCD.
Suppression d'un service
La suppression d'un serv ice se fait en supprimant le fichier YAML correspondant du dépôt du workspace.
Attention : La suppression d'un service entraînera également la suppression de la base de données et de toutes les données qu'elle contient. Assurez-vous de sauvegarder toutes les données importantes avant de supprimer un server.
1. Cloner le dépôt GitOps de votre workspace (si ce n'est pas déjà fait)
1 2 | |
2. Supprimer le fichier YAML du service
1 2 3 | |
3. Vérifier la suppression du service
Une fois les changements poussés, ArgoCD détectera automatiquement les modifications et supprimera le service. Vous pouvez vérifier l'état de la suppression dans ArgoCD.
Bonnes pratiques
Choix de l'implémentation (Postgres)
- Utilisez l'implémentation
cnpgpour les environnements de développement et de test. - Utilisez l'implémentation
managedpour les environnements de production.
Haute disponibilité
- Pour la haute disponibilité en production, définissez
replicasà une valeur supérieure à 1. - Pour les bases de données managées, utilisez un plan adapté à vos besoins de disponibilité.
Ressources
- Ajustez les ressources (CPU, mémoire) et la taille du disque en fonction des besoins de votre application.
- Pour les bases de données CNPG, définissez des resource limits appropriés pour éviter les problèmes de performance.
Sécurité
- Pour les bases de données managées, limitez l'accès en utilisant le champ
authorized_ips. - Utilisez des secrets pour stocker les informations de connexion à la base de données.
Sauvegardes
- Mettez en place des sauvegardes régulières de vos bases de données.
- Testez régulièrement la restauration de vos sauvegardes.
Résolution des problèmes courants
Le service n'est pas créé
- Vérifiez que vous avez bien poussé les changements vers le dépôt
- Vérifiez que le fichier YAML est correctement formaté
- Vérifiez que vous avez les droits nécessaires
- Vérifiez que la zone référencée existe
Erreur de connexion à la base de données
- Vérifiez que le service a été créé avec succès
- Vérifiez que les secrets ont été correctement livrés au DeploymentTarget
- Vérifiez que votre application utilise les bonnes informations de connexion
- Pour les bases de données managées, vérifiez que l'adresse IP de votre application est autorisée
Problèmes de performance
- Vérifiez les ressources allouées à votre base de données
- Surveillez l'utilisation des ressources dans Grafana
- Optimisez vos requêtes et votre schéma de base de données
- Augmentez les ressources si nécessaire