Projet DevOps : Déploiement Continu avec Docker, Kubernetes, Jenkins, Terraform, Ansible, Prometheus, Grafana, ELK, et SonarQube
Ce projet représente une implémentation complète de pratiques DevOps pour faciliter le développement, le déploiement et la gestion de logiciels. Il met en œuvre un ensemble d'outils et de technologies modernes pour automatiser les processus de développement, de test et de déploiement.
Le projet commence par l'utilisation de Git pour la gestion du code source, suivie de l'intégration continue et du déploiement continu (CI/CD) avec Jenkins. En utilisant Docker, les applications sont conteneurisées pour garantir la portabilité et la reproductibilité de l'environnement.
Kubernetes est utilisé pour l'orchestration des conteneurs, assurant une gestion efficace des ressources et une haute disponibilité des applications. Terraform est employé pour la gestion de l'infrastructure en tant que code, permettant le déploiement et la mise à l'échelle automatiques de l'infrastructure sur différents fournisseurs cloud.
Ansible est utilisé pour la configuration et le déploiement des serveurs, assurant une gestion centralisée et cohérente des configurations. Prometheus est utilisé pour la surveillance et l'alerte, tandis que Grafana est utilisé pour la visualisation des données de surveillance.
ELK (Elasticsearch, Logstash, Kibana) est utilisé pour l'analyse des journaux et la gestion des logs, fournissant une visibilité et une analyse approfondie des données de journalisation. SonarQube est utilisé pour l'analyse statique du code, assurant la qualité et la sécurité du code.
- Git: Gestion du code source et versionnement
- Docker: Conteneurisation des applications
- Kubernetes: Orchestration des conteneurs
- Jenkins: Intégration continue et déploiement continu (CI/CD)
- Terraform: Infrastructure en tant que code
- Ansible: Configuration et déploiement automatisés
- Prometheus: Surveillance et alerte
- Grafana: Visualisation des données de surveillance
- ELK (Elasticsearch, Logstash, Kibana): Analyse des journaux
- SonarQube: Analyse statique du code
Le projet comprend également un mini site web dynamique, développé pour démontrer les fonctionnalités et les capacités du système. Ce site web contient un formulaire interactif et utilise des technologies modernes pour offrir une expérience utilisateur fluide et réactive.
Initialement, le projet a débuté en mettant en avant le système Windows pour le développement. Cependant, à partir de Terraform, j'ai basculé vers Ubuntu, ce qui a été reflété dans la gestion du code avec la création d'une branche dédiée "ubuntubranch".