Quarkus
Développer des applications microservices en Java pour le cloud et Kubernetes
Que vous soyez développeur ou architecte, ce livre a pour objectif de vous faire découvrir Quarkus, le framework de développement d’applications microservices en Java pour le cloud et Kubernetes. Il vous explique comment tirer parti de ses nombreuses fonctionnalités et extensions pour concevoir des applications [...]
[lire le résumé du livre]
Auteur : Loic MATHIEU
Editeur : Eni
Collection : Expert IT
Date parution : 07/2023CB Google/Apple Pay, Chèque, Virement
Quel est le sujet du livre "Quarkus"
Que vous soyez développeur ou architecte, ce livre a pour objectif de vous faire découvrir Quarkus, le framework de développement d’applications microservices en Java pour le cloud et Kubernetes. Il vous explique comment tirer parti de ses nombreuses fonctionnalités et extensions pour concevoir des applications prêtes à être déployées dans le cloud ou Kubernetes.
Tout au long de ce livre, vous serez guidé dans l’utilisation du framework et de son outillage avec de nombreux exemples concrets dans le but de devenir autonome dans le développement d’applications avec Quarkus.
Après avoir étudié les fonctionnalités de base du framework telles que la configuration, les logs ou l’injection de dépendances, vous découvrirez les principales extensions de Quarkus notamment RESTEasy pour le développement de services web RESTFull, le client REST pour accéder à un service distant, ou encore Hibernate ORM with Panache et MongoDB with Panache pour l’accès aux données.
Ce livre vous permettra également une étude en profondeur de Quarkus pour le développement d’applications réactives, l’utilisation des fonctionnalités cloud ready et cloud natives, le support de Docker et de Kubernetes et le déploiement des applications vers les trois grands fournisseurs cloud que sont Amazon Web Services, Google Cloud Platform et Microsoft Azure.
Pour finir, vous découvrez comment créer votre propre extension Quarkus.
Les exemples de ce livre sont disponibles en téléchargement sur le site www.editions-eni.fr.Téléchargements
Anciennement consultant formateur chez Zenika Lille, Loïc MATHIEU est aujourd’hui Lead Software Engineer chez Kestra Technologies (https://kestra.io) où il a pour mission d’aider à créer un SaaS pour l'orchestrateur de données Kestra. Également Google Developer Expert (GDE) Google Cloud, il réalise des tâches variées autour de Java, de la JVM, de l’architecture solution et de la performance. Ni le cloud, ni Kubernetes ne lui font peur ; il aime relever des défis et apprendre de nouvelles choses. Contributeur Quarkus depuis plus de 4 ans, il participe à la création de plusieurs extensions et présente régulièrement Quarkus (et d’autres sujets) dans des meetups, des conférences ou sur son blog (https://loicmathieu.fr).
En suivant ce lien, retrouvez tous les livres dans la spécialité Techniques vidéo - Télévision.
Sommaire et contenu du livre "Quarkus - Développer des applications microservices en Java pour le cloud et Kubernetes"
Avant-propos
- 1. Objectifs du livre
- 2. Public visé
- 3. Prérequis
- 4. Choix pédagogiques
Quarkus : carte d'identité
- 1. Qu’est-ce que Quarkus ?
- 2. Les piliers de Quarkus
- 2.1 Developer Joy
- 2.2 Pensé pour les conteneurs et Kubernetes
- 2.3 Librairies reconnues et standards
- 2.4 Unification des styles de développement impératif et réactif
- 3. La philosophie de Quarkus
- 4. Le temps de démarrage et l’empreinte mémoire
- 5. Le support de GraalVM
Introduction à Cloud Ready et Cloud Native
- 1. Cloud Ready
- 2. Applications prévues pour les conteneurs
- 3. Cloud Native
Développement d'applications avec Quarkus
- 1. Création d’un projet avec la ligne de commande,code.quarkus.io ou un IDE
- 2. Anatomie d’un projet Quarkus
- 3. Bases : configuration, logs, injection de dépendances et tests
- 3.1 La configuration
- 3.2 Les logs
- 3.3 L'injection de dépendances
- 3.4 Les tests
- 4. Developer Joy : dev mode, dev UI,continuous testing, dev services
- 4.1 Le dev mode
- 4.2 La dev UI
- 4.3 Le continuous testing
- 4.4 Les dev services
- 5. Webservice REST avec JAX-RS
- 5.1 Les extensions HTTP
- 5.2 Le développement d’un endpoint REST avec JAX-RS
- 5.3 Le support de JSON
- 5.4 L’implémentation des tests de son endpoint REST via JUnit
- 5.5 Le démarrage et le test de l’application en local
- 5.6 La gestion des exceptions
- 5.7 Les annotations spécifiques RESTEasy Reactive
- 5.8 Le contexte et le filtre
- 6. Documentation d’API avec OpenAPI
- 7. Appel d’un autre service web avec le client REST
- 8. Fonctionnalités HTTP
- 8.1 Servir du contenu statique
- 8.2 CORS - Cross-Origin Resource Sharing
- 8.3 La configuration HTTP
- 8.4 La sécurisation des connexions avec SSL
- 9. Sécurité : authentification et habilitation
- 9.1 L’authentification via fichier de configuration
- 9.2 L’habilitation via annotations
- 9.3 L’habilitation via fichier de configuration
- 9.4 Le test d’un endpoint sécurisé
- 10. Applications ligne de commande
L'accès aux bases de données
- 1. Datasource et transaction
- 1.1 Datasource et driver JDBC
- 1.2 Gestion des transactions
- 2. Gestion de migration de base de données
- 2.1 Gestion de schéma avec Liquibase
- 2.2 Migration de base de données avec Flyway
- 3. Hibernate ORM
- 4. Gestion du cache
- 5. Bean validation
- 6. NoSQL avec MongoDB
Développement d’applications réactives
- 1. Architecture réactive et application réactive
- 2. Vert.x : le cœur réactif de Quarkus
- 3. Mutiny
- 4. Webservice REST réactif avec RESTEasy Reactive
- 5. Base de données réactive avec Hibernate Reactive
- 5.1 Reactive SQL Clients
- 5.2 Hibernate Reactive with Panache
- 5.3 Support des transactions réactives
- 6. NoSQL réactif avec MongoDB
- 7. REST client réactif
- 8. Reactive Routes
- 9. Messaging réactif avec Apache Kafka
- 9.1 Recevoir des messages
- 9.2 Envoyer des messages
- 9.3 Traiter des messages
- 9.4 Configurer les canaux
- 9.5 Tester
Cloud Ready
- 1. Test de santé
- 2. Métrologie
- 3. OpenTracing et OpenTelemetry
- 4. Tolérance à la panne
- 4.1 Rejeux
- 4.2 Temps d’attente
- 4.3 Circuit breaker
- 4.4 Fallback
- 4.5 Configuration
- 5. Service discovery et load balancing client
- 5.1 Service discovery avec Stork
- 5.2 Load balancing client avec Stork
Compilation d’images natives avec GraalVM
- 1. Le projet GraalVM
- 2. La compilation native
- 3. Les pièges et comment les contourner grâce à Quarkus
- 3.1 L’initialisation de classe au runtime
- 3.2 L’inclusion des ressources
- 3.3 Le support de la réflexion
- 4. Tester une image native
- 5. Monitorer et déboguer une image native
- 5.1 Génération d’un thread dump
- 5.2 Génération d’un heap dump
- 5.3 Mémoire et Garbage Collector
- 5.4 Débogage d’une application native avec GDB
- 5.5 Monitoring d’une application nativeavec Java Flight Recorder
Conteneurisation et Kubernetes
- 1. Conteneurisation
- 1.1 Utilisation d’images fournies à la création d’un projet
- 1.2 Génération automatique d’une image Docker
- 2. Génération de ressources Kubernetes et OpenShift
- 2.1 Génération de ressources Kubernetes
- 2.2 Génération de ressources OpenShift
- 3. Déploiement dans Kubernetes
- 3.1 Configuration des ressources des conteneurs
- 3.2 Sondes Kubernetes
- 3.3 Déploiement dans Kubernetes avec Quarkus
- 3.4 Déploiement via Helm
- 3.5 Débogage à distance
- 4. ConfigMap, Secret et Service Binding
- 4.1 ConfigMap et Secret
- 4.2 L'extension Kubernetes Config
- 4.3 Service Binding
- 5. Interagir avec un cluster Kubernetes
Déployer dans Amazon Web Services
- 1. AWS Lambda
- 1.1 Quarkus Amazon Lambda
- 1.2 Quarkus Amazon Lambda HTTP
- 1.3 Amazon Lambda SnapStart
- 2. Services AWS : S3, SNS...
- 2.1 Configuration et authentification
- 2.2 Amazon S3
- 2.3 Amazon SNS
- 2.4 Amazon DynamoDB
- 2.5 Amazon Secrets Manager
Déployer dans Google Cloud Platform
- 1. Google Cloud Functions
- 1.1 Quarkus Google Cloud Functions
- 1.2 Quarkus Google Cloud Functions HTTP
- 2. Google App Engine
- 2.1 Google AppEngine standard runtime
- 2.2 Google AppEngine custom runtime
- 3. Google Cloud Run
- 4. Services GCP : Storage, PubSub...
- 4.1 Configuration et authentification
- 4.2 Google Cloud Storage
- 4.3 Google Cloud PubSub
- 4.4 Google Cloud Firestore
- 4.5 Google Cloud Secret Manager
Déployer dans Microsoft Azure
- 1. Azure Functions
- 2. Azure App Service
- 3. Azure Container Apps
Funqy : des fonctions portables
- 1. Développer une fonction événementielle avec Funqy
- 2. Développer une fonction HTTP avec Funqy
- 3. Déployer une fonction Funqy dans AWS
- 3.1 Déployer une fonction Funqy événementielle dans AWS
- 3.2 Déployer une fonction Funqy HTTP dans AWS
- 4. Déployer une fonction Funqy dans Google Cloud
- 4.1 Déployer une fonction Funqy événementielledans Google Cloud
- 4.2 Déployer une fonction Funqy HTTP dans Google Cloud
- 5. Funqy Knative Eventing
Développer une extension Quarkus
- 1. Build versus Runtime
- 2. Les trois phases de bootstrapping
- 3. Steps et items
- 4. Jandex
- 5. Développer une extension pas à pas
- 5.1 Configurer une extension
- 5.2 Ajouter un bean CDI
- 5.3 Utiliser Jandex et enregistrer pour réflexion
- 5.4 Aller plus loin
Conclusion
- 1. Conclusion
- 2. Aller plus loin
- Index