Projet d'études M2

Plateforme DevOps Cloud Native

Architecture DevOps cloud native complète évoluant en 8 phases d'un monolithe vers une solution containerisée avec EKS, pipeline CI/CD GitOps, monitoring ELK Stack et gestion multi-environnements automatisée.

Terraform EKS ArgoCD GitLab CI ELK Stack

Vue d'ensemble

Contexte

Ce projet académique vise à concevoir une infrastructure DevOps complète pour une application web de gestion des dossiers étudiants. L'objectif était de créer une plateforme évolutive démontrant les meilleures pratiques DevOps, de la conteneurisation à l'orchestration cloud native.

Objectifs

  • Migrer d'une architecture monolithique vers une solution cloud native
  • Implémenter une pipeline CI/CD complète avec GitOps
  • Déployer une infrastructure multi-environnements avec Terraform
  • Mettre en place un monitoring centralisé avec la stack ELK
  • Assurer la scalabilité et la haute disponibilité

Défis Techniques

  • Migration progressive sans interruption de service
  • Gestion des secrets multi-environnements avec AWS Secrets Manager
  • Orchestration des déploiements avec ArgoCD et GitLab CI
  • Configuration du monitoring distribué avec ELK Stack
  • Automatisation des tests de charge et de sécurité

Évolution en 8 Phases

Phases 1-2 : Fondations

Phase 1 : Création du VPC AWS et déploiement de l'application monolithique sur EC2 avec base de données intégrée.

Phase 2 : Séparation de la base de données vers Amazon RDS, introduction d'AWS Secrets Manager pour la gestion des configurations.

Phases 3-4 : Scalabilité

Phase 3 : Mise en place de la haute disponibilité avec Application Load Balancer et Auto Scaling Groups multi-AZ.

Phase 4 : Conteneurisation de l'application avec Docker et création du pipeline CI/CD avec GitLab, déploiement vers AWS ECR.

Phases 5-6 : Multi-environnements

Phase 5 : Implémentation de la gestion multi-environnements (dev/test/prod) avec Terraform Workspaces et secrets dédiés.

Phase 6 : Automatisation complète des déploiements avec approbations manuelles en production et déploiements automatiques en développement.

Phases 7-8 : Cloud Native

Phase 7 : Migration vers Amazon EKS avec ArgoCD pour le GitOps, remplacement des Auto Scaling Groups par l'orchestration Kubernetes.

Phase 8 : Sécurisation avec Basic Auth, tests de charge automatisés (1000 requêtes concurrentes) et monitoring centralisé avec la stack ELK.

Architecture

Architecture Cloud Native Finale

L'architecture finale utilise Amazon EKS comme orchestrateur principal, avec ArgoCD pour le déploiement GitOps. L'infrastructure est entièrement gérée en code avec Terraform et supporte trois environnements isolés (dev/test/prod).

Architecture Cloud Native DevOps

Infrastructure AWS

  • Compute : Amazon EKS avec worker nodes multi-AZ
  • Base de données : Amazon RDS MySQL avec Multi-AZ en production
  • Réseau : VPC dédié par environnement avec sous-réseaux publics/privés
  • Load Balancing : Application Load Balancer avec health checks
  • Registre : Amazon ECR pour les images Docker
  • Secrets : AWS Secrets Manager par environnement
  • Monitoring : Instance EC2 dédiée pour la stack ELK

Sécurité

  • Authentification Basic Auth pour l'accès à l'application
  • Gestion centralisée des secrets avec AWS Secrets Manager
  • Groupes de sécurité AWS avec règles restrictives
  • Isolation réseau entre environnements
  • RBAC Kubernetes pour l'accès aux ressources
  • Pipeline CI/CD avec tests de sécurité automatisés

Technologies

Stack Technique Complète

Application

Node.js, Express.js pour l'API REST, interface web JavaScript, base de données MySQL

Infrastructure & Cloud

AWS (EKS, RDS, ECR, Secrets Manager, ALB), Terraform pour l'Infrastructure as Code, VPC multi-environnements

DevOps & Orchestration

Docker, Kubernetes, ArgoCD, GitLab CI/CD, Helm charts, Auto Scaling

Monitoring & Observabilité

ELK Stack (Elasticsearch, Logstash, Kibana), Filebeat, tests de charge automatisés

Justifications Techniques

Amazon EKS : Choisi pour la gestion simplifiée de Kubernetes en production, la scalabilité automatique et l'intégration native AWS.

ArgoCD : Implémente le pattern GitOps pour un déploiement déclaratif et une synchronisation automatique avec le code.

Terraform : Assure la reproductibilité de l'infrastructure et facilite la gestion multi-environnements.

ELK Stack : Fournit une solution complète de monitoring centralisé pour l'observabilité de la plateforme.

Résultats & Impact

Métriques de Performance

1000
Requêtes/test de charge
3
Environnements gérés
8
Phases d'évolution
99.9%
Disponibilité cible

Impact & Bénéfices

  • Automatisation complète : Déploiements automatisés avec validation en dev, approbation en production
  • Scalabilité native : Auto-scaling Kubernetes remplaçant les groupes EC2
  • Observabilité centralisée : Monitoring en temps réel avec la stack ELK
  • Infrastructure reproductible : Gestion en code avec Terraform multi-environnements
  • Sécurité renforcée : Gestion centralisée des secrets et authentification

Apprentissages Clés

  • Maîtrise de l'orchestration Kubernetes en production avec Amazon EKS
  • Implémentation du pattern GitOps avec ArgoCD pour le déploiement continu
  • Gestion de l'Infrastructure as Code multi-environnements avec Terraform
  • Configuration avancée de pipelines CI/CD avec tests automatisés
  • Mise en place d'une stack de monitoring complète (ELK)
  • Intégration des services AWS pour une architecture cloud native