Chapitre Introduction à l'Architecture Microservices avec Quarkus
Infrastructure de Déploiement et Orchestrateur de Conteneurs
Présentation de l'infrastructure de déploiement, des orchestrateurs de conteneurs (comme Kubernetes), et du serverless.
Dernière modification : Dec 08 , 2024

Introduction aux Architectures Microservices
Composants de l'infrastructure

Orchestration avec Kubernetes
- Déploiement Automatisé
- Équilibrage de Charge
- Scaling Automatique
- Gestion de la Configuration
- Sélection et Placement de Conteneurs
- Détection et Gestion des Pannes
- Service Discovery et Communication
- Gestion des Volumes de Stockage
- Mise à Jour et Rollback des Applications
- Politiques de Sécurité
Pourquoi Quarkus est adapté à Kubernetes ?
Démarrage rapide
- Quarkus offre un temps de démarrage extrêmement rapide, idéal pour le scaling automatique dans les clusters Kubernetes.
Faible Utilisation de Mémoire :
- L'empreinte mémoire réduite de Quarkus convient aux environnements où l'efficacité des ressources est cruciale.
Compilations Natives :
- Prise en charge des compilations natives avec GraalVM pour des images Docker plus petites et des démarrages plus rapides.
Support de Microservices :
- Conçu pour le développement de microservices, adapté à la gestion de plusieurs services dans un cluster Kubernetes.
Extension pour Kubernetes :
- Extensions spécifiques à Kubernetes simplifiant l'intégration avec ses fonctionnalités.
Intégration Transparente avec les Services Kubernetes :
- Intégration facile avec les services natifs de Kubernetes, facilitant la découverte et la gestion des configurations.
Cycle de Vie de Développement Optimisé :
- Cycle de vie de développement rapide aligné avec les pratiques CI/CD souvent utilisées dans Kubernetes.
Support pour les Applications Cloud-Native :
- Conçu spécifiquement pour les applications cloud-native, avec une architecture adaptée à l'échelle et à la résilience dans Kubernetes.
Facilité de Configuration :
- Mécanismes de configuration simplifiant l'adaptation aux différentes configurations d'environnement.
Performance Élevée :
- Performances élevées combinées à la flexibilité et à l'évolutivité de Kubernetes pour des applications réactives et efficaces.
Quarkus et Kubernetes
- Quarkus offre la possibilité de générer automatiquement des ressources Kubernetes basées sur des valeurs par défaut saines
- une configuration fournie par l'utilisateur à l'aide de decorakte.
- Il prend actuellement en charge la génération de ressources pour Kubernetes, OpenShift et Knative.
- De plus, Quarkus peut déployer l'application sur un cluster Kubernetes cible en appliquant les manifestes générés au serveur API du cluster cible.
- Enfin, lorsque l'une des extensions d'image de conteneur est présente (voir le guide des images de conteneur pour plus de détails), Quarkus a la possibilité de créer une image de conteneur et de la transférer vers un registre avant de déployer l'application sur la plate-forme cible.
Concepts Serverless
Qu'est ce que le Serverless ?
Définition du serverless : modèle de cloud computing où l'infrastructure est gérée par le fournisseur de services cloud.

Avantages du Serverless
- Élimination de la gestion de l'infrastructure.
- Scaling automatique en fonction de la demande.
- Facturation basée sur l'utilisation réelle.
Quarkus et Serverless
- Quarkus adapté au serverless avec son démarrage rapide et faible utilisation de mémoire.

Quarkus et Lambda
- Funqy est un framework basé sur Quarkus pour écrire des lambdas
Performances de Quarkus
- Démarrage rapide et faible empreinte mémoire de Quarkus.
- Adapté aux charges de travail serverless avec des réponses instantanées.

Extensions pour Serverless
- Extensions Quarkus spécifiques au serverless.
- Fonctions Lambda AWS, Azure Functions, Google Cloud Functions, Fonctions OpenFaas, traitement d'évènements, webhooks etc
Démo Pratique
- Démonstration rapide d'un service serverless avec Quarkus.
- Capture d'écran ou démonstration interactive.
Bonnes Pratiques pour le développement Serverless avec Quarkus
- Optimisation des Temps de Démarrage
- Gestion Fine des Dépendances
- Compilations Natives avec GraalVM
- Optimisation de la Mémoire
- Adaptation aux Événements
- Utilisation des Extensions Serverless
- Gestion des État
- Tests Automatisés
- Logging et Suivi
- Facturation et Surveillance des Ressources
- Sécurité
- Documenter les Fonctions
Ressources Supplémentaires
Quarkus Kubernetes
- Quarkus offre la possibilité de générer automatiquement des ressources Kubernetes basées sur des valeurs par défaut saines
- une configuration fournie par l'utilisateur à l'aide de decorakte.
- Il prend actuellement en charge la génération de ressources pour Kubernetes, OpenShift et Knative.
- De plus, Quarkus peut déployer l'application sur un cluster Kubernetes cible en appliquant les manifestes générés au serveur API du cluster cible.
- Enfin, lorsque l'une des extensions d'image de conteneur est présente (voir le guide des images de conteneur pour plus de détails), Quarkus a la possibilité de créer une image de conteneur et de la transférer vers un registre avant de déployer l'application sur la plate-forme cible.
Objectifs
Ces objectifs visent à fournir aux apprenants une compréhension approfondie de la manière dont Quarkus s'intègre et fonctionne dans des environnements de déploiement modernes, favorisant ainsi une utilisation efficace dans des scénarios réels.