Informations, communications, conseils en infrastructure

1.30 Azure Container Apps

 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 :

  1. Déploiement d’API et d’applications web.
  2. Traitement en arrière-plan ou basé sur des événements.
  3. Exécution de microservices avec Dapr pour la communication entre services.
  4. 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 :

  1. Connectez-vous au portail Azure.
  2. Recherchez « Container Apps » dans la barre de recherche.
  3. Cliquez sur « Créer » > « Environnement Container Apps ».
  4. 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

  1. Accédez au portail Azure > « Container Apps ».
  2. Cliquez sur « Créer ».
  3. 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.

 

  1. 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.

 

  1. 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 :

  1. Accédez à votre application dans le portail Azure.
  2. Sous « Mise à l’échelle », configurez les paramètres suivants :

   – Nombre minimal d’instances (par défaut : 0).

   – Nombre maximal d’instances (par exemple, 10).

  1. 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

  1. 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.

 

  1. 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

  1. 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.

 

  1. Applications basées sur Dapr :
  •    Activez Dapr pour gérer la communication entre microservices via Pub/Sub, appels de service à service, etc.

 

  1. Sécurisation avec Azure Front Door :
  •    Protégez vos applications avec un Web Application Firewall (WAF) via Azure Front Door.

 

 

 Bonnes pratiques

 

  1. Optimisation des coûts :
  •    Configurez un nombre minimal d’instances à zéro pour réduire les coûts lorsque l’application est inactive.

 

  1. 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.

 

  1. Automatisation CI/CD :
  •    Intégrez vos déploiements avec GitHub Actions ou Azure DevOps pour automatiser vos pipelines.

 

  1. Surveillance proactive :
  •    Configurez des alertes dans Azure Monitor pour surveiller les performances et détecter rapidement tout problème.

 

  1. 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.

 

Articles similaires

Rémy ACCOLEY

Consultant infrastructure

Expertise Azure, Windows serveur, Exchange, Teams, Office 365, Téléphonie…

Mes articles du moment

Sponsor

Besoin d'un support avec Keysoncloud

Offre Free

Explore

Découvrez nos formations

Offre Free

Vous voulez poster vos contenus

Offre Free