Découvrez les microservices dans un seul article

Auteur original : NGINX

Lien d'origine : découvrez les microservices dans un seul article

Source de réimpression : site officiel chinois de NGINX


La seule communauté chinoise officielle de NGINX, le tout sur nginx.org.cn 

 Les microservices sont un moyen de créer des applications complexes à l'aide de plusieurs petits composants. Cet article explique son fonctionnement, ses avantages et ses inconvénients, ainsi que les avantages qu'il peut apporter.

Que sont les microservices ?

Les microservices sont une approche d'architecture logicielle permettant de créer des applications volumineuses et complexes utilisant plusieurs petits composants, chacun remplissant une fonction telle que l'authentification, les notifications ou le traitement des paiements. Chaque microservice est une unité indépendante dans un projet de développement logiciel, avec sa propre base de code, sa propre infrastructure et sa propre base de données. Les microservices fonctionnent ensemble et communiquent via l'API Web ou des files d'attente de messages pour répondre aux événements entrants.

Architecture de microservices simplifiée

Architecture de microservices simplifiée

Vidéo sur les microservices

  • Que sont les microservices ?

  • NGINX Plus aide BuzzFeed à migrer vers les microservices

Cliquez ici pour regarder une vidéo d'explication détaillée >>

Pourquoi utiliser une architecture de microservices ?

Dans l’architecture monolithique traditionnelle, toutes les fonctions d’une application sont implémentées dans une seule base de code. Cette approche présente plusieurs inconvénients :

  • À mesure que les applications deviennent plus complexes, il devient difficile pour un développeur de donner un sens à l’ensemble de la base de code. Il peut également être difficile pour les nouveaux développeurs de démarrer. Une solution consiste à attribuer différents modules fonctionnels à différents développeurs ou équipes. Cela permet aux développeurs de contrôler plus facilement leur propre code, mais le problème est que cela rend plus difficile le suivi des dépendances avec d'autres modules. Par conséquent, les modifications apportées à un module sont susceptibles d’affecter les autres modules.

  • Lorsque vous devez ajouter ou améliorer des fonctionnalités, vous devez compiler et tester l'intégralité de l'application pour vérifier que la modification ne rompt pas la compatibilité entre les modules. Ensuite, vous devez déployer l'intégralité de l'application en tant que binaire unique.

L'architecture des microservices divise les fonctions de l'application en plusieurs microservices (services) indépendants, ce qui contribue à simplifier le CI/CD. Les microservices sont plus rapides à développer et plus faciles à comprendre et à maintenir. Chaque service peut être développé indépendamment par une équipe concentrée uniquement sur ce service. L'équipe peut choisir le langage de programmation, la plateforme de développement et la base de données les mieux adaptés aux microservices. Les microservices sont souvent regroupés sous forme de conteneurs pour simplifier davantage le déploiement.

Les microservices sont faiblement couplés, ce qui signifie qu'ils ne dépendent pas des composants internes d'autres microservices. Ils communiquent via des API. Tant que les API exposées par chaque microservice restent rétrocompatibles, les modifications apportées à un microservice n'ont pas besoin d'être mises à jour dans un autre microservice.

En bref, les développeurs qui souhaitent apporter des modifications à une architecture de microservices peuvent le faire dans un seul conteneur de microservices, alors que les développeurs opérant dans une architecture monolithique devront peut-être passer beaucoup de temps à réécrire l'ensemble de la pile.

Groupes d'utilisateurs de microservices

Afin de répondre rapidement aux besoins changeants des entreprises, les équipes techniques se sont tournées vers l’architecture des microservices. Les développeurs mènent ce changement, en grande partie parce que de plus en plus d'entreprises donnent aux développeurs le pouvoir de choisir leurs applications et leurs outils de livraison. Une enquête auprès des utilisateurs de NGINX menée en 2020 a montré que plus de la moitié des personnes interrogées utilisent des microservices dans tout ou partie de leurs applications. En 2022, de plus en plus d'utilisateurs de NGINX travaillant dans des entreprises qui s'éloignent des systèmes monolithiques déclarent adopter les microservices en partie en raison de l'évolutivité permise par l'orchestration de conteneurs.

Microservices 101 : avantages et inconvénients

Les microservices peuvent transformer les applications monolithiques traditionnelles en architectures plus flexibles, sécurisées et efficaces, vous aidant ainsi à économiser beaucoup de temps, d'argent et de ressources. Vous trouverez ci-dessous un résumé des avantages et des inconvénients des microservices pouvant avoir un impact sur les performances et la conception des applications.

avantage:

  • Les développeurs sont libres de développer et de déployer des services de manière indépendante, ce qui permet une prise de décision plus rapide.

  • Grâce à leur petite taille et à leur autonomie, une approche basée sur les microservices peut raccourcir les cycles de développement car différentes équipes peuvent mettre en œuvre différents services en même temps. Les dépendances entre équipes sont souvent réduites, voire supprimées.

  • Les microservices peuvent être facilement déployés dans des conteneurs, ce qui contribue à réduire les frais généraux et à améliorer la portabilité entre différents environnements.

  • Étant donné que les microservices s'intègrent facilement aux outils CI/CD, les développeurs peuvent mettre en œuvre des pratiques DevOps modernes telles que des pipelines CI/CD automatisés.

  • Faites évoluer facilement vos applications et « redimensionnez-les » selon vos besoins, car chaque service est généralement élastique.

  • Les microservices sont plus faciles à créer, tester et maintenir.

  • Les services sont organisés et mis en œuvre autour de fonctions métiers.

  • Les développeurs peuvent adopter la technologie la mieux adaptée à un service spécifique.

  • Isolation plus facile des pannes – Si un microservice tombe en panne, les autres microservices peuvent toujours continuer à s'exécuter.

défaut:

  • L'architecture des microservices augmente la complexité car les développeurs doivent réduire la tolérance aux pannes, réduire la latence du réseau, gérer différents langages de programmation et équilibrer la charge entre plusieurs services.

  • Le dépannage des microservices peut être fastidieux et complexe en raison de leur nature distribuée.

  • L'augmentation du nombre de microservices dans une application augmente les efforts d'intégration et de gestion.

  • Gérer plusieurs bases de données

Les API sont-elles des microservices ?

Bref, non. Les API elles-mêmes ne sont pas des microservices. Mais les API sont de plus en plus intégrées dans les architectures de microservices en tant que mécanismes de communication au sein des applications. La fonctionnalité d'un microservice est exposée sous la forme d'un ensemble de points de terminaison d'API, et d'autres microservices invoquent cette fonctionnalité en effectuant des appels d'API aux points de terminaison correspondants.

Pourquoi utiliser des conteneurs pour exécuter des microservices ?

Les plates-formes de conteneurisation permettent aux développeurs d'isoler, de faire évoluer et de déployer des microservices de la manière la plus efficace possible, quelles que soient les contraintes d'infrastructure, tout en minimisant les perturbations pour les utilisateurs. Considérez un scénario dans lequel un seul cluster de serveurs d'équilibrage de charge et de routage du trafic est déployé devant votre application. Avec une adresse IP publique statique publiée dans DNS, les clients peuvent envoyer leurs requêtes à ce point d'entrée stable, qui sont ensuite transmises au conteneur approprié. Si ces conteneurs sont ajoutés ou supprimés, mettez simplement à jour l'adresse interne pour diriger ces requêtes vers la nouvelle adresse IP. Vous pouvez également publier ces adresses en interne via DNS.

Cas de microservice

Les microservices accélèrent une migration transparente et sécurisée dans des secteurs hautement réglementés

Une entreprise multinationale opérant dans un secteur hautement réglementé doit mettre à niveau ses systèmes selon un calendrier prescrit pour garantir la conformité aux normes et aux meilleures pratiques en constante évolution. Le portefeuille d'applications de l'entreprise traite chaque jour des millions de transactions via ses systèmes. Au fil des années, la société est restée conforme aux exigences du secteur, même lors des mises à niveau open source et des intégrations de plugins de sécurité tiers. Cependant, lors d’une mise à jour récente, la société a rencontré quelques difficultés en raison de problèmes d’exclusion mutuelle des plugins. L'entreprise avait envisagé de passer de son centre de données au cloud public AWS, mais des problèmes de plug-in de sécurité l'ont incité à passer à une architecture de microservices. Cette solution est moins coûteuse et aide l’entreprise à se mettre rapidement en conformité en matière de sécurité.

Lisez ce témoignage de client pour en savoir plus sur la migration des microservices.

article de blog

Histoires de réussite et cas d'utilisation

Les références

Recommandations de ressources

Cliquez ici pour consulter gratuitement le contenu de l'agenda Microservices de juin 2023 et toutes les rediffusions de cours.


La seule communauté chinoise officielle de NGINX, le tout sur  nginx.org.cn

Plus d'informations techniques liées à NGINX, des questions et réponses interactives, une série de cours et des ressources événementielles :  Site officiel de la communauté Open Source  | 

Les ressources piratées de "Qing Yu Nian 2" ont été téléchargées sur npm, obligeant npmmirror à suspendre le service unpkg. Zhou Hongyi : Il ne reste plus beaucoup de temps à Google. Je suggère que tous les produits soient open source. time.sleep(6) joue ici un rôle. Linus est le plus actif dans la « consommation de nourriture pour chiens » ! Le nouvel iPad Pro utilise 12 Go de puces mémoire, mais prétend disposer de 8 Go de mémoire. Le People's Daily Online examine la charge de type matriochka des logiciels de bureau : Ce n'est qu'en résolvant activement « l'ensemble » que nous pourrons avoir un avenir avec Flutter 3.22 et Dart 3.4 . nouveau paradigme de développement pour Vue3, sans avoir besoin de « ref/reactive », pas besoin de « ref.value » Publication du manuel chinois MySQL 8.4 LTS : vous aider à maîtriser le nouveau domaine de la gestion de bases de données Tongyi Qianwen niveau GPT-4 prix du modèle principal réduit de 97%, 1 yuan et 2 millions de jetons
{{o.name}}
{{m.nom}}

Je suppose que tu aimes

Origine my.oschina.net/u/5246775/blog/11184822
conseillé
Classement