
Java natif du cloud
Description
Introduction au livre
Un guide de survie indispensable pour les développeurs Java d'entreprise qui souhaitent devenir des développeurs à cycle complet à l'ère du cloud !
À travers divers exemples utilisant Spring Boot, Spring Cloud et Cloud Foundry, nous vous apprenons à concevoir une architecture de microservices hautement évolutive et à mettre en pratique les principes du DevOps et du développement agile.
« Cet ouvrage est une lecture incontournable pour tout développeur créant des applications cloud-native dans l'écosystème Java. »
Ce livre couvre tous les aspects, de la création de services résilients à la gestion des flux de données avec REST et les événements asynchrones, en passant par les tests, le déploiement et les tâches essentielles liées à l'observabilité.
- Daniel Bryant / Directeur technique, SpectoLabs
« Quiconque se lance dans une aventure axée sur le cloud bénéficiera des connaissances et des expériences approfondies contenues dans ce livre. »
- Dr. Dave Sire / Contributeur au framework Spring, cofondateur de Spring Boot et Spring Cloud
En quoi des entreprises comme Amazon, Netflix et Etsy se distinguent-elles des conglomérats traditionnels ? Amazon et Netflix ont su rester compétitives et en avance sur leur temps en concevant et en exploitant leurs services selon une approche native du cloud.
Ce livre propose un guide pratique destiné aux développeurs Java pour développer plus rapidement des logiciels de meilleure qualité grâce à Spring Boot, Spring Cloud et Cloud Foundry.
De nombreuses entreprises font déjà évoluer leurs pratiques de développement logiciel vers le cloud computing, le développement piloté par les tests, les microservices, ainsi que l'intégration et la livraison continues.
Au fil de votre lecture, vous vous familiariserez naturellement avec les outils et les méthodologies qui vous aideront à transformer les applications existantes en applications natives du cloud.
* Notions de base : Apprenez les avantages d’une approche native du cloud.
Ce document explique comment configurer et tester une application Spring Boot et comment migrer des applications existantes vers le cloud.
* Microservice : Créer un service RESTful basé sur HTTP à l’aide de Spring.
Apprenez à acheminer correctement les requêtes vers un système distribué et à construire un service périphérique faisant office de passerelle.
* Intégration de données : Apprenez à gérer les données à l’aide du framework Spring Data et à intégrer des services distribués grâce à l’architecture événementielle et axée sur la messagerie de Spring.
* Déploiement et opérations : Apprenez à construire des systèmes observables.
Connectez-vous à un service avec état à l'aide d'un courtier de services et comprenez le véritable sens de la livraison continue.
Des ressources supplémentaires, notamment des exemples de code et des exercices, sont disponibles à l'adresse http://github.com/Cloud-Native-Java.
À travers divers exemples utilisant Spring Boot, Spring Cloud et Cloud Foundry, nous vous apprenons à concevoir une architecture de microservices hautement évolutive et à mettre en pratique les principes du DevOps et du développement agile.
« Cet ouvrage est une lecture incontournable pour tout développeur créant des applications cloud-native dans l'écosystème Java. »
Ce livre couvre tous les aspects, de la création de services résilients à la gestion des flux de données avec REST et les événements asynchrones, en passant par les tests, le déploiement et les tâches essentielles liées à l'observabilité.
- Daniel Bryant / Directeur technique, SpectoLabs
« Quiconque se lance dans une aventure axée sur le cloud bénéficiera des connaissances et des expériences approfondies contenues dans ce livre. »
- Dr. Dave Sire / Contributeur au framework Spring, cofondateur de Spring Boot et Spring Cloud
En quoi des entreprises comme Amazon, Netflix et Etsy se distinguent-elles des conglomérats traditionnels ? Amazon et Netflix ont su rester compétitives et en avance sur leur temps en concevant et en exploitant leurs services selon une approche native du cloud.
Ce livre propose un guide pratique destiné aux développeurs Java pour développer plus rapidement des logiciels de meilleure qualité grâce à Spring Boot, Spring Cloud et Cloud Foundry.
De nombreuses entreprises font déjà évoluer leurs pratiques de développement logiciel vers le cloud computing, le développement piloté par les tests, les microservices, ainsi que l'intégration et la livraison continues.
Au fil de votre lecture, vous vous familiariserez naturellement avec les outils et les méthodologies qui vous aideront à transformer les applications existantes en applications natives du cloud.
* Notions de base : Apprenez les avantages d’une approche native du cloud.
Ce document explique comment configurer et tester une application Spring Boot et comment migrer des applications existantes vers le cloud.
* Microservice : Créer un service RESTful basé sur HTTP à l’aide de Spring.
Apprenez à acheminer correctement les requêtes vers un système distribué et à construire un service périphérique faisant office de passerelle.
* Intégration de données : Apprenez à gérer les données à l’aide du framework Spring Data et à intégrer des services distribués grâce à l’architecture événementielle et axée sur la messagerie de Spring.
* Déploiement et opérations : Apprenez à construire des systèmes observables.
Connectez-vous à un service avec état à l'aide d'un courtier de services et comprenez le véritable sens de la livraison continue.
Des ressources supplémentaires, notamment des exemples de code et des exercices, sont disponibles à l'adresse http://github.com/Cloud-Native-Java.
- Vous pouvez consulter un aperçu du contenu du livre.
Aperçu
indice
[Partie 1 : Notions de base]
Chapitre 1 Applications natives du cloud
Étui Amazon
Promesse de la plateforme
modèle
Évolutivité
Fiabilité
Agilité
Affaire Netflix
__Microservices
__Décomposition intégrale
__Netflix OSS
__Cloud Native Java
Méthodologie en 12 éléments
__codebase
__dépendance
__Paramètres __Service d'assistance
__Compiler, publier, exécuter
__processus
__liaison de port
__simultanéité
__Jetable
__Correspondance entre développement et opérations
__enregistrer
Processus de gestion
organiser
Chapitre 2 : Formation intensive : Introduction à Spring Boot et Cloud Foundry
Spring Boot
Initialiseur de printemps
Premiers pas avec Spring Tool Suite
Installation de SpringTool Suite
__Créer un nouveau projet avec Spring Initializer
Guide du printemps
__Suivre le guide du printemps dans STS
paramètre
Cloud Foundry
organiser
Chapitre 3, Paramètres de l'application à 12 éléments
Paramètres déroutants
Prise en charge de la configuration de Spring Framework
Classe __PropertyPlaceholderConfigurer pour la compréhension des informations de configuration
Abstraction de l'environnement et @Valeur
__Profil
configuration de style Spring Boot
Utilisation de la configuration centralisée avec Spring Cloud Configuration Server
Serveur de configuration SpringCloud
Client de configuration SpringCloud
__sécurité
Paramètres actualisables
organiser
Test du chapitre 4
Composition du test
Tests d'applications Spring Boot
tests d'intégration
__TestSlice
__Utilisation des techniques de simulation
Configuration du conteneur de servlets __@SpringBootTest
__tranché
Test complet
Tests de systèmes distribués
Tests de contrats menés par les consommateurs
Contrat SpringCloud
organiser
5. Migration d'applications
contracter
Migration de l'environnement applicatif
Pack de construction prêt à l'emploi
Pack de construction personnalisé
Applications conteneurisées
Refonte légère pour migrer les applications vers le cloud
__Intégration des services de support
__Appariement de services utilisant Spring
organiser
[Partie 2 Service Web]
Chapitre 6 API REST
Le modèle de maturité de Leonard Richardson
API REST simple utilisant Spring MVC
Négociation de contenu
Lecture et écriture de données binaires
__Google Protocol Buffers
Gestion des erreurs
hypermédia
__Types de médias et schémas
versionnage de l'API
Documentation de l'API REST
client
Produit client REST pratique
__RestTemplate
organiser
Chapitre 7 Routage
Abstraction du client de découverte
Service de routage Cloud Foundry
organiser
Chapitre 8 Service Edge
Service de salutations
Service Simple Edge
Netflix Pain
Filtrage et proxy via Netflix Juul
Filtre Joule personnalisé
Sécurité des services Edge
OAuth
__Application côté service
Application monopage HTML5 et JavaScript
Application inutile
Client de confiance
Sécurité du printemps
Sécurité du cloud Spring
Serveur d'autorisation OAuth Spring Security
__Mesures de sécurité du serveur de ressources __Salutations
Création d'une application monopage avec sécurité OAuth
organiser
[Partie 3 : Intégration des données]
Chapitre 9 Gestion des données
Modélisation des données
Système de gestion de bases de données relationnelles
__NoSQL
Données de printemps
Structure d'une application Spring Data
classe __domaine
__Dépôt
__Configuration des packages Java pour les données de domaine
Premiers pas avec l'accès aux SGBDR via JDBC
Prise en charge JDBC de Spring
Exemple de données Spring
Données Spring JPA
Service de compte
Tests intégrés
Spring Data MongoDB
Service de commande
Tests intégrés
Données Spring Neo4J
Service d'inventaire
Tests intégrés
Spring Data Redis
__mise en cache
organiser
Chapitre 10 : Messagerie
Architecture événementielle avec intégration Spring
__point de terminaison de messagerie
Des composants simples aux systèmes complexes
Courtier de messages, pont, modèle de consommation concurrentiel, approvisionnement en événements
__Publier-S'abonner
__point à point
Spring Cloud Stream
Producteur de flux
__Consommateur de flux
organiser
Chapitre 11 : Traitement par lots et tâches
Travaux par lots
Lot de printemps
__Premier traitement par lots
Planification
Partitionnement à distance des tâches Spring Batch à l'aide de la messagerie
Gestion des tâches
Intégration des flux de travail axée sur les processus
Distribué par messagerie
organiser
Chapitre 12 Intégration des données
Transactions distribuées
Isolement des défaillances et dégradation progressive des performances
Modèle de saga
CQRS
API __Réclamations
API de statistiques sur les plaintes
Flux de données Spring Cloud
__flux
__tâche
__RESTAPI
Client __Dataflow
organiser
[Partie 4 Environnement d'exploitation]
13 systèmes possibles pour les ministres
Si vous le fabriquez, vous pouvez l'utiliser
Mystère de meurtre des microservices
fonctionnement à 12 éléments
nouveau contrat
Observabilité
Différences et analyse de l'observabilité basée sur le modèle push et le modèle pull
Collecte de l'état actuel de votre application à l'aide de Spring Boot Actuator
Métrique
Identification des services à l'aide du point de terminaison /info
Vérifier l'état de fonctionnement normal
Événement de remerciement
Journalisation des applications
__Spécification de la sortie du journal
__Spécification du niveau de journalisation
Traçage distribué
Trouver des indices avec Springcloud Sleuth
__Quelle quantité de données est suffisante ?
__OpenZipkin : Une seule photo vaut mille traces.
Autres plateformes et technologies
Tableau de bord
Surveillance des services à l'aide du tableau de bord Hystrix
__CodeCentricSpringBoot Admin
Tableau de bord des microservices __Odina
Gestionnaire d'applications de Pivotal Cloud Foundry
guérir
organiser
Chapitre 14 Courtier de services
Cycle de vie des services de soutien
La perspective comme plateforme
Mise en œuvre d'un courtier de services personnalisé avec Spring Cloud Cloud Foundry Service Broker
Courtier de service Amazon S3 simple
Catalogue de services
__Gestion des instances de service
Liaison de service
Protection des courtiers en services
distribution
__Libérer à l'aide de Bosch
__Publication via Cloud Foundry
Enregistrement d'un courtier de service Amazon S3
Création d'une instance de service Amazon S3
__Utilisation des instances de service
application cliente S3
Vérifier le fonctionnement global
organiser
Chapitre 15 : Livraison continue
Au-delà de l'intégration continue
John Alspaugh de Flickr et Etsy
Adrienne Cockcroft de Netflix
Livraison continue d'Amazon
pipeline
test
Livraison continue dans les environnements de microservices
équipement
__Foule
__récipient
Livraison continue de microservices
Installation du hall
Conception de pipeline de base
Intégration continue
Tests de contrats menés par les consommateurs
Pipeline de microservices utilisateur
données
À l'environnement opérationnel !
[Partie 5 Annexe]
Annexe A Java EE et Spring Boot
Annexe B [Annexe spéciale coréenne] Préparation et utilisation de l'environnement Cloud Foundry
Chapitre 1 Applications natives du cloud
Étui Amazon
Promesse de la plateforme
modèle
Évolutivité
Fiabilité
Agilité
Affaire Netflix
__Microservices
__Décomposition intégrale
__Netflix OSS
__Cloud Native Java
Méthodologie en 12 éléments
__codebase
__dépendance
__Paramètres __Service d'assistance
__Compiler, publier, exécuter
__processus
__liaison de port
__simultanéité
__Jetable
__Correspondance entre développement et opérations
__enregistrer
Processus de gestion
organiser
Chapitre 2 : Formation intensive : Introduction à Spring Boot et Cloud Foundry
Spring Boot
Initialiseur de printemps
Premiers pas avec Spring Tool Suite
Installation de SpringTool Suite
__Créer un nouveau projet avec Spring Initializer
Guide du printemps
__Suivre le guide du printemps dans STS
paramètre
Cloud Foundry
organiser
Chapitre 3, Paramètres de l'application à 12 éléments
Paramètres déroutants
Prise en charge de la configuration de Spring Framework
Classe __PropertyPlaceholderConfigurer pour la compréhension des informations de configuration
Abstraction de l'environnement et @Valeur
__Profil
configuration de style Spring Boot
Utilisation de la configuration centralisée avec Spring Cloud Configuration Server
Serveur de configuration SpringCloud
Client de configuration SpringCloud
__sécurité
Paramètres actualisables
organiser
Test du chapitre 4
Composition du test
Tests d'applications Spring Boot
tests d'intégration
__TestSlice
__Utilisation des techniques de simulation
Configuration du conteneur de servlets __@SpringBootTest
__tranché
Test complet
Tests de systèmes distribués
Tests de contrats menés par les consommateurs
Contrat SpringCloud
organiser
5. Migration d'applications
contracter
Migration de l'environnement applicatif
Pack de construction prêt à l'emploi
Pack de construction personnalisé
Applications conteneurisées
Refonte légère pour migrer les applications vers le cloud
__Intégration des services de support
__Appariement de services utilisant Spring
organiser
[Partie 2 Service Web]
Chapitre 6 API REST
Le modèle de maturité de Leonard Richardson
API REST simple utilisant Spring MVC
Négociation de contenu
Lecture et écriture de données binaires
__Google Protocol Buffers
Gestion des erreurs
hypermédia
__Types de médias et schémas
versionnage de l'API
Documentation de l'API REST
client
Produit client REST pratique
__RestTemplate
organiser
Chapitre 7 Routage
Abstraction du client de découverte
Service de routage Cloud Foundry
organiser
Chapitre 8 Service Edge
Service de salutations
Service Simple Edge
Netflix Pain
Filtrage et proxy via Netflix Juul
Filtre Joule personnalisé
Sécurité des services Edge
OAuth
__Application côté service
Application monopage HTML5 et JavaScript
Application inutile
Client de confiance
Sécurité du printemps
Sécurité du cloud Spring
Serveur d'autorisation OAuth Spring Security
__Mesures de sécurité du serveur de ressources __Salutations
Création d'une application monopage avec sécurité OAuth
organiser
[Partie 3 : Intégration des données]
Chapitre 9 Gestion des données
Modélisation des données
Système de gestion de bases de données relationnelles
__NoSQL
Données de printemps
Structure d'une application Spring Data
classe __domaine
__Dépôt
__Configuration des packages Java pour les données de domaine
Premiers pas avec l'accès aux SGBDR via JDBC
Prise en charge JDBC de Spring
Exemple de données Spring
Données Spring JPA
Service de compte
Tests intégrés
Spring Data MongoDB
Service de commande
Tests intégrés
Données Spring Neo4J
Service d'inventaire
Tests intégrés
Spring Data Redis
__mise en cache
organiser
Chapitre 10 : Messagerie
Architecture événementielle avec intégration Spring
__point de terminaison de messagerie
Des composants simples aux systèmes complexes
Courtier de messages, pont, modèle de consommation concurrentiel, approvisionnement en événements
__Publier-S'abonner
__point à point
Spring Cloud Stream
Producteur de flux
__Consommateur de flux
organiser
Chapitre 11 : Traitement par lots et tâches
Travaux par lots
Lot de printemps
__Premier traitement par lots
Planification
Partitionnement à distance des tâches Spring Batch à l'aide de la messagerie
Gestion des tâches
Intégration des flux de travail axée sur les processus
Distribué par messagerie
organiser
Chapitre 12 Intégration des données
Transactions distribuées
Isolement des défaillances et dégradation progressive des performances
Modèle de saga
CQRS
API __Réclamations
API de statistiques sur les plaintes
Flux de données Spring Cloud
__flux
__tâche
__RESTAPI
Client __Dataflow
organiser
[Partie 4 Environnement d'exploitation]
13 systèmes possibles pour les ministres
Si vous le fabriquez, vous pouvez l'utiliser
Mystère de meurtre des microservices
fonctionnement à 12 éléments
nouveau contrat
Observabilité
Différences et analyse de l'observabilité basée sur le modèle push et le modèle pull
Collecte de l'état actuel de votre application à l'aide de Spring Boot Actuator
Métrique
Identification des services à l'aide du point de terminaison /info
Vérifier l'état de fonctionnement normal
Événement de remerciement
Journalisation des applications
__Spécification de la sortie du journal
__Spécification du niveau de journalisation
Traçage distribué
Trouver des indices avec Springcloud Sleuth
__Quelle quantité de données est suffisante ?
__OpenZipkin : Une seule photo vaut mille traces.
Autres plateformes et technologies
Tableau de bord
Surveillance des services à l'aide du tableau de bord Hystrix
__CodeCentricSpringBoot Admin
Tableau de bord des microservices __Odina
Gestionnaire d'applications de Pivotal Cloud Foundry
guérir
organiser
Chapitre 14 Courtier de services
Cycle de vie des services de soutien
La perspective comme plateforme
Mise en œuvre d'un courtier de services personnalisé avec Spring Cloud Cloud Foundry Service Broker
Courtier de service Amazon S3 simple
Catalogue de services
__Gestion des instances de service
Liaison de service
Protection des courtiers en services
distribution
__Libérer à l'aide de Bosch
__Publication via Cloud Foundry
Enregistrement d'un courtier de service Amazon S3
Création d'une instance de service Amazon S3
__Utilisation des instances de service
application cliente S3
Vérifier le fonctionnement global
organiser
Chapitre 15 : Livraison continue
Au-delà de l'intégration continue
John Alspaugh de Flickr et Etsy
Adrienne Cockcroft de Netflix
Livraison continue d'Amazon
pipeline
test
Livraison continue dans les environnements de microservices
équipement
__Foule
__récipient
Livraison continue de microservices
Installation du hall
Conception de pipeline de base
Intégration continue
Tests de contrats menés par les consommateurs
Pipeline de microservices utilisateur
données
À l'environnement opérationnel !
[Partie 5 Annexe]
Annexe A Java EE et Spring Boot
Annexe B [Annexe spéciale coréenne] Préparation et utilisation de l'environnement Cloud Foundry
Image détaillée
.jpg)
Dans le livre
Nous sommes au cœur d'une transformation majeure qui pourrait avoir l'impact le plus important de toute l'histoire de l'industrie du logiciel.
Le changement réside dans le passage d'une architecture traditionnelle au cloud, et d'une séparation classique entre développement et opérations au DevOps, qui vise l'intégration.
Ce livre aborde cette transition de front, en expliquant comment construire des applications natives du cloud et en fournissant des conseils clairs pour assurer une transition réussie.
Les transitions ne se font pas du jour au lendemain.
L'un des principaux atouts de ce livre est qu'il met l'accent sur la manière de vous aider à tirer parti de votre propre expérience pour effectuer la transition vers le cloud, au sein de votre environnement actuel.
En particulier, le chapitre 5, « Service Pairing with Spring », contient d’excellents éléments pour vous aider à passer des conventions des systèmes d’entreprise traditionnels aux conventions adaptées au cloud.
Cet ouvrage établit un remarquable équilibre entre théorie et pratique, couvrant à la fois les principes architecturaux des applications modernes et des méthodes de mise en œuvre éprouvées et efficaces.
Les applications modernes étant construites sur des solutions open source éprouvées qui offrent des solutions complètes à des problèmes complexes, le choix du framework open source à utiliser, ainsi que du langage de programmation lui-même, est crucial pour une utilisation pratique.
Si vous utilisez Java comme langage principal, ou si vous êtes ouvert à l'idée d'être agnostique en matière de langage, ce livre est fait pour vous.
« Les rumeurs de ma mort ont été grandement exagérées. » – Mark Twain
Il y a quelques années, on spéculait beaucoup sur la fin de Java.
Java est toujours florissant aujourd'hui, et ce livre explique pourquoi.
Java connaît un regain de vitalité grâce à son rôle moteur dans le développement d'applications modernes basées sur le cloud, alimenté par deux facteurs clés de succès : les projets open source de Netflix et Spring.
Ce livre explique clairement ces deux facteurs clés de succès d'une manière facile à comprendre.
Spring a été initialement conçu pour simplifier la complexité de l'ancien Java EE, mais ses idées fondamentales sont restées solides au fil des ans, fournissant une base solide et complète pour le développement d'applications cloud.
Depuis plus de dix ans, nous parlons du « triangle de Spring » : injection de dépendances, abstraction de services portables et programmation orientée aspect (AOP).
Ces trois éléments restent nécessaires aujourd'hui, à une époque où une séparation claire entre la logique métier et son environnement est plus importante que jamais.
Ce livre est principalement consacré à Spring Boot.
Spring Boot est une nouvelle façon d'utiliser Spring à l'ère des microservices, et son adoption dans les environnements de développement augmente rapidement.
Il facilite également la création de services Spring de tailles et de formes variées, et leur déploiement dans des environnements conteneurisés modernes.
Alors que les applications Java « d'entreprise » traditionnelles fonctionnent encore de manière monolithique sur un serveur d'applications massif, Spring Boot permet de les décomposer en éléments plus petits pour plus de simplicité et d'efficacité.
Les services sont structurés pour se concentrer sur une seule unité de travail, et sont déployés et exécutés sur des serveurs de taille appropriée, parfaitement adaptés à ce service.
Ce livre présente des exemples novateurs de travaux récents de l'équipe de développement Spring, notamment une intégration avancée avec les projets open source de Netflix, ainsi que des améliorations apportées à la prise en charge des tests d'intégration avec Spring Cloud Stream.
En tant que fondateur de Spring, je suis ravi de voir comment Spring continue d'innover et de se concentrer sur la simplification de la vie des développeurs.
Ces cinq dernières années, j'ai interagi avec Spring uniquement du point de vue de l'utilisateur, et c'était vraiment passionnant de le voir prospérer et continuer à maîtriser de nouvelles complexités.
Ma mission est de simplifier les choses chez Atomist, une entreprise qui fait pour les développeurs et leurs processus de développement ce que Spring faisait pour les applications Java, en leur offrant la possibilité d'automatiser tout ce qui compte.
Spring fournit des structures et des abstractions simples et productives pour toutes les tâches dont les développeurs Java doivent se préoccuper.
De même, Atomist fournit une structure simple et productive ainsi que des abstractions sur le code source du projet, les systèmes de construction, les outils de suivi des problèmes et les environnements de déploiement, permettant une automatisation puissante du déploiement qui couvre tout, de la création de nouveaux projets à la collaboration d'équipe, y compris Slack et la surveillance des événements de déploiement.
L'élément fondamental qui sous-tend l'automatisation est le test.
L'un des aspects que j'ai particulièrement appréciés dans cet ouvrage, qui met l'accent sur les tests, est la façon dont il aborde les problèmes complexes et les solutions que l'on rencontre lors des tests de microservices.
J'ai également beaucoup apprécié les commentaires riches, bien écrits et concis, typiques d'O'Reilly, avec une multitude d'exemples de code et les ajouts utiles des auteurs.
Je suis ravie de pouvoir recommander un livre écrit par mes amis sur un sujet technologique que j'adore.
Comme beaucoup de ceux qui ont eu la chance d'entendre Josh parler pourront vous le dire, Josh est un communicateur véritablement doué.
Josh a intégré ses compétences en programmation en direct dans son livre.
Josh et Kenny sont passionnés, curieux et compétents.
J'ai beaucoup appris et je me suis beaucoup amusé lors de mon parcours vers le cloud natif avec eux.
À votre tour de vous amuser.
- Rod Johnson / Fondateur de Spring Framework, PDG d'Atomist
Le changement réside dans le passage d'une architecture traditionnelle au cloud, et d'une séparation classique entre développement et opérations au DevOps, qui vise l'intégration.
Ce livre aborde cette transition de front, en expliquant comment construire des applications natives du cloud et en fournissant des conseils clairs pour assurer une transition réussie.
Les transitions ne se font pas du jour au lendemain.
L'un des principaux atouts de ce livre est qu'il met l'accent sur la manière de vous aider à tirer parti de votre propre expérience pour effectuer la transition vers le cloud, au sein de votre environnement actuel.
En particulier, le chapitre 5, « Service Pairing with Spring », contient d’excellents éléments pour vous aider à passer des conventions des systèmes d’entreprise traditionnels aux conventions adaptées au cloud.
Cet ouvrage établit un remarquable équilibre entre théorie et pratique, couvrant à la fois les principes architecturaux des applications modernes et des méthodes de mise en œuvre éprouvées et efficaces.
Les applications modernes étant construites sur des solutions open source éprouvées qui offrent des solutions complètes à des problèmes complexes, le choix du framework open source à utiliser, ainsi que du langage de programmation lui-même, est crucial pour une utilisation pratique.
Si vous utilisez Java comme langage principal, ou si vous êtes ouvert à l'idée d'être agnostique en matière de langage, ce livre est fait pour vous.
« Les rumeurs de ma mort ont été grandement exagérées. » – Mark Twain
Il y a quelques années, on spéculait beaucoup sur la fin de Java.
Java est toujours florissant aujourd'hui, et ce livre explique pourquoi.
Java connaît un regain de vitalité grâce à son rôle moteur dans le développement d'applications modernes basées sur le cloud, alimenté par deux facteurs clés de succès : les projets open source de Netflix et Spring.
Ce livre explique clairement ces deux facteurs clés de succès d'une manière facile à comprendre.
Spring a été initialement conçu pour simplifier la complexité de l'ancien Java EE, mais ses idées fondamentales sont restées solides au fil des ans, fournissant une base solide et complète pour le développement d'applications cloud.
Depuis plus de dix ans, nous parlons du « triangle de Spring » : injection de dépendances, abstraction de services portables et programmation orientée aspect (AOP).
Ces trois éléments restent nécessaires aujourd'hui, à une époque où une séparation claire entre la logique métier et son environnement est plus importante que jamais.
Ce livre est principalement consacré à Spring Boot.
Spring Boot est une nouvelle façon d'utiliser Spring à l'ère des microservices, et son adoption dans les environnements de développement augmente rapidement.
Il facilite également la création de services Spring de tailles et de formes variées, et leur déploiement dans des environnements conteneurisés modernes.
Alors que les applications Java « d'entreprise » traditionnelles fonctionnent encore de manière monolithique sur un serveur d'applications massif, Spring Boot permet de les décomposer en éléments plus petits pour plus de simplicité et d'efficacité.
Les services sont structurés pour se concentrer sur une seule unité de travail, et sont déployés et exécutés sur des serveurs de taille appropriée, parfaitement adaptés à ce service.
Ce livre présente des exemples novateurs de travaux récents de l'équipe de développement Spring, notamment une intégration avancée avec les projets open source de Netflix, ainsi que des améliorations apportées à la prise en charge des tests d'intégration avec Spring Cloud Stream.
En tant que fondateur de Spring, je suis ravi de voir comment Spring continue d'innover et de se concentrer sur la simplification de la vie des développeurs.
Ces cinq dernières années, j'ai interagi avec Spring uniquement du point de vue de l'utilisateur, et c'était vraiment passionnant de le voir prospérer et continuer à maîtriser de nouvelles complexités.
Ma mission est de simplifier les choses chez Atomist, une entreprise qui fait pour les développeurs et leurs processus de développement ce que Spring faisait pour les applications Java, en leur offrant la possibilité d'automatiser tout ce qui compte.
Spring fournit des structures et des abstractions simples et productives pour toutes les tâches dont les développeurs Java doivent se préoccuper.
De même, Atomist fournit une structure simple et productive ainsi que des abstractions sur le code source du projet, les systèmes de construction, les outils de suivi des problèmes et les environnements de déploiement, permettant une automatisation puissante du déploiement qui couvre tout, de la création de nouveaux projets à la collaboration d'équipe, y compris Slack et la surveillance des événements de déploiement.
L'élément fondamental qui sous-tend l'automatisation est le test.
L'un des aspects que j'ai particulièrement appréciés dans cet ouvrage, qui met l'accent sur les tests, est la façon dont il aborde les problèmes complexes et les solutions que l'on rencontre lors des tests de microservices.
J'ai également beaucoup apprécié les commentaires riches, bien écrits et concis, typiques d'O'Reilly, avec une multitude d'exemples de code et les ajouts utiles des auteurs.
Je suis ravie de pouvoir recommander un livre écrit par mes amis sur un sujet technologique que j'adore.
Comme beaucoup de ceux qui ont eu la chance d'entendre Josh parler pourront vous le dire, Josh est un communicateur véritablement doué.
Josh a intégré ses compétences en programmation en direct dans son livre.
Josh et Kenny sont passionnés, curieux et compétents.
J'ai beaucoup appris et je me suis beaucoup amusé lors de mon parcours vers le cloud natif avec eux.
À votre tour de vous amuser.
- Rod Johnson / Fondateur de Spring Framework, PDG d'Atomist
--- Extrait de la « Préface »
Avis de l'éditeur
[Structure de ce livre]
Partie 1 « Les bases »
Le chapitre 1, « Applications natives du cloud », et le chapitre 2, « Bootcamp : Introduction à Spring Boot et Cloud Foundry », explorent la nécessité d'une pensée native du cloud et présentent Spring Boot et Cloud Foundry.
Le chapitre 3, « Configuration d'une application à 12 éléments », explique comment configurer une application Spring Boot.
Ce thème se retrouve tout au long du livre.
Le chapitre 4, « Tests », explique comment tester les applications Spring, des composants les plus simples aux systèmes distribués.
Le chapitre 5, « Migration d'applications », explorera brièvement la refactorisation nécessaire pour migrer une application standard typique vers une plateforme cloud comme Cloud Foundry, vous aidant ainsi à tirer le meilleur parti de la plateforme cloud.
Partie 2 « Services Web »
Dans le chapitre 6, « API REST », nous allons créer un service HTTP RESTful à l'aide de Spring.
Les sujets abordés dans ce chapitre sont largement utilisés dans le développement d'API et le développement piloté par le domaine.
Le chapitre 7, « Routage », explore les méthodes courantes de contrôle de l'entrée et de la sortie des requêtes dans les systèmes distribués.
Dans le chapitre 8, « Services périphériques », nous apprendrons comment créer un service qui sert de première passerelle pour accepter les requêtes provenant de l'extérieur.
Partie 3 : Intégration des données
Le chapitre 9, « Gestion des données », explique comment utiliser Spring Data pour gérer les données dans les applications Spring.
Ce que nous abordons ici constitue le fondement de la pensée axée sur le domaine.
Le chapitre 10, « Messagerie », explore comment intégrer des services et des données distribués à l'aide de l'architecture événementielle et centrée sur la messagerie de Spring.
Le chapitre 11, « Traitements par lots et tâches », explore comment tirer parti de l'évolutivité des plateformes cloud comme Cloud Foundry pour gérer les charges de travail de longue durée.
Le chapitre 12, « Intégration des données », explore plusieurs façons de gérer l'état dans les systèmes distribués.
Partie 4 : Environnement d'exploitation
Le chapitre 13, « Systèmes observables », explore comment construire des systèmes qui prennent en charge l'observabilité et les opérations.
Le chapitre 14, « Service Broker », explore comment construire un service broker qui prend en charge des plateformes comme Cloud Foundry.
Les courtiers de services connectent les services avec état, tels que les files d'attente de messages, les bases de données et les caches, à la plateforme cloud.
Le chapitre 15, « Livraison continue », explore les concepts clés de la livraison continue.
Bien qu'il s'agisse du dernier chapitre du livre, c'est un point de départ pour votre voyage vers le cloud natif.
Partie 5 « Annexe »
L’annexe A, « Java EE et Spring Boot », explique comment intégrer des applications Spring Boot dans un environnement Java EE.
Enfin, dans l'annexe spéciale coréenne B, « Préparation et utilisation de l'environnement Cloud Foundry », nous apprenons comment préparer Cloud Foundry, déployer des applications et préparer des services.
[À qui ce livre est destiné]
Ce livre s'adresse principalement aux développeurs Java/JVM qui souhaitent créer plus rapidement des logiciels de meilleure qualité grâce à Spring Boot, Spring Cloud et Cloud Foundry.
Si vous avez entendu parler du terme microservices, constaté la popularité fulgurante de Spring Boot et vous êtes demandé pourquoi la plupart des entreprises utilisent aujourd'hui Cloud Foundry, ce livre est fait pour vous.
[Note de l'auteur]
Les logiciels rendent tout le monde égal.
Les logiciels offrent également aux gens de nouvelles perspectives grâce au code.
Les logiciels peuvent apporter de la valeur aux clients et même transformer la vie des gens.
Nous sommes honorés que l'édition coréenne de notre livre, Cloud Native Java, ait été publiée.
J'espère que ce livre contribuera, même modestement, à la création de logiciels qui ouvrent d'innombrables voies à un plus grand nombre de personnes et qui, parfois même, changent leur vie.
Profitez de ce livre pour déployer votre code dans des services concrets !
- Josh Long, auteur de Cloud Native Java et défenseur des développeurs Spring
Notre livre, « Cloud Native Java », a été traduit en coréen ! Merci à Jin Yoon, Myeongun, Hyeonhee et à toute l'équipe de traduction coréenne.
Les modèles utilisés dans les applications cloud sont à la fois familiers et nouveaux.
Ce livre a tenté de recenser les éléments que les développeurs Java Spring doivent prendre en compte lors de la mise en œuvre d'applications basées sur le cloud.
La scalabilité ne se limite pas à la capacité d'augmenter le nombre de serveurs.
Pour traiter un plus grand nombre de demandes et de charges de travail, nous devons utiliser des techniques appropriées.
Cette approche devrait être applicable aux applications de toutes tailles, vous permettant de regrouper des applications flexibles qui remplissent chacune une fonction spécifique afin de former un service unique à grande échelle.
Je suis très heureux de pouvoir publier en coréen le livre que j'ai présenté lors de ma visite en Corée en 2016, et j'espère qu'il sera utile à de nombreux utilisateurs de Spring.
- Kenny Bastani, auteur de Cloud Native Java et défenseur des développeurs Spring
[Note du traducteur]
« La maintenance des logiciels ne consiste pas à “faire en sorte qu’ils fonctionnent comme avant”. »
« Il s’agit de faire en sorte que les choses soient toujours utiles dans un monde en constante évolution », a déclaré Phil Webb de Pivotal, chef de projet du projet Spring Boot, citant la théoricienne atomique Jessica Kerr lors de sa présentation à SpringOne Platform 2017 (https://youtu.be/MQamx7-bCVI).
Pour la plupart des entreprises qui proposent aujourd'hui des services web ou mobiles, leur capacité à gérer les logiciels et les données constitue leur avantage concurrentiel.
Transformer les idées en logiciels fonctionnels, livrer ces logiciels aux clients le plus rapidement possible et valider régulièrement leur valeur sont des éléments essentiels à la réussite de toute entreprise.
Dans sa présentation ce jour-là, Phil Webb a cité l'exemple du téléphone Nokia 6610, sorti la même année que l'annonce du projet Spring et du framework Spring.
Le Nokia 6610 est toujours disponible sur le marché aujourd'hui, et il est même réparable, mais plus personne ne l'utilise.
Au lieu de cela, tout le monde utilise les derniers smartphones dotés de plus de fonctionnalités.
Parce que la perception des « téléphones » dans le monde a changé.
Les appareils qui ne parviennent pas à s'adapter au changement sont voués à être boudés par le marché.
Par ailleurs, les projets Spring sont encore utilisés dans de nombreuses applications de services et gagnent même en popularité ces derniers temps.
Car au fil des ans, Spring a toujours reflété les évolutions du marché.
Phil Webb a ensuite donné un exemple de statistiques pour Spring Initializer (http://start.spring.io), qui est utilisé lors du démarrage d'une application Spring Boot.
Parmi les différentes technologies de vue appliquées à Spring MVC, Thymeleaf reste largement utilisé par les développeurs, mais l'utilisation de Velocity a progressivement diminué jusqu'à disparaître.
À un moment donné, l'utilisation de cette vélocité dans les initialiseurs Spring est devenue nulle car l'équipe Spring a décidé de ne plus prendre en charge la vélocité.
Le projet Velocity n'est plus actif et ne reçoit plus de mises à jour ; nous l'avons donc exclu car il pourrait avoir un impact négatif sur les utilisateurs de Spring en termes de stabilité, de sécurité, etc.
« Le chemin vers la destination que nous avons définie conceptuellement n’est pas aussi direct que nous l’imaginons, mais est parsemé de nombreux obstacles et difficultés, et même après avoir surmonté toutes ces difficultés, la destination à laquelle nous arrivons peut ne pas être celle que nous souhaitions », a déclaré Onsi Fakuhouri, responsable de la R&D de Cloud Foundry chez Pivotal, lors de sa présentation à SpringOne Platform 2017 (https://youtu.be/_uB5bBsMZIk).
Par conséquent, plutôt que de prendre un risque aussi énorme, a-t-il ajouté, nous devrions répéter le processus d'observation, de sélection et d'apprentissage.
Nous pouvons également appliquer cette méthode lorsque nous cherchons notre destination lors de notre premier voyage.
Commencez par consulter la carte et le terrain environnant sur votre smartphone, comparez-les, puis déplacez-vous.
Pour atteindre plus rapidement votre destination, il vous suffit de pouvoir répéter ce processus plus rapidement.
La survie du projet Spring nous permet de voir un exemple de l'itération observer-faire-apprendre mentionnée par Onsi.
Spring utilise cette méthode pour examiner les besoins des développeurs sur le marché, les refléter et observer les résultats.
C’est ainsi que sont nés le projet Spring Boot et le projet Spring Cloud.
La demande du marché pour les applications basées sur le cloud s'est renforcée, ce qui signifie que le framework Spring doit non seulement assurer une disponibilité et une évolutivité accrues, mais aussi gérer des changements plus fréquents.
Par conséquent, contrairement aux téléphones Nokia, nombre de projets Spring actuels ont survécu avec succès car ils ont su s'adapter aux exigences changeantes du marché.
Et aujourd'hui, divers projets de printemps reproduisent ce processus.
Spring Boot nous permet de ne plus avoir à subir la configuration XML.
L'équipe Spring Boot fournit la même configuration qui doit être répétée à chaque fois, et les développeurs peuvent utiliser les fonctions nécessaires d'une manière différente d'auparavant grâce à l'injection de dépendances.
En outre, Spring Boot offre divers avantages basés sur la « réutilisabilité ».
De plus, Spring Cloud vous permet d'utiliser les technologies utilisées par des entreprises leaders comme Netflix et Amazon, qui développent déjà des applications de pointe dans ce domaine, selon une approche Spring Boot lorsque vous souhaitez implémenter des applications basées sur le cloud.
Lorsqu'il s'agit de résoudre un problème complexe déjà résolu par quelqu'un d'autre, les développeurs familiarisés avec Spring peuvent appliquer presque immédiatement les concepts clés utilisés par Netflix.
De plus, le cloud offre la possibilité d'utiliser des outils existants et d'autres qui n'existaient pas auparavant grâce à l'exposition des API.
Les bases de données relationnelles, qui existent depuis longtemps, ne sont plus préparées par l'équipe d'exploitation lors de leur installation sur le serveur comme auparavant.
Grâce à l'API de création de bases de données, les développeurs peuvent obtenir immédiatement la base de données dont ils ont besoin.
Outre les bases de données relationnelles, il prend également en charge divers nouveaux outils tels que les files d'attente de messages, les bases de données NoSQL, les outils d'apprentissage automatique et le déplacement de données entre sources de données.
Il est extrêmement difficile d'installer ces outils systématiquement sur les ordinateurs portables, les ordinateurs de bureau ou les serveurs des développeurs.
Netflix a récemment annoncé le concept de développeur à cycle complet sur son blog technique (https://bit.ly/2k91j0b).
Un développeur full-cycle est un développeur capable de gérer l'intégralité du cycle de vie d'une application.
Le cycle de vie du logiciel désigne le flux des étapes de conception, de développement, de test, de déploiement, d'exploitation et de support.
Dans la quasi-totalité des organisations, chaque étape est organisée en équipes composées de spécialistes couvrant chacun leur propre domaine d'expertise.
Dans une telle culture organisationnelle, les étapes précédentes ou suivantes ne sont pas considérées comme faisant partie de son propre travail, ou bien une culture se développe dans laquelle personne ne s'implique par manque d'expertise.
Le fait que des personnes et des équipes travaillent sur un même logiciel sans être impliquées mutuellement rend la maintenance de ce logiciel très coûteuse et, de surcroît, nuit considérablement à sa pérennité.
À l'inverse, Netflix crée et met en œuvre une méthode qui permet à tous ses développeurs d'exécuter eux-mêmes le code qu'ils créent.
Autrement dit, les développeurs gèrent directement l'intégralité du cycle de vie du logiciel.
Un facteur clé pour y parvenir est de fournir aux développeurs une variété d'outils de plateforme faciles à utiliser.
Il permet une surveillance aisée des observations nécessaires lors de l'exploitation de votre propre logiciel, prend en charge l'exécution en tant que distribution et connexion, et fournit des outils d'apprentissage grâce aux journaux et à l'analyse des journaux.
Et Cloud Foundry se positionne précisément à ce niveau.
En fournissant des fonctionnalités de surveillance, de journalisation, de déploiement et d'environnement d'exploitation pour les applications, les développeurs pourront se rapprocher du statut de développeurs à cycle complet.
L'association des applications Spring et de l'environnement Cloud Foundry dans lequel elles s'exécutent vous permet d'exécuter plus rapidement les « itérations observer-exécuter-apprendre » que Phil Webb et Onsi Pakuri décrivent comme nécessaires pour s'adapter aux évolutions du marché et rester pertinent.
Vous pourriez sans doute configurer votre propre serveur sans Cloud Foundry, mais cela impliquerait probablement beaucoup de travail distinct et répétitif que quelqu'un d'autre a déjà effectué pour le rendre plus rapide que ce que propose Cloud Foundry.
Je pense qu'il serait plus utile pour vous de vous concentrer sur l'application Spring elle-même pour le moment.
Ce livre, « Cloud Native Java », fournira aux développeurs habitués aux méthodes de développement traditionnelles les « concepts et technologies nécessaires à l'ère moderne » grâce à la méthode Spring.
Par conséquent, je pense que si vous êtes un développeur familier avec Spring, cela vous aidera à acquérir rapidement des techniques de développement modernes.
Ce livre présente les outils Spring qui permettent de s'adapter aux changements afin que votre logiciel soit toujours utile.
Si « Toby's Spring » d'Ilmin Lee a été le livre qui a ouvert la voie à Spring pour les développeurs Java avant l'ère du cloud, alors « Cloud Native Java » est un ouvrage d'introduction qui fournit aux développeurs Spring les compétences nécessaires pour l'ère du cloud.
De plus, ce livre présente Cloud Foundry et explique comment fournir un environnement où vos applications Spring peuvent tirer parti des avantages du cloud, tout en offrant un moyen de préparer et de connecter immédiatement les différents services nécessaires à vos applications Spring.
La méthode de « liaison » utilisée entre les applications et les services de données fait référence au système qui établit une connexion sans que le développeur ait besoin de connaître les informations réseau ou d'authentification concernant la source de données.
Autrement dit, le système traite automatiquement les informations nécessaires à la connexion et fournit un environnement dans lequel les développeurs peuvent se lier à la source de données et l'utiliser dans leurs applications en connaissant simplement le nom de la source de données dont ils ont besoin.
Cela offre non seulement une plus grande facilité de développement, mais augmente également l'évolutivité et la disponibilité en modifiant la façon dont les informations, qui peuvent être créées et détruites à tout moment dans un environnement cloud, sont gérées.
Outre la liaison de données, nous présentons également des techniques pour la mise en œuvre de microservices.
La plupart des premières questions concernant les microservices portent sur la séparation des données. Le chapitre 9, « Gestion des données », explique comment séparer les données dans un service de vente au détail classique en fonction de contextes délimités et comment choisir le système de stockage de données approprié pour chaque type de données, avec des exemples de code Spring.
Le contenu de cet ouvrage est bien plus vaste que vous ne pourriez le penser, et les explications complètes des auteurs couvrent tout le spectre des éléments nécessaires pour s'adapter aux changements rapides et exécuter des applications dans un environnement basé sur le cloud.
Ce seul ouvrage permet aux lecteurs de couvrir une vaste quantité de sujets qui, autrement, nécessiteraient la lecture et la compilation de nombreux autres livres, et, si nécessaire, de consulter d'autres ouvrages portant sur des domaines d'intérêt spécifiques.
« Il n'est pas nécessaire de le changer. »
« La survie n'est pas une obligation. » Cette expression paradoxale signifie que la survie sur le marché est un choix individuel et qu'elle ne parvient pas à s'adapter à l'évolution de la société.
Ce livre est le cadeau ultime des experts Spring aux développeurs Spring d'entreprise désireux de s'adapter et de survivre dans un environnement en constante évolution.
- Tous les traducteurs
Le développement simultané des ordinateurs personnels et d'Internet à la fin des années 1990 et au début des années 2000 a entraîné l'expansion du marché des serveurs et des applications serveur.
Le phénomène connu sous le nom d'explosion mobile s'est produit avec l'avènement des smartphones et l'émergence des clouds capables de gérer la croissance explosive des requêtes des clients.
La création d'applications adaptées à ce nouvel environnement permettra une mise à l'échelle et un déploiement rapide sans précédent pour répondre à ces demandes massives de la clientèle.
Ce livre fournit aux développeurs Java Spring les compétences nécessaires pour créer des applications « natives du cloud » adaptées à ces extensions et à un déploiement plus rapide.
Cet ouvrage est une lecture incontournable pour les développeurs Java d'entreprise intéressés par le cloud.
-Jeong Yun Jin
Cela fait plus de cinq ans que je n'ai pas entendu parler du terme microservices.
Décomposer les choses en petites pièces, les fabriquer rapidement, échouer rapidement et évoluer rapidement n'est pas aussi facile qu'il n'y paraît, mais cela présente des avantages évidents, c'est pourquoi cette méthode est constamment essayée malgré de nombreux essais et erreurs.
Aujourd'hui, nous franchissons une étape supplémentaire dans notre transition vers le DevOps, en migrant notre environnement de déploiement vers le cloud.
Ce livre est un véritable guide complet du développement cloud natif et vous accompagnera dans le monde du développement cloud natif grâce à une organisation conceptuelle et des exemples détaillés.
- Oh Myeong-un
L'architecture de microservices s'impose désormais comme une architecture courante pour le développement d'applications basées sur des environnements distribués dans le cloud. Cependant, concevoir une architecture de microservices adaptée et développer des applications évolutives à partir de celle-ci est loin d'être simple.
Je développe des applications basées sur des microservices en C# depuis environ cinq ans, mais en traduisant ce livre, je n'ai pas pu m'empêcher de frémir d'envie face aux développeurs Java.
Si j'avais bénéficié d'un environnement doté de toutes les plateformes nécessaires à la mise en œuvre des microservices, ces cinq dernières années n'auraient pas été aussi difficiles et éprouvantes.
Ce livre constitue une introduction efficace qui couvre un large éventail d'informations nécessaires au développement et à l'exploitation d'applications cloud-native basées sur une architecture de microservices.
Bien plus qu'une simple introduction à la plateforme Cloud Foundry, cet ouvrage regorge de techniques et de savoir-faire pour développer des applications distribuées performantes, évolutives, fiables et autoréparatrices. Il constituera un guide indispensable pour s'orienter dans l'univers complexe des microservices.
Ce livre, qui réunit la vaste expertise des auteurs en matière d'environnements cloud et distribués, ainsi que l'expérience et les compétences tout aussi impressionnantes des traducteurs, vous aidera à aborder sereinement vos premiers pas vers une architecture de microservices.
- Jang Hyun-hee
Partie 1 « Les bases »
Le chapitre 1, « Applications natives du cloud », et le chapitre 2, « Bootcamp : Introduction à Spring Boot et Cloud Foundry », explorent la nécessité d'une pensée native du cloud et présentent Spring Boot et Cloud Foundry.
Le chapitre 3, « Configuration d'une application à 12 éléments », explique comment configurer une application Spring Boot.
Ce thème se retrouve tout au long du livre.
Le chapitre 4, « Tests », explique comment tester les applications Spring, des composants les plus simples aux systèmes distribués.
Le chapitre 5, « Migration d'applications », explorera brièvement la refactorisation nécessaire pour migrer une application standard typique vers une plateforme cloud comme Cloud Foundry, vous aidant ainsi à tirer le meilleur parti de la plateforme cloud.
Partie 2 « Services Web »
Dans le chapitre 6, « API REST », nous allons créer un service HTTP RESTful à l'aide de Spring.
Les sujets abordés dans ce chapitre sont largement utilisés dans le développement d'API et le développement piloté par le domaine.
Le chapitre 7, « Routage », explore les méthodes courantes de contrôle de l'entrée et de la sortie des requêtes dans les systèmes distribués.
Dans le chapitre 8, « Services périphériques », nous apprendrons comment créer un service qui sert de première passerelle pour accepter les requêtes provenant de l'extérieur.
Partie 3 : Intégration des données
Le chapitre 9, « Gestion des données », explique comment utiliser Spring Data pour gérer les données dans les applications Spring.
Ce que nous abordons ici constitue le fondement de la pensée axée sur le domaine.
Le chapitre 10, « Messagerie », explore comment intégrer des services et des données distribués à l'aide de l'architecture événementielle et centrée sur la messagerie de Spring.
Le chapitre 11, « Traitements par lots et tâches », explore comment tirer parti de l'évolutivité des plateformes cloud comme Cloud Foundry pour gérer les charges de travail de longue durée.
Le chapitre 12, « Intégration des données », explore plusieurs façons de gérer l'état dans les systèmes distribués.
Partie 4 : Environnement d'exploitation
Le chapitre 13, « Systèmes observables », explore comment construire des systèmes qui prennent en charge l'observabilité et les opérations.
Le chapitre 14, « Service Broker », explore comment construire un service broker qui prend en charge des plateformes comme Cloud Foundry.
Les courtiers de services connectent les services avec état, tels que les files d'attente de messages, les bases de données et les caches, à la plateforme cloud.
Le chapitre 15, « Livraison continue », explore les concepts clés de la livraison continue.
Bien qu'il s'agisse du dernier chapitre du livre, c'est un point de départ pour votre voyage vers le cloud natif.
Partie 5 « Annexe »
L’annexe A, « Java EE et Spring Boot », explique comment intégrer des applications Spring Boot dans un environnement Java EE.
Enfin, dans l'annexe spéciale coréenne B, « Préparation et utilisation de l'environnement Cloud Foundry », nous apprenons comment préparer Cloud Foundry, déployer des applications et préparer des services.
[À qui ce livre est destiné]
Ce livre s'adresse principalement aux développeurs Java/JVM qui souhaitent créer plus rapidement des logiciels de meilleure qualité grâce à Spring Boot, Spring Cloud et Cloud Foundry.
Si vous avez entendu parler du terme microservices, constaté la popularité fulgurante de Spring Boot et vous êtes demandé pourquoi la plupart des entreprises utilisent aujourd'hui Cloud Foundry, ce livre est fait pour vous.
[Note de l'auteur]
Les logiciels rendent tout le monde égal.
Les logiciels offrent également aux gens de nouvelles perspectives grâce au code.
Les logiciels peuvent apporter de la valeur aux clients et même transformer la vie des gens.
Nous sommes honorés que l'édition coréenne de notre livre, Cloud Native Java, ait été publiée.
J'espère que ce livre contribuera, même modestement, à la création de logiciels qui ouvrent d'innombrables voies à un plus grand nombre de personnes et qui, parfois même, changent leur vie.
Profitez de ce livre pour déployer votre code dans des services concrets !
- Josh Long, auteur de Cloud Native Java et défenseur des développeurs Spring
Notre livre, « Cloud Native Java », a été traduit en coréen ! Merci à Jin Yoon, Myeongun, Hyeonhee et à toute l'équipe de traduction coréenne.
Les modèles utilisés dans les applications cloud sont à la fois familiers et nouveaux.
Ce livre a tenté de recenser les éléments que les développeurs Java Spring doivent prendre en compte lors de la mise en œuvre d'applications basées sur le cloud.
La scalabilité ne se limite pas à la capacité d'augmenter le nombre de serveurs.
Pour traiter un plus grand nombre de demandes et de charges de travail, nous devons utiliser des techniques appropriées.
Cette approche devrait être applicable aux applications de toutes tailles, vous permettant de regrouper des applications flexibles qui remplissent chacune une fonction spécifique afin de former un service unique à grande échelle.
Je suis très heureux de pouvoir publier en coréen le livre que j'ai présenté lors de ma visite en Corée en 2016, et j'espère qu'il sera utile à de nombreux utilisateurs de Spring.
- Kenny Bastani, auteur de Cloud Native Java et défenseur des développeurs Spring
[Note du traducteur]
« La maintenance des logiciels ne consiste pas à “faire en sorte qu’ils fonctionnent comme avant”. »
« Il s’agit de faire en sorte que les choses soient toujours utiles dans un monde en constante évolution », a déclaré Phil Webb de Pivotal, chef de projet du projet Spring Boot, citant la théoricienne atomique Jessica Kerr lors de sa présentation à SpringOne Platform 2017 (https://youtu.be/MQamx7-bCVI).
Pour la plupart des entreprises qui proposent aujourd'hui des services web ou mobiles, leur capacité à gérer les logiciels et les données constitue leur avantage concurrentiel.
Transformer les idées en logiciels fonctionnels, livrer ces logiciels aux clients le plus rapidement possible et valider régulièrement leur valeur sont des éléments essentiels à la réussite de toute entreprise.
Dans sa présentation ce jour-là, Phil Webb a cité l'exemple du téléphone Nokia 6610, sorti la même année que l'annonce du projet Spring et du framework Spring.
Le Nokia 6610 est toujours disponible sur le marché aujourd'hui, et il est même réparable, mais plus personne ne l'utilise.
Au lieu de cela, tout le monde utilise les derniers smartphones dotés de plus de fonctionnalités.
Parce que la perception des « téléphones » dans le monde a changé.
Les appareils qui ne parviennent pas à s'adapter au changement sont voués à être boudés par le marché.
Par ailleurs, les projets Spring sont encore utilisés dans de nombreuses applications de services et gagnent même en popularité ces derniers temps.
Car au fil des ans, Spring a toujours reflété les évolutions du marché.
Phil Webb a ensuite donné un exemple de statistiques pour Spring Initializer (http://start.spring.io), qui est utilisé lors du démarrage d'une application Spring Boot.
Parmi les différentes technologies de vue appliquées à Spring MVC, Thymeleaf reste largement utilisé par les développeurs, mais l'utilisation de Velocity a progressivement diminué jusqu'à disparaître.
À un moment donné, l'utilisation de cette vélocité dans les initialiseurs Spring est devenue nulle car l'équipe Spring a décidé de ne plus prendre en charge la vélocité.
Le projet Velocity n'est plus actif et ne reçoit plus de mises à jour ; nous l'avons donc exclu car il pourrait avoir un impact négatif sur les utilisateurs de Spring en termes de stabilité, de sécurité, etc.
« Le chemin vers la destination que nous avons définie conceptuellement n’est pas aussi direct que nous l’imaginons, mais est parsemé de nombreux obstacles et difficultés, et même après avoir surmonté toutes ces difficultés, la destination à laquelle nous arrivons peut ne pas être celle que nous souhaitions », a déclaré Onsi Fakuhouri, responsable de la R&D de Cloud Foundry chez Pivotal, lors de sa présentation à SpringOne Platform 2017 (https://youtu.be/_uB5bBsMZIk).
Par conséquent, plutôt que de prendre un risque aussi énorme, a-t-il ajouté, nous devrions répéter le processus d'observation, de sélection et d'apprentissage.
Nous pouvons également appliquer cette méthode lorsque nous cherchons notre destination lors de notre premier voyage.
Commencez par consulter la carte et le terrain environnant sur votre smartphone, comparez-les, puis déplacez-vous.
Pour atteindre plus rapidement votre destination, il vous suffit de pouvoir répéter ce processus plus rapidement.
La survie du projet Spring nous permet de voir un exemple de l'itération observer-faire-apprendre mentionnée par Onsi.
Spring utilise cette méthode pour examiner les besoins des développeurs sur le marché, les refléter et observer les résultats.
C’est ainsi que sont nés le projet Spring Boot et le projet Spring Cloud.
La demande du marché pour les applications basées sur le cloud s'est renforcée, ce qui signifie que le framework Spring doit non seulement assurer une disponibilité et une évolutivité accrues, mais aussi gérer des changements plus fréquents.
Par conséquent, contrairement aux téléphones Nokia, nombre de projets Spring actuels ont survécu avec succès car ils ont su s'adapter aux exigences changeantes du marché.
Et aujourd'hui, divers projets de printemps reproduisent ce processus.
Spring Boot nous permet de ne plus avoir à subir la configuration XML.
L'équipe Spring Boot fournit la même configuration qui doit être répétée à chaque fois, et les développeurs peuvent utiliser les fonctions nécessaires d'une manière différente d'auparavant grâce à l'injection de dépendances.
En outre, Spring Boot offre divers avantages basés sur la « réutilisabilité ».
De plus, Spring Cloud vous permet d'utiliser les technologies utilisées par des entreprises leaders comme Netflix et Amazon, qui développent déjà des applications de pointe dans ce domaine, selon une approche Spring Boot lorsque vous souhaitez implémenter des applications basées sur le cloud.
Lorsqu'il s'agit de résoudre un problème complexe déjà résolu par quelqu'un d'autre, les développeurs familiarisés avec Spring peuvent appliquer presque immédiatement les concepts clés utilisés par Netflix.
De plus, le cloud offre la possibilité d'utiliser des outils existants et d'autres qui n'existaient pas auparavant grâce à l'exposition des API.
Les bases de données relationnelles, qui existent depuis longtemps, ne sont plus préparées par l'équipe d'exploitation lors de leur installation sur le serveur comme auparavant.
Grâce à l'API de création de bases de données, les développeurs peuvent obtenir immédiatement la base de données dont ils ont besoin.
Outre les bases de données relationnelles, il prend également en charge divers nouveaux outils tels que les files d'attente de messages, les bases de données NoSQL, les outils d'apprentissage automatique et le déplacement de données entre sources de données.
Il est extrêmement difficile d'installer ces outils systématiquement sur les ordinateurs portables, les ordinateurs de bureau ou les serveurs des développeurs.
Netflix a récemment annoncé le concept de développeur à cycle complet sur son blog technique (https://bit.ly/2k91j0b).
Un développeur full-cycle est un développeur capable de gérer l'intégralité du cycle de vie d'une application.
Le cycle de vie du logiciel désigne le flux des étapes de conception, de développement, de test, de déploiement, d'exploitation et de support.
Dans la quasi-totalité des organisations, chaque étape est organisée en équipes composées de spécialistes couvrant chacun leur propre domaine d'expertise.
Dans une telle culture organisationnelle, les étapes précédentes ou suivantes ne sont pas considérées comme faisant partie de son propre travail, ou bien une culture se développe dans laquelle personne ne s'implique par manque d'expertise.
Le fait que des personnes et des équipes travaillent sur un même logiciel sans être impliquées mutuellement rend la maintenance de ce logiciel très coûteuse et, de surcroît, nuit considérablement à sa pérennité.
À l'inverse, Netflix crée et met en œuvre une méthode qui permet à tous ses développeurs d'exécuter eux-mêmes le code qu'ils créent.
Autrement dit, les développeurs gèrent directement l'intégralité du cycle de vie du logiciel.
Un facteur clé pour y parvenir est de fournir aux développeurs une variété d'outils de plateforme faciles à utiliser.
Il permet une surveillance aisée des observations nécessaires lors de l'exploitation de votre propre logiciel, prend en charge l'exécution en tant que distribution et connexion, et fournit des outils d'apprentissage grâce aux journaux et à l'analyse des journaux.
Et Cloud Foundry se positionne précisément à ce niveau.
En fournissant des fonctionnalités de surveillance, de journalisation, de déploiement et d'environnement d'exploitation pour les applications, les développeurs pourront se rapprocher du statut de développeurs à cycle complet.
L'association des applications Spring et de l'environnement Cloud Foundry dans lequel elles s'exécutent vous permet d'exécuter plus rapidement les « itérations observer-exécuter-apprendre » que Phil Webb et Onsi Pakuri décrivent comme nécessaires pour s'adapter aux évolutions du marché et rester pertinent.
Vous pourriez sans doute configurer votre propre serveur sans Cloud Foundry, mais cela impliquerait probablement beaucoup de travail distinct et répétitif que quelqu'un d'autre a déjà effectué pour le rendre plus rapide que ce que propose Cloud Foundry.
Je pense qu'il serait plus utile pour vous de vous concentrer sur l'application Spring elle-même pour le moment.
Ce livre, « Cloud Native Java », fournira aux développeurs habitués aux méthodes de développement traditionnelles les « concepts et technologies nécessaires à l'ère moderne » grâce à la méthode Spring.
Par conséquent, je pense que si vous êtes un développeur familier avec Spring, cela vous aidera à acquérir rapidement des techniques de développement modernes.
Ce livre présente les outils Spring qui permettent de s'adapter aux changements afin que votre logiciel soit toujours utile.
Si « Toby's Spring » d'Ilmin Lee a été le livre qui a ouvert la voie à Spring pour les développeurs Java avant l'ère du cloud, alors « Cloud Native Java » est un ouvrage d'introduction qui fournit aux développeurs Spring les compétences nécessaires pour l'ère du cloud.
De plus, ce livre présente Cloud Foundry et explique comment fournir un environnement où vos applications Spring peuvent tirer parti des avantages du cloud, tout en offrant un moyen de préparer et de connecter immédiatement les différents services nécessaires à vos applications Spring.
La méthode de « liaison » utilisée entre les applications et les services de données fait référence au système qui établit une connexion sans que le développeur ait besoin de connaître les informations réseau ou d'authentification concernant la source de données.
Autrement dit, le système traite automatiquement les informations nécessaires à la connexion et fournit un environnement dans lequel les développeurs peuvent se lier à la source de données et l'utiliser dans leurs applications en connaissant simplement le nom de la source de données dont ils ont besoin.
Cela offre non seulement une plus grande facilité de développement, mais augmente également l'évolutivité et la disponibilité en modifiant la façon dont les informations, qui peuvent être créées et détruites à tout moment dans un environnement cloud, sont gérées.
Outre la liaison de données, nous présentons également des techniques pour la mise en œuvre de microservices.
La plupart des premières questions concernant les microservices portent sur la séparation des données. Le chapitre 9, « Gestion des données », explique comment séparer les données dans un service de vente au détail classique en fonction de contextes délimités et comment choisir le système de stockage de données approprié pour chaque type de données, avec des exemples de code Spring.
Le contenu de cet ouvrage est bien plus vaste que vous ne pourriez le penser, et les explications complètes des auteurs couvrent tout le spectre des éléments nécessaires pour s'adapter aux changements rapides et exécuter des applications dans un environnement basé sur le cloud.
Ce seul ouvrage permet aux lecteurs de couvrir une vaste quantité de sujets qui, autrement, nécessiteraient la lecture et la compilation de nombreux autres livres, et, si nécessaire, de consulter d'autres ouvrages portant sur des domaines d'intérêt spécifiques.
« Il n'est pas nécessaire de le changer. »
« La survie n'est pas une obligation. » Cette expression paradoxale signifie que la survie sur le marché est un choix individuel et qu'elle ne parvient pas à s'adapter à l'évolution de la société.
Ce livre est le cadeau ultime des experts Spring aux développeurs Spring d'entreprise désireux de s'adapter et de survivre dans un environnement en constante évolution.
- Tous les traducteurs
Le développement simultané des ordinateurs personnels et d'Internet à la fin des années 1990 et au début des années 2000 a entraîné l'expansion du marché des serveurs et des applications serveur.
Le phénomène connu sous le nom d'explosion mobile s'est produit avec l'avènement des smartphones et l'émergence des clouds capables de gérer la croissance explosive des requêtes des clients.
La création d'applications adaptées à ce nouvel environnement permettra une mise à l'échelle et un déploiement rapide sans précédent pour répondre à ces demandes massives de la clientèle.
Ce livre fournit aux développeurs Java Spring les compétences nécessaires pour créer des applications « natives du cloud » adaptées à ces extensions et à un déploiement plus rapide.
Cet ouvrage est une lecture incontournable pour les développeurs Java d'entreprise intéressés par le cloud.
-Jeong Yun Jin
Cela fait plus de cinq ans que je n'ai pas entendu parler du terme microservices.
Décomposer les choses en petites pièces, les fabriquer rapidement, échouer rapidement et évoluer rapidement n'est pas aussi facile qu'il n'y paraît, mais cela présente des avantages évidents, c'est pourquoi cette méthode est constamment essayée malgré de nombreux essais et erreurs.
Aujourd'hui, nous franchissons une étape supplémentaire dans notre transition vers le DevOps, en migrant notre environnement de déploiement vers le cloud.
Ce livre est un véritable guide complet du développement cloud natif et vous accompagnera dans le monde du développement cloud natif grâce à une organisation conceptuelle et des exemples détaillés.
- Oh Myeong-un
L'architecture de microservices s'impose désormais comme une architecture courante pour le développement d'applications basées sur des environnements distribués dans le cloud. Cependant, concevoir une architecture de microservices adaptée et développer des applications évolutives à partir de celle-ci est loin d'être simple.
Je développe des applications basées sur des microservices en C# depuis environ cinq ans, mais en traduisant ce livre, je n'ai pas pu m'empêcher de frémir d'envie face aux développeurs Java.
Si j'avais bénéficié d'un environnement doté de toutes les plateformes nécessaires à la mise en œuvre des microservices, ces cinq dernières années n'auraient pas été aussi difficiles et éprouvantes.
Ce livre constitue une introduction efficace qui couvre un large éventail d'informations nécessaires au développement et à l'exploitation d'applications cloud-native basées sur une architecture de microservices.
Bien plus qu'une simple introduction à la plateforme Cloud Foundry, cet ouvrage regorge de techniques et de savoir-faire pour développer des applications distribuées performantes, évolutives, fiables et autoréparatrices. Il constituera un guide indispensable pour s'orienter dans l'univers complexe des microservices.
Ce livre, qui réunit la vaste expertise des auteurs en matière d'environnements cloud et distribués, ainsi que l'expérience et les compétences tout aussi impressionnantes des traducteurs, vous aidera à aborder sereinement vos premiers pas vers une architecture de microservices.
- Jang Hyun-hee
SPÉCIFICATIONS DES PRODUITS
- Date de publication : 29 juin 2018
Nombre de pages, poids, dimensions : 784 pages | 1 462 g | 188 × 240 × 36 mm
- ISBN13 : 9791196203733
- ISBN10 : 1196203733
Vous aimerez peut-être aussi
카테고리
Langue coréenne
Langue coréenne