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