Vue d'ensemble de l'architecture de la plateforme Atlas

Ce document explique l'architecture globale de la plateforme Atlas, ses composants principaux et comment ils interagissent entre eux.

Introduction

Atlas (Plateforme V2) est une plateforme self-service qui permet aux utilisateurs de définir et de déployer des ressources. Actuellement, cela se fait en publiant des fichiers YAML sur un dépôt GitOps. Cette approche GitOps permet une gestion déclarative et versionnable de l'infrastructure.

Note importante sur l'évolution future : Le mode de fonctionnement actuel basé sur GitOps sera dans un futur proche remplacé par un portail complet où les utilisateurs pourront commander leurs ressources via un formulaire web. À terme, le dépôt GitOps ne sera qu'un détail d'implémentation. Cette documentation reflète le fonctionnement présent de la plateforme.

Architecture hiérarchique

Atlas implémente une architecture multi-niveaux soigneusement structurée pour répondre aux besoins de gouvernance et d'isolation des ressources :

  1. Plateforme : Couche fondamentale englobant l'ensemble de l'infrastructure et des services, administrée par l'équipe de plateforme centrale.

  2. Zone : Segment d'infrastructure représentant un environnement technique distinct (développement, production) avec son propre cluster Kubernetes et ses ressources réseau. Chaque zone fournit l'infrastructure sous-jacente nécessaire au provisionnement des services.

  3. Organisation : Entité structurelle correspondant à une unité organisationnelle (département, direction) regroupant plusieurs projets connexes sous une gouvernance commune.

  4. Workspace : Espace projet dédié encapsulant l'ensemble des ressources et environnements nécessaires à une application ou un service spécifique.

  5. DeploymentTarget : Environnement applicatif spécifique (branche fonctionnelle, développement, préproduction, production) qui se matérialise concrètement par un namespace Kubernetes dédié dans le cluster de la zone spécifiée. Ce namespace isolé sert d'espace de déploiement pour les applications et services.

  6. Ressources : Services managés (buckets S3, clusters de bases de données) provisionnés au niveau des zones et dont les informations d'accès sont automatiquement distribuées aux DeploymentTargets concernés.

Cette organisation hiérarchique permet une séparation claire des responsabilités tout en facilitant la gestion des droits d'accès et l'isolation des ressources.

Écosystème technologique

Atlas intègre un ensemble de technologies de pointe pour offrir une plateforme robuste, sécurisée et évolutive :

Infrastructure GitOps

La plateforme implémente les principes GitOps, utilisant Git comme source unique de vérité pour la configuration de l'infrastructure. Cette approche déclarative permet :

  • Une traçabilité complète des modifications via l'historique Git
  • Une structure hiérarchique de dépôts reflétant l'organisation de la plateforme :
  • Dépôts au niveau organisation pour la gestion des workspaces
  • Dépôts au niveau workspace pour le provisionnement des ressources et le déploiement des applications

Orchestration et synchronisation avec ArgoCD

ArgoCD constitue le moteur de synchronisation central, assurant que l'état réel de l'infrastructure correspond toujours à l'état souhaité défini dans les dépôts Git. Ce composant :

  • Détecte automatiquement les modifications dans les dépôts Git
  • Applique les changements de configuration aux ressources correspondantes
  • Fournit une interface visuelle pour surveiller l'état de synchronisation

Infrastructure Kubernetes

Kubernetes forme le socle technique d'exécution, offrant une plateforme d'orchestration de conteneurs hautement disponible et évolutive :

  • Chaque zone dispose d'un cluster Kubernetes dédié
  • Les DeploymentTargets sont matérialisés par des namespaces isolés
  • L'infrastructure sous-jacente est abstraite pour les utilisateurs finaux

Gestion sécurisée des secrets avec Vault

Vault assure la gestion centralisée et sécurisée des informations sensibles :

  • Stockage chiffré des secrets d'accès aux ressources
  • Distribution automatique des secrets aux DeploymentTargets autorisés
  • Accès contrôlé via une interface web ou via les secrets Kubernetes

Surveillance et observabilité avec Grafana

Grafana offre des capacités avancées de visualisation et d'analyse des métriques :

  • Tableaux de bord personnalisés par workspace
  • Surveillance en temps réel des performances des ressources
  • Alertes configurables sur des seuils prédéfinis

Gestion des identités et des accès avec Keycloak

Keycloak implémente une solution complète d'authentification et d'autorisation :

  • Authentification centralisée via OIDC
  • Gestion fine des rôles et des permissions
  • Interface self-service pour la gestion des comptes utilisateurs

Processus opérationnels

Cycle de vie des ressources

Le provisionnement et la gestion des ressources suivent un processus GitOps standardisé :

  1. Définition déclarative : L'utilisateur définit ou modifie la configuration souhaitée dans un fichier YAML au format standardisé
  2. Versionnement : Les modifications sont validées et poussées vers le dépôt Git approprié, assurant traçabilité et auditabilité
  3. Détection automatique : ArgoCD identifie les changements dans le dépôt et initie le processus de réconciliation
  4. Provisionnement : Les contrôleurs Kubernetes créent ou mettent à jour les ressources correspondantes selon la configuration
  5. Distribution des accès : Les informations d'authentification sont automatiquement générées et distribuées aux environnements autorisés

Mécanisme de distribution des secrets

La plateforme implémente une architecture sophistiquée pour la gestion sécurisée des informations d'accès :

  1. Le backend de la plateforme génère les secrets nécessaires lors du provisionnement des ressources
  2. Ces informations sensibles sont stockées de manière chiffrée dans Vault
  3. External Secret Operator établit un pont sécurisé entre Vault et les namespaces Kubernetes
  4. Les secrets sont rendus disponibles aux applications sous forme de secrets Kubernetes standards
  5. Les utilisateurs peuvent accéder aux informations d'authentification via l'interface Vault ou directement dans leur environnement Kubernetes

Gouvernance et sécurité

Atlas implémente un modèle de contrôle d'accès basé sur les rôles (RBAC) qui s'aligne sur la structure hiérarchique de la plateforme. Ce modèle assure une séparation claire des responsabilités tout en permettant une délégation contrôlée des droits d'administration :

  • Administrateurs de plateforme : Disposent de droits étendus sur l'ensemble de l'infrastructure, incluant la gestion des zones, des organisations et des politiques globales de sécurité

  • Administrateurs d'organisation : Gèrent le périmètre de leur entité organisationnelle, avec la capacité de créer et configurer des workspaces pour les différents projets

  • Administrateurs de workspace : Responsables de la gestion des ressources et des environnements au sein de leur espace projet, incluant le provisionnement de services managés et la configuration des Deployment Targets

  • Utilisateurs spécialisés : Reçoivent des permissions granulaires sur des environnements spécifiques selon quatre profils principaux :

  • Admin : Gestion complète d'un environnement de déploiement
  • Editor : Modification des applications et des configurations
  • Viewer : Consultation des ressources sans capacité de modification
  • Secret-viewer : Accès en lecture aux informations d'authentification

Conclusion

La plateforme Atlas représente une solution d'infrastructure moderne qui répond aux défis complexes de la gestion des environnements cloud et des ressources applicatives. Son architecture a été conçue autour de plusieurs principes fondamentaux :

  • Approche déclarative : L'infrastructure est définie comme du code, permettant reproductibilité et cohérence
  • Automatisation complète : Les processus de provisionnement et de configuration sont entièrement automatisés
  • Gouvernance intégrée : Le modèle hiérarchique facilite l'application de politiques de sécurité adaptées à chaque niveau
  • Expérience utilisateur simplifiée : L'abstraction des complexités sous-jacentes offre une interface self-service intuitive
  • Évolutivité : La conception modulaire permet d'adapter la plateforme à des besoins croissants

Cette architecture équilibre les exigences parfois contradictoires de sécurité, de flexibilité et de facilité d'utilisation, tout en préparant le terrain pour l'évolution future vers une interface web complète qui simplifiera davantage l'expérience utilisateur.

Paramètres d’affichage

Choisissez un thème pour personnaliser l’apparence du site.