hmzaakun / CC_cicd

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Titre du Projet

Description

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.

Architecture

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.

Prérequis

  • Docker
  • Kubernetes (Minikube ou un autre environnement Kubernetes)
  • GitHub compte pour les actions de CI/CD
  • Prometheus et Grafana pour le monitoring

Installation et Configuration

  1. Clonez le dépôt du projet.
  2. Installez et configurez Minikube ou un autre environnement Kubernetes.
  3. Construisez les images Docker pour les différents services en utilisant les fichiers Dockerfile fournis.

Déploiement

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.

CI/CD avec GitHub Actions

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.

Monitoring avec Prometheus et Grafana

  1. Déployez Prometheus en utilisant le fichier de déploiement Kubernetes fourni.
  2. Configurez Prometheus pour surveiller vos services.
  3. Déployez Grafana et configurez des dashboards pour visualiser les métriques collectées par Prometheus.

Système d'Alerte et Recovery

Configurez les alertes dans Prometheus et Grafana pour surveiller la santé de vos services et recevoir des notifications en cas de problèmes.

Contribution

Si vous souhaitez contribuer à ce projet, veuillez suivre les conventions de codage standard et soumettre vos pull requests pour révision.

Licence

Ce projet est distribué sous la Licence Hamza.

About


Languages

Language:JavaScript 53.6%Language:TypeScript 20.9%Language:Shell 11.0%Language:HTML 6.2%Language:Jinja 4.5%Language:CSS 3.7%