«Le style architectural des microservices est une approche pour développer un application unique comme une suite de petits services, chacun fonctionnant dans son propre processus et communication avec des mécanismes légers, souvent une API de ressources HTTP. Ces services sont construit autour des capacités métier et déployable indépendamment par machines de déploiement entièrement automatisées. Il existe un minimum de gestion centralisée de ces services, qui peut être écrite en différents langages de programmation et utiliser différentes technologies de stockage de données.« 

James Lewis et Martin Fowler (2014) [6]

introduction

On s’attend à ce qu’en 2020, le marché mondial des microservices cloud croisse à un taux de 22,5%, le marché américain devant maintenir un taux de croissance de 27,4% [5]. La tendance est que les développeurs s’éloignent des applications hébergées localement pour passer au cloud. Par conséquent, cela aidera les entreprises à minimiser les temps d’arrêt, à optimiser les ressources et à réduire les coûts d’infrastructure. Les experts prévoient également que d’ici 2022, 90% de toutes les applications seront développées à l’aide d’une architecture de microservices [5]. Cet article vous aidera à découvrir ce que sont les microservices et comment les entreprises les utilisent de nos jours.

Que sont les microservices?

Les microservices sont largement utilisés dans le monde. Mais que sont les microservices? Microservice est un modèle architectural dans lequel l’application est basée sur de nombreux petits services interconnectés. Ils sont basés sur le principe de responsabilité unique, qui selon Robert C. Martin «rassemble des choses qui changent pour la même raison, et sépare celles qui changent pour des raisons différentes» [2]. L’architecture des microservices est également étendue au services faiblement couplés ça peut être développé, déployé et maintenu indépendamment [2].

S’éloigner des architectures monolithiques

Les microservices sont souvent comparés à l’architecture logicielle monolithique traditionnelle. Dans une architecture monolithique, un logiciel est conçu pour être autonome, c’est-à-dire que les composants du programme sont interconnectés et interdépendants plutôt que faiblement couplés. Dans une architecture étroitement couplée (monolithique), chaque composant et ses composants associés doivent être présents pour que le code soit exécuté ou compilé [7]. De plus, si un composant doit être mis à jour, l’ensemble de l’application doit être réécrit.

Ce n’est pas le cas pour les applications utilisant l’architecture des microservices. Puisque chaque module est indépendant, il peut être modifié sans affecter les autres parties du programme. Par conséquent, réduire le risque qu’une modification apportée à un composant crée des changements imprévus dans d’autres composants.

Les entreprises peuvent avoir des problèmes si elles ne peuvent pas faire évoluer une architecture monolithique si leur architecture est difficile à mettre à niveau ou si la maintenance est trop complexe et coûteuse [4]. Décomposer une tâche complexe en composants plus petits qui fonctionnent indépendamment les uns des autres est la solution à ce problème.

Publicité
Microservices Diagram A
Architecture Monolithique Ou Microservices. Image Extraite De [3].

Comment les développeurs du monde entier créent leurs microservices

Les microservices sont bien connus pour améliorer évolutivité et performance. Cependant, sont-elles les principales raisons pour lesquelles les développeurs du monde entier créent leurs microservices? Le projet de recherche State of Microservices 2020 [1] a découvert comment les développeurs du monde entier construisent leurs microservices et ce qu’ils en pensent. Le rapport a été créé avec l’aide de 660 experts en microservices d’Europe, d’Amérique du Nord, d’Amérique centrale et du Sud, du Moyen-Orient, d’Asie du Sud-Est, d’Australie et de Nouvelle-Zélande. Le tableau ci-dessous présente la note moyenne sur les questions liées à la maturité des microservices [1].

Catégorie Note moyenne (sur 5)
Mettre en place un nouveau projet 3,8
Maintenance et débogage 3.4
Efficacité du travail 3,9
Résolution des problèmes d’évolutivité 4.3
Résolution des problèmes de performances 3,9
Travail en équipe 3,9

Comme observé sur la table, la plupart des experts sont satisfaits des microservices pour résoudre les problèmes d’évolutivité. Au contraire, la maintenance et le débogage semblent être un défi pour eux.

Selon les technologies de pointe de leur architecture, la plupart des experts ont déclaré utiliser Javascript / Typescript (presque ⅔ des microservices sont construits sur ces langages). En second lieu, ils utilisent principalement Java.

Bien qu’il existe de nombreuses options pour déployer des microservices, la plupart des experts utilisent Amazon Web Services (49%), suivi de leur propre serveur. De plus, 62% préfèrent AWS Lambda en tant que solution sans serveur.

La plupart des microservices utilisés par les experts utilisent HTTP pour la communication, suivi des événements et du gRPC. De plus, la plupart des experts utilisent RabbitMQ pour les courtiers de messages, suivis de Kafka et Redis.

De plus, la plupart des gens utilisent l’intégration continue (CI) de microservices. Dans le rapport, 87% des répondants utilisent des solutions CI telles que GitLab CI, Jenkins ou GitHub Actions.

La solution de débogage la plus populaire parmi 86% des répondants était la journalisation, dans laquelle 27% des répondants utilisent UNIQUEMENT les journaux.

Enfin, la plupart des gens pensent que l’architecture des microservices deviendra soit un standard pour des systèmes plus complexes, soit pour le développement backend.

Cas d’utilisation réussis des microservices

De nombreuses entreprises sont passées d’une architecture monolithique à des microservices.

Amazone

En 2001, les retards de développement, les défis de codage et les interdépendances de services n’ont pas permis à Amazon de répondre aux exigences d’évolutivité de sa base d’utilisateurs croissante. Avec la nécessité de refactoriser leur architecture monolithique à partir de zéro, Amazon a divisé ses applications monolithiques en petites applications indépendantes et spécifiques au service. [3][9].

En 2001, Amazon a décidé de passer aux microservices, des années avant que le terme ne soit à la mode. Ce changement a conduit Amazon à développer plusieurs solutions pour prendre en charge les architectures de microservices, telles qu’Amazon AWS. Avec la croissance rapide et l’adaptation aux microservices, Amazon est devenue la société la plus précieuse au monde, évaluée en fonction de sa capitalisation boursière à 1,433 billion de dollars le 1er juillet 2020 [8].

Netflix

Netflix a lancé son service de streaming de films en 2007 et en 2008, il souffrait de problèmes de mise à l’échelle. Ils ont été confrontés à une corruption importante de leur base de données et, pendant trois jours, ils n’ont pas pu envoyer de DVD à leurs membres [10]. C’était le point de départ quand ils ont réalisé la nécessité de s’éloigner des points de défaillance uniques (par exemple, les bases de données relationnelles) vers un système distribué plus évolutif et fiable dans le cloud. En 2009, Netflix a commencé à refactoriser son architecture monolithique en microservices. Ils ont commencé par migrer sa plate-forme de codage de films non orientée client vers le cloud en tant que microservices indépendants. [11]. Le passage aux microservices a permis à Netflix de surmonter ses défis de dimensionnement et ses pannes de service. Malgré cela, cela leur a permis de réduire les coûts en ayant des coûts cloud par streaming au lieu des coûts avec un centre de données [10]. Aujourd’hui, Netflix diffuse environ 250 millions d’heures de contenu par jour à plus de 139 millions d’abonnés dans 190 pays [11].

Uber

Après avoir lancé Uber, ils ont eu du mal à développer et à lancer de nouvelles fonctionnalités, à corriger les bogues et à intégrer rapidement de nouveaux changements. Ainsi, ils ont décidé de passer aux microservices et ont divisé la structure de l’application en microservices basés sur le cloud. En d’autres termes, Uber a créé un microservice pour chaque fonction, comme la gestion des passagers et la gestion des voyages. Le passage aux microservices a apporté à Uber de nombreux avantages, comme avoir une idée claire de la propriété de chaque service. Cela a amélioré la vitesse et la qualité, facilitant une mise à l’échelle rapide en permettant aux équipes de se concentrer uniquement sur les services dont elles avaient besoin pour évoluer, en mettant à jour les services virtuels sans perturber les autres services et en obtenant une tolérance aux pannes plus fiable. [11].

Tout est question d’évolutivité!

Un bon exemple de la manière de fournir une évolutivité est de regarder la Chine. Avec son grand nombre d’habitants, la Chine a dû s’adapter en créant et en testant de nouvelles solutions pour résoudre de nouveaux défis à grande échelle. Les statistiques montrent que la Chine dessert aujourd’hui environ 900 millions d’internautes [14]. Lors du Single’s Day 2019 (l’équivalent du Black Friday en Chine), le pic de transaction des différentes plateformes d’achat d’Alibaba a été de 544,00 transactions par seconde. La quantité totale de données traitées sur Alibaba Cloud était d’environ 970 pétaoctets [15]. Alors, quelle est l’implication de ce nombre d’utilisateurs dans la technologie?

De nombreuses technologies sont issues de la nécessité de traiter l’évolutivité. Par exemple, Goudrons a été créée en 2008 par Tencent et contribué à la Linux Foundation en 2018. Il est utilisé à grande échelle et amélioré pendant dix ans [12]. Tars est open source, et de nombreuses organisations contribuent et étendent de manière significative les fonctionnalités et la valeur du framework [12]. Tars prend en charge plusieurs langages de programmation, notamment C ++, Golang, Java, Node.js, PHP et Python; et il peut rapidement construire des systèmes et générer automatiquement du code, permettant au développeur de se concentrer sur la logique métier pour améliorer efficacement l’efficacité opérationnelle. Tars a été largement utilisé dans le QQ de Tencent, le réseau social WeChat, les services financiers, l’informatique de pointe, l’automobile, la vidéo, les jeux en ligne, les cartes, le marché des applications, la sécurité et de nombreuses autres activités principales. En mars 2020, le projet Tars est devenu la Fondation TARS, une fondation de microservices open source pour soutenir la croissance rapide des contributions et des membres d’une communauté axée sur la création d’une plateforme de microservices ouverte [12].

N’oubliez pas de consulter le nouveau cours de formation gratuit de la Linux Foundation, Création de plates-formes de microservices avec TARS

À propos des auteurs:

Isabella Ferreira est avocate à la Fondation TARS, une fondation de microservices open source cloud native sous la Linux Foundation.

Mark Shan est président de Tencent Open Source Alliance et également président du conseil d’administration de la Fondation TARS.

Références:

[1] https://tsh.io/state-of-microservices/#ebook

[2]https://medium.com/hashmapinc/the-what-why-and-how-of-a-microservices-architecture-4179579423a9

[3] https://www.plutora.com/blog/understanding-microservices

[4] https://www.leanix.net/en/blog/a-brief-history-of-microservices

[5] https://www.charterglobal.com/five-microservices-trends-in-2020/

[6] https://martinfowler.com/articles/microservices.html#footnote-etymology

[7] https://whatis.techtarget.com/definition/monolithic-architecture

[8] https://ycharts.com/companies/AMZN/market_cap

[9] https://thenewstack.io/led-amazon-microservices-architecture/

[10] https://media.netflix.com/en/company-blog/completing-the-netflix-cloud-migration

[11] https://blog.dreamfactory.com/microservices-examples/

[12] https://www.linuxfoundation.org/blog/2020/03/the-tars-foundation-the-formation-of-a-microservices-ecosystem/

[13] https://medium.com/microservices-architecture/top-10-microservices-framework-for-2020-eefb5e66d1a2

[14] https://www.statista.com/statistics/265140/number-of-internet-users-in-china/

[15] https://interconnected.blog/china-scale-technology-sandbox/

Ce contenu du sponsor Platinum de la Fondation Linux a été fourni par Tencent.

Rate this post
Publicité
Article précédentComment utiliser la date et l’heure dans Bash à l’aide de la commande de date
Article suivantRéduire la complexité en augmentant la consolidation pour les PME
Avatar
Violette Laurent est une blogueuse tech nantaise diplômée en communication de masse et douée pour l'écriture. Elle est la rédactrice en chef de fr.techtribune.net. Les sujets de prédilection de Violette sont la technologie et la cryptographie. Elle est également une grande fan d'Anime et de Manga.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici