Présentation de la technologie
Azure Container Apps est une plateforme serverless entièrement managée qui permet de déployer et d’exécuter des applications conteneurisées sans avoir à gérer l’infrastructure sous-jacente. Basée sur Kubernetes et intégrant des outils tels que KEDA (Kubernetes Event-driven Autoscaler) et Dapr (Distributed Application Runtime), Azure Container Apps simplifie l’orchestration, la mise à l’échelle et la gestion des conteneurs.
Principaux avantages :
- Serverless : Pas besoin de gérer les serveurs ou l’orchestration.
- Mise à l’échelle dynamique : Basée sur le trafic HTTP, les événements, ou la charge CPU/mémoire.
- Flexibilité : Prise en charge de microservices, API, tâches en arrière-plan et applications basées sur des événements.
- Sécurité intégrée : Gestion des identités, secrets, et intégration avec Azure Key Vault.
- Interopérabilité : Compatible avec les registres publics (Docker Hub) et privés (Azure Container Registry).
Cas d’usage :
- Déploiement d’API et d’applications web.
- Traitement en arrière-plan ou basé sur des événements.
- Exécution de microservices avec Dapr pour la communication entre services.
- Applications nécessitant une mise à l’échelle automatique.
—
Mise en place technique
Étape 1 : Créer un environnement Azure Container Apps
Un environnement Azure Container Apps agit comme une frontière sécurisée pour regrouper plusieurs applications conteneurisées.
Via le portail Azure :
- Connectez-vous au portail Azure.
- Recherchez « Container Apps » dans la barre de recherche.
- Cliquez sur « Créer » > « Environnement Container Apps ».
- Configurez les paramètres suivants :
- Nom : Donnez un nom unique à l’environnement (ex. my-container-env).
- Région : Sélectionnez une région proche de vos utilisateurs.
- Log Analytics : Créez ou associez un espace Log Analytics pour surveiller les logs.
Via Azure CLI :
bash
az containerapp env create \
–name my-container-env \
–resource-group my-resource-group \
–location eastus
—
Étape 2 : Déployer une application conteneurisée
- Accédez au portail Azure > « Container Apps ».
- Cliquez sur « Créer ».
- Configurez les paramètres dans l’onglet Informations de base :
- Sélectionnez votre abonnement et groupe de ressources.
- Donnez un nom à votre application (ex. my-container-app).
- Choisissez l’environnement créé précédemment.
- Dans l’onglet Conteneur, configurez :
- Image du conteneur : Utilisez une image publique (ex. nginx) ou une image privée depuis Azure Container Registry.
- Port d’écoute : Spécifiez le port exposé par le conteneur (ex. 80).
- Activez ou désactivez l’entrée HTTP selon vos besoins.
- Finalisez la configuration et cliquez sur « Créer ».
Via Azure CLI :
bash
az containerapp create \
–name my-container-app \
–resource-group my-resource-group \
–environment my-container-env \
–image nginx \
–target-port 80 \
–ingress external
—
Exploitation technique courante
Mise à l’échelle automatique
Azure Container Apps utilise KEDA pour ajuster dynamiquement le nombre d’instances en fonction de déclencheurs spécifiques.
Configurer une mise à l’échelle basée sur le trafic HTTP :
- Accédez à votre application dans le portail Azure.
- Sous « Mise à l’échelle », configurez les paramètres suivants :
– Nombre minimal d’instances (par défaut : 0).
– Nombre maximal d’instances (par exemple, 10).
- Enregistrez les modifications.
Exemple CLI pour configurer la mise à l’échelle :
bash
az containerapp update \
–name my-container-app \
–resource-group my-resource-group \
–min-replicas 1 \
–max-replicas 5
—
Surveillance et diagnostics
- Logs et métriques :
– Accédez à Log Analytics depuis votre environnement Container Apps pour consulter les journaux.
– Analysez les métriques comme le CPU, la mémoire ou les requêtes HTTP.
- Alertes personnalisées :
– Configurez des alertes dans Azure Monitor pour détecter les anomalies ou pics de trafic.
—
Gestion des secrets
Pour stocker des secrets comme des clés API ou mots de passe, utilisez Azure Key Vault ou les secrets intégrés.
Ajouter un secret via CLI :
bash
az containerapp secret set \
–name my-container-app \
–resource-group my-resource-group \
–secrets MY_SECRET_KEY=my-secret-value
Référencer un secret dans votre application :
Ajoutez une variable d’environnement dans la configuration du conteneur pour récupérer le secret.
—
Déploiements avancés
- Déploiement bleu/vert :
- Répartissez le trafic entre deux versions d’une application pour tester sans interruption.
- Configurez cela dans la section « Révisions » du portail Azure.
- Applications basées sur Dapr :
- Activez Dapr pour gérer la communication entre microservices via Pub/Sub, appels de service à service, etc.
- Sécurisation avec Azure Front Door :
- Protégez vos applications avec un Web Application Firewall (WAF) via Azure Front Door.
—
Bonnes pratiques
- Optimisation des coûts :
- Configurez un nombre minimal d’instances à zéro pour réduire les coûts lorsque l’application est inactive.
- Sécurité renforcée :
– Utilisez HTTPS par défaut pour toutes les applications exposées publiquement.
– Stockez tous les secrets sensibles dans Azure Key Vault.
- Automatisation CI/CD :
- Intégrez vos déploiements avec GitHub Actions ou Azure DevOps pour automatiser vos pipelines.
- Surveillance proactive :
- Configurez des alertes dans Azure Monitor pour surveiller les performances et détecter rapidement tout problème.
- Documentation interne :
- Maintenez une documentation claire sur vos environnements, configurations et stratégies de mise à l’échelle.
En maîtrisant ces fonctionnalités, vous serez capable d’exploiter pleinement Azure Container Apps pour déployer rapidement des applications modernes tout en optimisant leur gestion et leur sécurité dans un environnement serverless évolutif.