Les microservices constituent une approche architecturale moderne du développement de softwares. Chaque fonction principale, ou service, représente un contexte d'entreprise connexe qui est créé et déployé indépendamment. Les microservices fournissent de l'agilité pour la création et la maintenance d'applications. Cette approche contraste avec l'architecture monolithe utilisée pour le développement des anciens softwares. La modernisation des applications est aujourd'hui synonyme de microservices.
En en apprenant plus sur les microservices, vous verrez le contraste avec les architectures monolithes, les considérations relatives à l'adoption de l'architecture des microservices, les mécanismes de communication, la méthodologie de déploiement à 12 facteurs, le déploiement dans Kubernetes, la persistance des données, le maillage de services et les bonnes pratiques pour la conception de microservices.
Accélérez la mise sur le marché de nouvelles fonctionnalités en déployant vos services sur un modèle bleu-vert d'intégration et de livraison en continu.
Faites évoluer les conteneurs de services ou les plates-formes de données indépendamment par service pour répondre à la demande de cette fonctionnalité.
Remplacement ou retrait de services indépendants sans impact sur l'ensemble de l'application, les défaillances de service individuelles sont gérées de manière progressive par une dégradation du service, plutôt que de bloquer l'ensemble de l'application
Découvrez comment créer un microservice sur Oracle Cloud Infrastructure (OCI).
Les microservices axés sur les données présentent un aspect important : le déploiement de la plate-forme de gestion des données qui permet de déployer un large éventail de types de données, de prendre en charge plusieurs bases de données dans un conteneur et d'offrir des fonctionnalités de gestion autonomes. Oracle Autonomous Database sur OCI facilite le déploiement pour la création de microservices intelligents et axés sur les données.
Oracle Transaction Manager for Microservices (MicroTx) simplifie le développement et les opérations des applications en permettant aux transactions distribuées de garantir la cohérence entre les microservices polyglottes déployés dans Kubernetes et/ou d'autres environnements.
Pour la modernisation des applications, il est nécessaire d'intégrer plusieurs technologies afin de constituer la bonne base de microservices multi-cloud. Oracle LiveLabs vous donne accès aux outils et technologies Oracle pour exécuter un large éventail d'ateliers et de sessions. Ces ateliers montrent comment utiliser les technologies ouvertes avec Oracle pour créer des architectures plus simples qui offrent une flexibilité de déploiement. Créez des microservices dans Oracle LiveLabs avec les composants cloud et hybrides disponibles dans OCI, y compris Autonomous Database, Helidon, Micronaut, MicroTx, WebLogic Server, Java, Docker, Kubernetes et Istio Service Mesh. Pour vous aider à vous lancer dans votre parcours vers les microservices, il existe plusieurs ateliers pour vous aider à moderniser vos applications d'entreprise monolithiques ou à les simplifier si vous avez déjà commencé sur cette voie.
Cette application Oracle LiveLab propose une application mobile de livraison de repas appelée GrabDish qui met en évidence la simplicité de l'architecture de données, avec une pile de développement moderne. Elle contraste avec la complexité des bases de données à usage spécial traditionnellement utilisées comme architectures Lambda et Kappa dans le secteur (avec des systèmes distincts pour les systèmes relationnels, textuels, spatiaux, graphiques et de messagerie) avec la simplicité de la création de microservices orientés données avec Oracle Converged Database. Le laboratoire s'adresse aux développeurs et aux architectes pour concevoir de nouveaux microservices. Il permet également aux administrateurs de base de données de comprendre le rôle d'Oracle Database dans les projets de modernisation des applications. Autonomous Database, les clusters Kubernetes avec des conteneurs docker, Oracle Advanced Queuing et Transactional Event Queues et Helidon permettent de présenter des microservices Java, Node.js et Python fonctionnant avec des données relationnelles, JSON, spatiales et graphiques, avec une fonction de trace et de surveillance configurée avec Kiali, Jaeger, Prometheus et Grafana. Les modèles de microservices, tels que l'approvisionnement d'événements, CQRS et SAGA, sont illustrés.
Comme l'architecture des microservices gagne en popularité, les développeurs rencontrent souvent des problèmes liés à la cohérence des données, car chaque microservice dispose généralement de sa propre base de données ou d'une autre ressource. MicroTx fournit un microservice de coordination des transactions pour maintenir la cohérence dans l'état des différentes bases de données participant à une transaction. MicroTx prend en charge plusieurs protocoles de transaction distribuée, tels que XA, les actions à longue durée d'exécution (LRA) et try-confirm/cancel (TCC). Il prend en charge les transactions distribuées entre les microservices multi-langage, tels que Java, node.js, C/C++ et PL/SQL. Dans cette page LiveLab, les développeurs peuvent apprendre à assurer la cohérence des données entre les différents microservices utilisés dans un exemple d'application.
Plate-forme complète et ouverte pour les microservices
Pour la modernisation des applications, il est nécessaire d'intégrer plusieurs technologies afin de constituer la bonne base de microservices multicloud. Oracle LiveLabs vous donne accès aux outils et technologies Oracle pour exécuter un large éventail d'ateliers et de sessions. Ces ateliers montrent comment utiliser les technologies ouvertes avec Oracle pour créer des architectures plus simples qui offrent une flexibilité de déploiement. Créez des microservices dans Oracle LiveLabs avec les composants cloud et hybrides disponibles dans OCI, Autonomous Database, Helidon, Micronaut, Weblogic, Java, Docker, Kubernetes et Istio Service Mesh, dans une pile de plate-forme de microservices complète. Il existe plusieurs ateliers pour vous aider à moderniser les applications d’entreprise monolithes afin de vous permettre de vous lancer dans votre parcours vers les microservices ou de le simplifier si vous êtes déjà sur cette voie.
Sans serveur - Aucun état persistant n'est nécessaire dans un magasin de données, les tâches étant exécutées à la volée et le style d'oubli. Par exemple, les fonctions lambda et les passerelles d'API.
API-driven - Les microservices communiquent les uns avec les autres à l'aide d'API REST, par exemple une passerelle d'API. Chaque microservice possède une définition d'API.
Microservices asynchrones - L'association est faible grâce à la messagerie asynchrone via des files d'attente ou des logiciels de transmission en continu, par exemple, avec Oracle Advanced Queuing ou Apache Kafka.
Actions de workflow - Les flux métier (humains dans la boucle) représentent également des transactions à long terme, par exemple, avec des structures BPMN, telles que Camunda, Zeebe ou temporal.io.
Workflow automatisé - Tâches qui s'exécutent en tant que workflow simple de manière automatisée (sans humain dans la boucle), par exemple, avec Apache Airflow et Argo (CNCF).
Axée sur les données - L'architecture de données favorise la consommation de données dans l'application pour les opérations et la prise de décision, généralement avec un espace de stockage persistant, par exemple, Oracle Converged Database ou avec des bases de données à usage spécial.
Cloud natif - Une application entièrement développée pour le cloud, par exemple, avec des composants CNCF et des services OCI.
Microservices cloud hybride - Microservices qui fonctionnent sur le centre de données du client (cloud privé) et un cloud public, par exemple, avec Kubernetes/maillage de services pour orchestrer sur un cloud privé et un cloud public (cas d'utilisation de l'éclatement du cloud).
Microservices multicloud - Microservices qui fonctionnent sur au moins deux Clouds publics et un Cloud privé, par exemple, avec Kubernetes/maillage de services pour une orchestration sur plusieurs Clouds (pour réduire les risques et empêcher un enfermement sur un seul Cloud public).
Bien que les microservices soient synonymes de modernisation des applications et constituent la voie à suivre pour tous les développement d'applications, quelques considérations permettent d'améliorer l'efficacité de la transition vers les architectures de microservices.