Ce projet illustre la mise en place d'une application microservices avec Kubernetes, intégrant des pratiques de CI/CD, de monitoring et d'alerting. Utilisant des technologies comme Docker, Kubernetes, Prometheus, Grafana et GitHub Actions, ce projet offre un aperçu complet de la mise en œuvre d'une infrastructure moderne et évolutive pour les applications basées sur des microservices.
L'application est construite autour d'une architecture de microservices, où chaque composant du service est conteneurisé et déployé de manière indépendante sur Kubernetes. Cela inclut des services tels que une base de données MongoDB, une API et une interface utilisateur web.
- Docker
- Kubernetes (Minikube ou un autre environnement Kubernetes)
- GitHub compte pour les actions de CI/CD
- Prometheus et Grafana pour le monitoring
- Clonez le dépôt du projet.
- Installez et configurez Minikube ou un autre environnement Kubernetes.
- Construisez les images Docker pour les différents services en utilisant les fichiers Dockerfile fournis.
Utilisez kubectl apply -f [fichier-de-deploiement]
pour déployer chaque service sur Kubernetes. Les fichiers de déploiement se trouvent dans le dossier k8s/deployments
.
Le pipeline CI/CD est configuré dans le dossier .github/workflows
. Il inclut les étapes de construction des images Docker, d'exécution des tests unitaires, et de déploiement sur Kubernetes.
- Déployez Prometheus en utilisant le fichier de déploiement Kubernetes fourni.
- Configurez Prometheus pour surveiller vos services.
- Déployez Grafana et configurez des dashboards pour visualiser les métriques collectées par Prometheus.
Configurez les alertes dans Prometheus et Grafana pour surveiller la santé de vos services et recevoir des notifications en cas de problèmes.
Si vous souhaitez contribuer à ce projet, veuillez suivre les conventions de codage standard et soumettre vos pull requests pour révision.
Ce projet est distribué sous la Licence Hamza.