Premiers pas avec les microservices

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.

Avantages des microservices

  • Déploiement simplifié

    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.

  • Augmentation des performances à la demande

    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é.

  • Haute disponibilité intégrée dès la conception

    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).

Avantages d'Oracle Converged Database

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.

Assurer la cohérence des transactions entre les applications basées sur les microservices

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.

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 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.

Table des plateformes ouvertes

Microservices basés sur les données avec Oracle Converged Database

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.

Microservices basés sur les données avec Oracle Converged Database

Cohérence des transactions entre les microservices avec Oracle Transaction Manager for Microservices

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.

Cohérence des transactions entre les microservices avec Oracle Transaction Manager for Microservices

Eléments de base

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.

Conditions des microservices

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).

Les défis des microservices

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.

  • Choisir le nombre de microservices indépendants pour une application. Un déploiement de microservices devient complexe lorsque des milliers de microservices doivent être déployés et doivent fonctionner en harmonie lorsque le contexte de chaque service est très petit. L'expérience indique que lorsque 20 à 50 microservices sont identifiés dans les contextes limités appropriés, la transition vers les microservices a été améliorée par rapport aux avantages promis.
  • La mise en œuvre de transactions au-delà des limites des microservices a été un défi avec les transactions XA (synchrones et limitation des performances dans certains cas). Les SAGA synchrones se sont révélés plus performants et plus robustes, qui sont encore simplifiés grâce à la prise en charge dans Oracle Database convergé.
  • La nécessité d'un couplage faible entre les microservices pose un problème avec l'utilisation de services d'API REST synchrones, et les systèmes de messagerie/mise en file d'attente rendent cette communication asynchrone et plus évolutive dans le déploiement d'applications dans un environnement cloud hybride.
  • Le suivi et l'observabilité ne sont pas seulement importants au niveau de l'application ou du niveau intermédiaire, mais également au niveau des données, pour un déploiement global d'un bout à l'autre et la prise en charge des architectures de microservices. Les intégrations d'outils et d'analyses commencent à aborder cet aspect important pour les déploiements hybrides.

Témoignages clients sur les microservices