Les partisans d’un framework d’applications distribuées, apparu comme un pont entre les microservices, voient désormais celui-ci jouer un rôle clé dans la nouvelle ère de l’ingénierie des plateformes.
Le battage médiatique initial autour des microservices s’est transformé en un ensemble de pratiques plus pragmatiques ces dernières années, avec la reconnaissance du fait que cela n’est pas nécessairement approprié pour chaque application ou API. Inventé pour la première fois en 2011, le terme microservices décrit une approche architecturale du déploiement de logiciels qui utilise des ensembles de services modulaires et construits indépendamment pour former une application logique plus large. En 2016, les premières sociétés de cloud computing telles que Netflix avaient adopté le concept et ouvert un cadre d’orchestration de microservices appelé Conductor. Pivotal Labs a publié la même année la version 1.0 de son framework de microservices Spring Cloud Stream basé sur Java. Fin 2018, IDC prévoyait que 90 % de toutes les applications d’entreprise comporteraient une architecture de microservices d’ici 2022.
Cependant, la désillusion face au coût et à la complexité des microservices a rapidement suivi. Mentions de architecture de microservices a chuté de 42 % entre 2019 et 2020, selon une analyse médiatique Gartner de 2021. L’ennui des microservices a culminé dans une étude de cas très médiatisée publiée par l’équipe de développement Prime Video d’Amazon en 2023 sur les économies de 90 % réalisées en s’éloignant des microservices pour revenir à un monolithe.
« Il existe actuellement deux tendances majeures concernant les microservices dans l’industrie », a déclaré Stephen O’Grady, co-fondateur et analyste chez RedMonk. « La première consiste à déterminer où elles sont appropriées ; le pendule de l’industrie est allé trop loin et a essayé de les appliquer à chaque API, y compris dans certains cas où elles n’étaient pas appropriées. … Et deuxièmement, dans ces cas-là, les clients recherchent pour des plates-formes intégrées plus largement capables de gérer leurs diverses instanciations de microservices.
Dapr profite de l’élan de la CNCF pour entrer dans l’ère des plateformes
Dapr, un framework de microservices développé chez Microsoft en 2019, a été offert à la Cloud Native Computing Foundation (CNCF) en 2021. Dapr est un environnement d’exécution d’application distribué qui expose un ensemble standard d’API pour relier les applications de microservices écrites dans plusieurs langages de programmation avec un assortiment des éléments partagés dont ils ont besoin pour fonctionner. Ces éléments, que Dapr qualifie Composantsincluent une variété de magasins d’État et secrets tels que Redis et HashiCorp Vault et des services de messagerie tels que Kafka, ainsi que des outils de chiffrement et d’observabilité.
Comme pour les microservices eux-mêmes, Dapr a bénéficié d’une association avec les conteneurs et Kubernetes et est souvent déployé en tant que side-car au sein des clusters de conteneurs, bien qu’il prenne également en charge les applications sans serveur et basées sur VM. En 2023, Dapr était le 11e plus grand projet au sein de la CNCF, avec plus de 3 000 contributeurs, selon les responsables de Diagrid, un fournisseur de startups fondé en 2021 qui héberge les services gérés Kubernetes et Dapr API. Dapr fait également partie de la plomberie du projet initial de plate-forme de développement Radius Microsoft qui a vu le jour en novembre dernier.
Il existe une affinité naturelle entre les API standardisées pour les microservices et les API utilisées par les équipes de plates-formes centralisées pour permettre aux développeurs d’accéder à des ressources partagées, selon Mark Fussell, co-créateur de Dapr et fondateur et PDG de Diagrid.
« Les gens doivent produire un ensemble d’API d’ingénierie de plateforme afin [for developers] à intégrer dans leur plate-forme, et de nombreuses entreprises ont inclus les API Dapr dans le cadre de [that] un jeu d’ingénierie de plate-forme d’application », a déclaré Fussell. « [It] aide à briser la fragmentation et à diffuser des messages cohérents, à créer des applications sur des plates-formes cloud et sur site et permet [them] pour parvenir à la portabilité du cloud.
De plus, ces API forment une couche d’abstraction qui permet de modifier les services de plate-forme sous-jacents sans le même type de perturbation qui peut résulter de la réécriture d’intégrations personnalisées directes, a déclaré Fussell.
Malgré son support multilingue, Dapr reste associé à Microsoft .NET dans la pratique, a déclaré Matt Brasier, analyste chez Gartner. Mais au sein de cet écosystème, Dapr a trouvé sa place dans les entreprises qui doivent gérer des applications distribuées et leurs services d’infrastructure associés au sein de plates-formes de développement internes, qu’elles répondent ou non à la définition technique complète des microservices.
Les frameworks comme Dapr ont encore un rôle à jouer, que vous passiez d’un monolithe à trois composants, ou d’un monolithe à 300 composants.
Matt BraseroAnalyste, Gartner
« Dans le monde moderne, caractérisé par un rythme de changement plus rapide, dans de nombreux cas d’utilisation, un seul monolithe n’est pas la bonne architecture, mais cela ne signifie pas que vous avez besoin de 500 ou 1 000 microservices – cela peut simplement signifier que vous divisez le monolithe en trois composantes », a déclaré Brasier. « Mais les frameworks comme Dapr ont encore un rôle à jouer, que vous passiez d’un monolithe à trois composants, ou d’un monolithe à 300 composants. »
Pourtant, Dapr ne laisse guère les microservices dans la poussière. Plus récemment, le projet a commencé à s’étendre au-delà d’un ensemble de composants de microservices individuels vers une orchestration formelle de microservices avec le projet bêta Dapr Workflow, dont la disponibilité générale est prévue plus tard cette année. Dapr Workflow est compétitif avec les outils des fournisseurs d’orchestration de microservices tels que Temporal et Cadence, selon son créateur, mais avec un support polyglotte et multi-outils.
« Nous utilisons simplement du code dans le langage de votre choix pour définir réellement l’exécution du flux de travail. Vous pouvez même y attacher des débogueurs pendant que le flux de travail est en cours d’exécution et voir ce qui se passe », a déclaré Chris Gillum, architecte partenaire chez Microsoft et créateur de Dapr Workflow. , lors d’une présentation à la KubeCon + CloudNativeCon North America 2023. « Si vous avez déjà entendu parler de Temporal, Cadence ou même d’Azure Durable Functions, c’est effectivement la même idée que nous avons reprise et mise dans le projet Dapr pour le rendre disponible dans une manière indépendante du cloud.
Les composants Dapr sont un ensemble standardisé de blocs de construction qui relient les applications distribuées et les services partagés communs de manière interchangeable.
Zscaler obtient un flex pub/sub dans Dapr et envisage l’utilisation de la plate-forme
Dapr a sa propre courbe d’apprentissage, en particulier lorsque la version open source est déployée via le side-car Kubernetes, selon un ingénieur logiciel qui a commencé à l’utiliser pour un projet de développement spécifique en 2022.
Josh Carlisle
« Nous devions familiariser nos ingénieurs avec le cycle de développement [using the Dapr API] », a déclaré Josh Carlisle, ingénieur logiciel principal chez Zscaler, un fournisseur de sécurité cloud à San Jose, en Californie. » Ils doivent comprendre : » Hé, avant de pouvoir exécuter du code, lancez la CLI Dapr et faites-la fonctionner. » Ce n’était pas une tâche lourde, mais il a fallu probablement deux ou trois bonnes semaines de développement avant que les ingénieurs ne se familiarisent avec le nouveau flux de travail. »
Carlisle a dirigé une équipe de développeurs chez Zscaler qui a utilisé Dapr pour ajouter des fonctionnalités d’observabilité et de résilience telles que les tentatives et la coupure de circuit à une plate-forme de messagerie Kafka hébergée en interne l’année dernière. Même avec la courbe d’apprentissage initiale des développeurs, il a estimé que l’utilisation de Dapr au lieu de construire à partir de zéro réduisait le temps nécessaire pour terminer ce projet d’environ un quart à un tiers.
« Kafka est une formidable plateforme, [but] c’est extrêmement complexe à gérer et à gérer [and] nous savions qu’en général, Kafka n’était peut-être pas le meilleur [choice] », a-t-il déclaré. « Nous avons utilisé Dapr pour extraire notre code de l’implémentation afin qu’à l’avenir, si nous voulions passer du pub/sub [with Kafka] à quelque chose de cloud natif, comme [AWS] SNS ou SQS, ou RabbitMQ notre [platform] le code ne change pas. »
Carlisle a depuis été chargé de créer une plate-forme de développement interne destinée à un plus grand nombre des 5 000 employés de l’entreprise. Il prévoit d’inclure Dapr dans cet effort.
« Là où je vois Dapr s’intégrer dans l’histoire du développement de la plateforme, c’est en tant que composant fondamental permettant à une équipe de plateforme de dire : « Voici un plan », quelque chose à utiliser qui a du succès. [to] donnez à chacun un point de départ.
Les équipes de plate-forme disposent d’un large éventail d’outils parmi lesquels choisir pour créer de telles « voies dorées » vers la production pour les développeurs, notamment le maillage de services et l’automatisation basée sur les événements, ainsi que d’autres outils d’orchestration de microservices. Ce fait n’a pas échappé à certains ingénieurs de Zscaler lorsque Carlisle a proposé pour la première fois d’utiliser Dapr, a-t-il déclaré.
« Il y a certaines fonctionnalités que nous avons utilisées, pour lesquelles les ingénieurs se demandaient : « Eh bien, pourquoi n’utilisons-nous pas simplement le maillage de services ? » », a-t-il déclaré. « [But Dapr] nous a également permis d’utiliser des maillages de services au niveau du réseau, mais si nous voulons le faire [asynchronous] appels et applique les mêmes types de fonctionnalités, comme avec la messagerie, cela ne fait pas un aussi bon travail. … Si vous disposez déjà d’un maillage de services, cela ne signifie pas que vous devez le désinstaller, mais si vous ne voulez pas avoir à supporter le poids lourd d’un maillage de services, vous pouvez toujours en obtenir une partie. [same] des choses. »
De même, Carlisle a déclaré que Dapr Workflow pourrait constituer une alternative plus légère aux outils d’orchestration de microservices existants.
« Nous avons des cas d’utilisation relativement simples, comme le fan-out et le fan-in, qui ne peuvent tout simplement pas justifier le lancement de Temporal ou Cadence et de plates-formes plus grandes », a-t-il déclaré. « J’ai réalisé beaucoup de choses sans serveur il y a des années avec Azure Functions, et Azure Functions dispose de ce cadre de tâches durable. [Workflow] ça me rappelle beaucoup ça. »
SharperImage.com s’appuie sur les services Dapr de Diagrid
Une petite entreprise sans équipe de plateforme dédiée a utilisé les services gérés de Diagrid pour jouer un rôle d’ingénierie de plateforme pour ses développeurs.
Camelot SI LLC, qui gère le détaillant en ligne SharperImage.com, a commencé à remplacer un cadre de microservices local créé par un ancien employé de Diagrid’s Conductor en 2022 pour exécuter Dapr sur ses clusters Amazon EKS.
Aaron Olds
« Je voulais simplement que les développeurs puissent se soucier de l’écriture d’applications ASP.NET Core et n’aient pas à se soucier de toute cette configuration qu’ils doivent effectuer sur leur machine locale afin d’obtenir un environnement correct », a déclaré Aaron Olds, ingénieur logiciel senior. à Camelot.
Diagrid Catalyst permet une intégration plus rapide des développeurs, une flexibilité dans l’utilisation par l’entreprise du service AWS sous-jacent et garantit que les configurations sont toujours correctes, a déclaré Olds. Comme pour Carlisle de Zscaler, Olds a déclaré que Dapr présentait initialement une courbe d’apprentissage pour lui et un collègue ingénieur, mais Diagrid a organisé un hackathon et une formation d’introduction qui ont aidé.
Maintenant que le passage à Conductor est terminé, c’est un gain de temps pour Olds et cinq autres développeurs qui gèrent une soixantaine de microservices pour l’entreprise.
« Cela a pu nous aider à diagnostiquer des problèmes dont nous ignorions l’existence, car le framework précédent présentait des problèmes de mise en cache et de file d’attente. Il s’agissait de charger des données et nos services ne faisaient encore rien », a-t-il déclaré. « Conductor nous indique ce que le side-car demande en termes de ressources, et il nous avertit également en cas de surprovisionnement ou de sous-provisionnement. »
Suite à la croissance frénétique de la pandémie de COVID-19 dans le commerce électronique, Camelot se concentre désormais sur la réduction des coûts informatiques. Il envisage actuellement d’utiliser des offres de conteneurs sans serveur telles qu’AWS App Runner, de ramener en interne les charges de travail qui avaient été gérées par des fournisseurs SaaS ou de changer les fournisseurs avec lesquels il travaille – autant de domaines dans lesquels Catalyst de Diagrid pourrait jouer un rôle, a déclaré Olds. Le service, lancé en novembre, gère les API Dapr, y compris Workflow, dans des domaines au-delà de l’environnement Kubernetes.
« J’adorerais pouvoir dire : ‘Nous n’allons plus utiliser Kubernetes' », a déclaré Olds. Quelle que soit l’infrastructure sous-jacente, « La mise en œuvre de nos microservices est plus rapide [with Dapr] — nous n’avons pas à nous soucier de toute la cérémonie qui accompagnait le cadre précédent. »
Beth Pariseau, rédactrice principale chez TechTarget, est une vétéran primée du journalisme informatique. Elle est joignable au [email protected] ou sur X — anciennement connu sous le nom de Twitter — @PariseauTT.
Ce site utilise des cookies pour améliorer votre expérience. Nous supposerons que cela vous convient, mais vous pouvez vous désinscrire si vous le souhaitez.
J'accepteLire la suite