Dernière modification : Dec 08 , 2024
Infrastructure de Déploiement et Orchestrateur de Conteneurs

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

Funqy

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

  1. Optimisation des Temps de Démarrage
  2. Gestion Fine des Dépendances
  3. Compilations Natives avec GraalVM
  4. Optimisation de la Mémoire
  5. Adaptation aux Événements
  6. Utilisation des Extensions Serverless
  7. Gestion des État
  8. Tests Automatisés
  9. Logging et Suivi
  10. Facturation et Surveillance des Ressources
  11. Sécurité
  12. 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.

Introduction aux Architectures Microservices

Created by Sylvain Leroy


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.