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.

Plateforme complète et ouverte pour les micro-services

Pour la modernisation des applications, il faut intégrer plusieurs technologies afin de constituer la bonne base des 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 micro services dans Oracle LiveLabs avec des 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 lancer dans votre parcours de microservices, il existe plusieurs laboratoires pour vous aider à moderniser vos applications d'entreprise monolithiques ou à les simplifier si vous avez déjà commencé dans cette voie.

Table des plateformes ouvertes

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

Ce site Oracle LiveLab propose une application de livraison de repas mobile appelée GrabDish qui met en évidence la simplicité de l'architecture de données, avec une pile du développement moderne. Elle met en contraste la complexité des bases de données d'usage spécial traditionnellement utilisées comme architectures Lambda et Kappa dans le secteur (par ex., des systèmes distincts pour les systèmes relationnels, textuels, spatiaux, graphiques et d'échange de messages) avec la simplicité de la création de microServices orientés données avec la base de données convergée d'Oracle. Le laboratoire s'adresse aux développeurs et aux architectes pour concevoir de nouveaux microservices Il aide également les administrateurs de base de données à comprendre le rôle d'Oracle Database dans les projets d'innovation des applications. Autonomous Database, les clusters Kubernetes avec conteneurs docker, Oracle Advanced Queuing, les files d'attente d'événements transactionnels 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 fonctionnalité de traçage 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

Alors que l'architecture de microservices gagne en popularité, les développeurs rencontrent souvent des problèmes liés à la cohérence des données, car chaque microservice possède généralement sa propre base de données ou une autre ressource. MicroTx fournit un microservice de coordination des transactions pour maintenir la cohérence de l'état des différentes bases de données participant à une transaction. MicroTx prend en charge plusieurs protocoles de transaction distribués, tels que XA, les actions à longue durée d'exécution (LRA) et TCC (Essayer de confirmer/Annuler). Il prend en charge les transactions distribuées entre les microservices multi-langage, tels que Java, node.js, C/C++ et PL/SQL. Dans ce 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

blocs de construction

Plate-forme complète et ouverte pour les microservices

Pour la modernisation des applications, il faut intégrer plusieurs technologies afin de constituer la bonne base des 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.

Termes relatifs aux microservices

Sans Serveur - Aucun état persistant n'est nécessaire dans une banque de données, les tâches sont exécutées à la volée ("fire and forget style") par exemple. Par exemple, les fonctions lambda et les passerelles API.

En fonction d'API : les microservices communiquent entre eux à l'aide d'API REST, par exemple une passerelle d'API. Chaque microservice dispose d'une définition d'API.

Microservices asynchrones - Les couplages sont limités 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 : flux métier (avec des humains dans la boucle) représentant également des transactions à longue durée d'exécution, par exemple, avec des structures BPMN, telles que Camunda, Zeebe ou temporal.io.

Workflow automatisé - Tâches qui s'exécutent en tant qu'workflow simple et automatisé (sans humain dans la boucle), par ex. avec Apache Airflow et Argo (CNCF).

Axé sur les données - L'architecture de vos données favorise l'utilisation de vos données dans l'application pour les opérations et l'aide à la décision, généralement avec un emplacement de stockage persistant, par exemple Oracle Converged Database ou avec des bases d'informations à usage spécial.

Cloud natif - Application entièrement développée pour le cloud, par exemple, avec des composants CNCF et des services OCI.

Microservices cloud hybrides - Microservices qui fonctionnent dans le centre de données du client (cloud privé) et dans un cloud public, par exemple, avec Kubernetes/le 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 leur propre cloud privé, par exemple avec Kubernetes/Service mesh pour être orchestrés sur plusieurs clouds (des risques et prévention d'un enfermement dans un seul cloud public)

Défis liés aux microservices

Bien que la modernisation des applications soit synonyme de micro-services et constitue la voie à suivre pour tous les développements d'applications, quelques considérations permettent d'améliorer l'efficacité de la migration vers les architectures de micro-services.

  • Choix du 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 adéquats, le passage aux microservices a été mieux adapté 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 limitant les performances dans certains cas). Les SAGA synchrones se sont révélés plus performants et plus robustes, ce qui est encore simplifié avec 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 plan de l'application ou du niveau intermédiaire, mais également au plan des données, pour un déploiement d'un bout à l'autres global et la prise en charge des architectures de micro-services. Les intégrations d'outils et d'analyses commencent à aborder cet aspect important pour les déploiements hybrides.

Témoignages clients sur les microservices