Configurer Azure Container Apps

Effectué

Dans cette unité, vous allez apprendre à créer un environnement Azure Container Apps et une base de données Azure pour PostgreSQL en utilisant Azure CLI. Vous configurerez ensuite votre application Quarkus de sorte qu’elle se connecte à la base de données distante plutôt qu’à la base de données locale.

Plusieurs cibles sont disponibles pour déployer une application Quarkus sur Azure, qui vont d’IaaS à FaaS. Azure Container Apps se trouve entre PaaS (Platform as a Service) et FaaS (Function as a Service). Elle ressemble davantage à une plateforme PaaS, car vous n’êtes pas obligé d’utiliser un modèle de programmation spécifique et pouvez contrôler les règles de scale-out et de scale-in. D’autre part, elle présente certaines caractéristiques serverless comme la mise à l’échelle à zéro, la mise à l’échelle pilotée par les événements et un modèle tarifaire par seconde.

Screenshot that shows all Azure compute services.

Container Apps repose sur Azure Kubernetes Service (AKS). Elle comprend une intégration profonde à KEDA (mise à l’échelle automatique pilotée par les événements pour Kubernetes), Dapr (distributed application runtime) et Envoy (proxy de service conçu pour les applications natives cloud). La complexité sous-jacente est absente, c’est pourquoi vous n’avez pas besoin de configurer votre service, votre déploiement, votre entrée ou vos manifestes de volume Kubernetes. Vous obtenez une API et une interface utilisateur simples pour configurer votre application conteneurisée. En raison de cette simplification, vous avez moins de contrôle que vous en avez avec AKS.

Dans Container Apps, les applications doivent être empaquetées dans un conteneur Docker. Container Apps prend en charge les conteneurs Docker créés avec des Dockerfiles ou avec Jib. Le conteneur doit être disponible dans un registre de conteneurs. Container Apps prend en charge Azure Container Registry, Docker Hub et le registre GitHub Container. Une fois l’image d’application disponible dans un registre, Container Apps prend en charge le déploiement à partir du portail Azure, d’Azure CLI, de GitHub Actions et d’Azure DevOps.

Container Apps offre les fonctionnalités suivantes.

  • Révisions : Versioning automatique qui vous permet de gérer le cycle de vie de vos applications conteneur.
  • Contrôle du trafic : Capacité à répartir le trafic HTTP entrant entre plusieurs révisions pour les déploiements bleus/verts et le test A/B.
  • Entrée : Configuration de l’entrée HTTPS simple. Vous n’avez pas besoin de vous soucier du DNS ou des certificats.
  • Mise à l’échelle automatique : Déclencheurs de mise à l’échelle pris en charge par KEDA pour mettre à l’échelle votre application en fonction de métriques externes.
  • Secrets : Secrets partagés entre conteneurs, règles de mise à l’échelle et side-cars Dapr.
  • Supervision : Flux de sortie et d’erreur standard qui sont automatiquement écrits dans Log Analytics.
  • Dapr : Intégration de Dapr pour vos applications conteneur. Activez cette intégration à l’aide d’un indicateur simple.

Dans le prochain exercice, vous allez découvrir les concepts suivants.

  • Environnement : Limite de sécurité avancée autour d’un groupe d’applications conteneur. Les applications sont déployées dans un seul réseau virtuel, elles peuvent facilement communiquer les unes avec les autres et elles écrivent des journaux dans un seul espace de travail Log Analytics. Un environnement peut être comparé à un espace de noms Kubernetes.
  • Application conteneur : Groupe de conteneurs (un pod) déployés et mis à l’échelle ensemble. Ils partagent un seul espace disque et un seul réseau.
  • Révision : Instantané immuable d’une application conteneur. De nouvelles révisions sont créées automatiquement et sont utiles pour les stratégies de redirection du trafic HTTP comme le test A/B.

Screenshot that illustrates Container Apps concepts.

Vous allez maintenant créer un environnement Container App pour voir comment ces éléments fonctionnent.