Ministères
sociaux

Atlas
Plateforme d'hébergement des ministères sociaux
Concepts clés de la plateforme Atlas
Ce document présente les concepts clés de la plateforme Atlas, leurs relations et leur rôle dans l'architecture globale.
Hiérarchie des ressources
La plateforme Atlas organise ses ressources selon une hiérarchie bien définie, qui permet une gestion efficace des accès et une isolation appropriée des ressources.
Zone
Une Zone est une unité d'infrastructure fournie par les administrateurs de la plateforme. Elle rassemble toutes les ressources nécessaires au déploiement des ressources workspace, notamment :
- Un cluster Kubernetes
- Des réseaux pour le déploiement des bases de données managées
- Des services associés (Vault, ArgoCD, etc.)
Une Zone correspond généralement à un environnement de déploiement (dev, prod).
Organisation
Une Organisation est une entité administrative créée par les administrateurs de la plateforme. Elle correspond généralement à un département ou une équipe qui gère plusieurs projets. Une Organisation peut contenir plusieurs Workspaces.
Workspace
Un Workspace est un espace de travail dédié à un projet spécifique. Il est créé par les administrateurs de l'Organisation et contient toutes les ressources nécessaires au projet, notamment :
- Un dépôt GitOps pour la définition des ressources
- Des DeploymentTargets pour le déploiement des applications
- Des ressources comme les Buckets et les DatabaseClusters
DeploymentTarget
Un DeploymentTarget représente un environnement de déploiement pour les applications. Il correspond généralement à un environnement spécifique (feature-branch, dev, preprod, prod) et se matérialise par un namespace Kubernetes dans la Zone spécifiée.
Pour chaque DeploymentTarget, une application GitOps unique est créée pour surveiller le dossier dédié dans le dépôt Workspace associé.
Bucket
Un Bucket est un espace de stockage compatible S3 pour le stockage de fichiers. Les Buckets ont un lifecycle indépendant des applications et doivent être créés au préalable. Ils sont déployés dans une Zone spécifique et livrent leurs informations de connexion à un ou plusieurs DeploymentTargets.
DatabaseCluster
Un DatabaseCluster est un cluster PostgreSQL pour une ou plusieurs bases de données. Les DatabaseClusters ont un lifecycle indépendant des applications et doivent être créés au préalable. Ils sont déployés dans une Zone spécifique et livrent leurs informations de connexion à un ou plusieurs DeploymentTargets.
Flux de travail GitOps
La plateforme Atlas utilise une approche GitOps pour la gestion des ressources et le déploiement des applications.
Dépôts GitOps
La plateforme Atlas utilise deux types de dépôts GitOps :
- Dépôt d'Organisation : Un dépôt par Organisation pour la création des Workspaces.
- Dépôt de Workspace : Un dépôt par Workspace pour la définition des ressources (Buckets, DatabaseClusters, DeploymentTargets).
Structure du dépôt de Workspace
Le dépôt GitOps d'un Workspace est structuré de la manière suivante :
resources/
: Dossier contenant les définitions des ressources workspace (Buckets, DatabaseClusters, DeploymentTargets).deployment-targets/<nom-du-deployment-target>/
: Dossiers dédiés à chaque DeploymentTarget, contenant les manifestes Kubernetes à déployer.
Flux de déploiement
- L'utilisateur pousse une définition de ressource dans le dépôt GitOps.
- ArgoCD détecte le changement et applique le manifeste.
- Kubernetes crée ou met à jour la ressource.
- La ressource livre ses secrets aux DeploymentTargets spécifiés.
- ArgoCD rapporte le statut de la ressource.
Outils de la plateforme
La plateforme Atlas s'appuie sur plusieurs outils pour fournir ses fonctionnalités :
ArgoCD
ArgoCD est utilisé pour le déploiement continu des ressources et des applications. Il surveille les dépôts GitOps et applique les changements automatiquement.
Vault
Vault est utilisé pour la gestion des secrets. Les ressources comme les Buckets et les DatabaseClusters stockent leurs informations de connexion dans Vault, qui les rend accessibles aux DeploymentTargets autorisés.
Grafana
Grafana est utilisé pour la surveillance des ressources déployées. Il permet aux utilisateurs de visualiser les métriques de leurs applications et ressources.
Keycloak
Keycloak est utilisé pour l'authentification et l'autorisation. Il permet aux administrateurs de la plateforme d'attribuer des rôles aux utilisateurs et de gérer les accès.
Modèle de rôles et permissions
La plateforme Atlas définit plusieurs rôles avec des permissions spécifiques :
Administrateur de la plateforme
L'administrateur de la plateforme peut créer des Zones, des Organisations et des Workspaces. Il a un accès complet à toutes les ressources de la plateforme.
Administrateur d'Organisation
L'administrateur d'Organisation peut créer des Workspaces au sein de son Organisation. Il a un accès complet aux ressources de son Organisation.
Administrateur de Workspace
L'administrateur de Workspace peut créer des ressources (Buckets, DatabaseClusters, DeploymentTargets) au sein de son Workspace. Il a un accès complet aux ressources de son Workspace.
Développeur
Le développeur peut utiliser les ressources du Workspace auquel il a accès, mais ne peut pas créer de nouvelles ressources. Il a un accès en lecture seule aux ressources du Workspace.