Déploiement Automatisé de l’Infrastructure Azure IBIS-X
Ce guide décrit le processus de déploiement automatisé complet de l’application IBIS-X sur Microsoft Azure en utilisant les scripts Terraform optimisés et les outils d’orchestration Kubernetes.
🚀 Nouvelle Approche : Déploiement 100% Automatisé
Nous avons développé un script de déploiement entièrement automatisé qui gère :
-
✅ Installation automatique de Helm si non présent
-
✅ Création de l’infrastructure Azure via Terraform
-
✅ Installation de NGINX Ingress Controller via Helm
-
✅ Installation de Cert-Manager pour les certificats SSL/TLS automatiques
-
✅ Configuration des règles de sécurité réseau (ports 80, 443, 22)
-
✅ Déploiement des applications avec Kustomize
-
✅ Exécution des migrations de base de données
-
✅ Changement de nom du projet : IBIS-X → IBIS-X
Objectif
Déployer rapidement et de manière reproductible l’ensemble de l’infrastructure et des applications IBIS-X sur Azure avec une seule commande.
Prérequis
-
Un compte Microsoft Azure avec un abonnement Pay-As-You-Go actif
-
Azure CLI installé et configuré
-
Docker installé et en cours d’exécution
-
Accès en écriture au repository Git du projet
🔧 Préparation du Déploiement
1. Nettoyage de l’Infrastructure Existante (si nécessaire)
Si vous avez déjà déployé manuellement des ressources IBIS-X, commencez par les nettoyer :
# Nettoyer l'infrastructure existante
./scripts/destroy-azure-infrastructure.sh
⚠️ ATTENTION: Cette commande supprime DÉFINITIVEMENT toutes les ressources Azure existantes. Sauvegardez vos données importantes avant de continuer.
2. Configuration des Variables Terraform
Le script va automatiquement créer le fichier terraform.tfvars
s’il n’existe pas, mais vous pouvez le préparer :
cd terraform/azure-infrastructure/
cp terraform.tfvars.example terraform.tfvars
Éditez le fichier selon vos besoins. Les valeurs par défaut sont optimisées pour IBIS-X :
project_name = "ibis-x"
environment = "prod"
location = "East US"
aks_node_count = 2
aks_node_vm_size = "Standard_D2s_v3"
📋 Processus de Déploiement Détaillé
Le script automatisé exécute les étapes suivantes :
1. Vérification des Prérequis
-
Vérifie la présence d’Azure CLI, Terraform, kubectl, Docker
-
Installe automatiquement Helm si nécessaire
3. Infrastructure Terraform
-
Initialise Terraform
-
Génère et affiche le plan de déploiement
-
Crée toutes les ressources Azure :
-
Groupe de ressources
-
Cluster AKS avec réseau virtuel
-
Azure Container Registry
-
Compte de stockage Azure
-
IP publique
-
Règles de sécurité réseau (ports 80, 443, 22)
-
Log Analytics et Application Insights
-
4. Configuration Kubernetes
-
Configure kubectl pour le cluster AKS
-
Installe NGINX Ingress Controller via Helm
-
Installe Cert-Manager via Helm pour les certificats SSL automatiques
5. Construction et Push des Images
-
Construit les images Docker pour :
-
ibis-x-api-gateway
-
ibis-x-service-selection
-
ibis-x-frontend
-
-
Les pousse vers Azure Container Registry
📊 Informations Post-Déploiement
À la fin du déploiement, le script affiche :
🎉 Déploiement IBIS-X terminé avec succès !
📋 Informations de l'application :
==================================
🌐 URL de l'application: https://ibisx.fr
🌐 URL de l'API: https://api.ibisx.fr
🌐 URL HTTP (temporaire): http://<IP_PUBLIQUE>
🗄️ Storage Account: <nom_compte>
🐳 Container Registry: <nom_acr>.azurecr.io
☸️ Cluster AKS: <nom_cluster>
📦 Resource Group: <nom_groupe_ressources>
🌐 Configuration DNS
Pour activer les certificats SSL automatiques, configurez vos enregistrements DNS :
A ibisx.fr -> <IP_PUBLIQUE>
A api.ibisx.fr -> <IP_PUBLIQUE>
Les certificats Let’s Encrypt se génèreront automatiquement une fois les DNS configurés.
🔧 Maintenance et Debugging
Voir les Logs
# Logs des applications
kubectl logs -f deployment/api-gateway -n ibis-x
kubectl logs -f deployment/service-selection -n ibis-x
kubectl logs -f deployment/frontend -n ibis-x
# Logs de l'Ingress Controller
kubectl logs -f deployment/ingress-nginx-controller -n ingress-nginx
# Logs de Cert-Manager
kubectl logs -f deployment/cert-manager -n cert-manager
🗑️ Nettoyage et Reconstruction
Pour nettoyer complètement l’infrastructure et redéployer :
# 1. Supprimer toute l'infrastructure
./scripts/destroy-azure-infrastructure.sh
# 2. Redéployer
./scripts/deploy-to-azure.sh
⚠️ Résolution des Problèmes Courants
🎯 Avantages du Nouveau Processus
-
Reproductibilité : Déploiement identique à chaque fois
-
Rapidité : Déploiement complet en ~15-20 minutes
-
Sécurité : Certificats SSL automatiques
-
Maintenance : Scripts de nettoyage automatisés
-
Monitoring : Intégration complète avec Azure Monitor
Prochaines Étapes
Une fois le déploiement terminé, vous pouvez :
-
Configurer le monitoring avancé avec Azure Application Insights
-
Mettre en place des stratégies de sauvegarde automatisées
-
Optimiser les performances selon vos besoins spécifiques
-
Configurer des environnements de staging supplémentaires