Ce projet met en œuvre une chaîne DevOps complète sur Microsoft Azure, incluant déploiement automatisé, Infrastructure as Code, conteneurisation et monitoring applicatif.
Il démontre une approche professionnelle de mise en production d’une application cloud-native avec supervision et observabilité.
- Node.js / Express
- Docker
- GitHub Actions (CI/CD)
- Terraform (Infrastructure as Code)
- Microsoft Azure
- Azure App Service
- Application Insights
- Log Analytics Workspace
- Azure Monitor
L’application est conteneurisée avec Docker, déployée sur Azure App Service et supervisée via Azure Monitor, Application Insights et Log Analytics.
Vue de l’application déployée avec les principales technologies utilisées.
Exécution réussie du pipeline CI/CD pour le déploiement automatique sur Azure.
Application déployée sur Azure App Service avec suivi des métriques et performances.
- Déploiement automatisé sur Azure
- Infrastructure as Code avec Terraform
- Pipeline CI/CD GitHub Actions
- Monitoring et observabilité applicative
- Centralisation des logs
- Alerting Azure Monitor
- Health check applicatif
Avant de commencer :
- Un compte Azure
- Azure CLI installé
- Terraform installé
- Docker installé
- Node.js installé
- Un dépôt GitHub
- cd app
- npm install
- npm run dev
Accès :
Construire l’image :
- docker build -t devops-app -f docker/Dockerfile .
Lancer le conteneur :
- docker run -p 3000:3000 devops-app
- cd terraform
- terraform init
- terraform plan
- terraform apply
Ressources crées :
- Resource Group
- App Service Plan
- Linux Web App
- Application Insights
- Log Analytics Workspace
- Azure Monitor Alerts
Dans GitHub :
ouvrir le dépôt
- aller dans Settings > Secrets and variables > Actions
ajouter le secret :
- AZURE_WEBAPP_PUBLISH_PROFILE
Ce secret contient le Publish Profile de l’application Azure.
À chaque push sur la branche main, le pipeline exécute :
- checkout du code
- installation des dépendances
- lancement des tests
- build Docker
- déploiement Azure
Application Insights : permet de suivre :
- requêtes HTTP
- temps de réponse
- erreurs et exceptions
- événements personnalisés
- traces applications
Log Analytics Workspace : centralise les logs et métriques Azure.
Azure Monitor Alerts : des alertes sont configurées sur :
- CPU élevée
- temps de réponse trop long
- disponibilité faible
Healthcheck : L’endpoint /health permet à Azure de vérifier que l’application répond correctement.
Exemple :
curl http://localhost:3000/health
Réponse attendue :
{ "status": "UP", "timestamp": "2026-03-30T10:00:00.000Z" }
Tester les erreurs : pour tester la remontée d’erreurs dans Application Insights :
- GET /error-test
Dans Azure Portal, vérifier :
- Web App disponible
- Health check actif
- Application Insights connecté
- Logs visibles
- alertes créées
- métriques collectées
- tests unitaires réels avec Jest
- déploiement multi-environnements (dev / prod)
- dashboards Azure Monitor
- Gestion des secrets via Azure Key Vault
- Azure Container Registry
- Kubernetes avec AKS
- Portofolio : www.kbf-devops.fr
- GitHub : GitHub.com/fischer20/azure-devops-project
👨💻 Auteur
Fischer KOUEBENA BANKAZI
- Ingénieure Cloud & DevOps
- Azure • Entra ID • Microsoft 365 • Terraform • Docker • CI/CD



