Poursuivant son adhésion à l'open source, Microsoft a annoncé la création de deux nouveaux projets open source. Le premier est Open Application Model (OAM), un nouveau standard pour le développement et l'exploitation d'applications sur Kubernetes et d'autres plateformes. Le second projet est Dapr (Distributed Application Runtime), conçu pour faciliter la création de microservice d'applications.
Open Application Model
Kubernetes est devenu le principal environnement d’orchestration de conteneurs. Son succès a entraîné la croissance remarquable des services Kubernetes sur tous les clouds publics. Cependant, les ressources de base de Kubernetes telles que Services et Déploiements représentent des éléments disparates d’une application globale. Ils ne représentent pas l'application elle-même. De même, des objets tels que les graphiques de Helm représentent une application potentiellement déployable, mais une fois déployée, il n’existe aucun modèle centré sur l'application en cours. C’est pourquoi Microsoft et Alibaba Cloud ont créé le projet Open Application Model (OAM) sous Open Web Foundation.
OAM est une spécification permettant de décrire les applications afin que la description de l'application soit séparée des détails de la manière dont l'application est déployée et gérée par l'infrastructure. Cette séparation des préoccupations est utile pour plusieurs raisons. Dans le monde réel, chaque cluster Kubernetes est différent, de l'entrée au CNI (Container Network Interface) au maillage de service. En séparant la définition d'application des détails opérationnels du cluster, les développeurs d'applications peuvent se concentrer sur les éléments clés de leur application plutôt que sur les détails opérationnels de leur déploiement. En outre, la séparation des préoccupations permet également aux architectes de plateformes de développer des composants réutilisables et aux développeurs d'applications de se concentrer sur l'intégration de ces composants à leur code afin de créer rapidement et facilement des applications fiables. Dans tout cela, l'objectif d'Open Application Model est de rendre les applications simples faciles et les applications complexes gérables.
En OAM, une application est constituée de plusieurs concepts. Le premier est les composants qui constituent une application. Ces composants peuvent être des services tels qu'une base de données MySQL ou un serveur PHP répliqué avec un équilibreur de charge correspondant. Les développeurs peuvent créer du code qu'ils empaquettent en tant que composant, puis des manifestes d'auteur décrivant les relations entre ce composant et d'autres microservices. Les composants permettent aux architectes de plateformes et à d’autres de créer des modules réutilisables qui sont connus pour encapsuler les meilleures pratiques en matière de sécurité et de déploiement évolutif. Ils permettent également de séparer la mise en œuvre du composant de la description de la manière dont ces composants sont combinés dans une architecture d'application distribuée complète.
Pour transformer ces composants en une application concrète, les opérateurs d'application utilisent une configuration de ces composants pour former une instance spécifique d'une application à déployer. La ressource de configuration est ce qui permet à un opérateur d’application d’exécuter une application réelle à partir des composants fournis par les développeurs et les plateformes.
Concept final
Le concept final est un ensemble de Traits (caractéristiques) décrivant les caractéristiques de l'environnement d'application, y compris des fonctionnalités telles que la mise à l'échelle automatique et l'entrée qui sont importantes pour le fonctionnement des applications, mais qui peuvent être implémentées de différentes manières dans différents environnements. Un exemple simple de telles différences pourrait être un équilibreur de charge hyperscale fourni par le cloud par rapport à un équilibreur de charge matérielle sur site. Du point de vue du développeur d’applications, ils sont totalement identiques, alors que du point de vue de l’opérateur, ils sont complètement différents. Les Traits permettent cette séparation des problèmes, de sorte que l'application peut s'exécuter partout où ses caractéristiques nécessaires sont déployées. Ces Traits peuvent ensuite être configurés par les opérateurs d’infrastructure pour répondre aux exigences de fonctionnement uniques de leur environnement (conformité et sécurité, par exemple).
Contrairement à un modèle d'application PaaS plus traditionnel, l'OAM présente des caractéristiques uniques. Plus important encore, il est agnostique de plateforme. Microsoft note que bien que son initiale d'OAM, nommée Rudr, repose sur Kubernetes, OAM lui-même n'est pas étroitement lié à Kubernetes. Il est possible de développer des implémentations pour de nombreux autres environnements, y compris pour des formats relatifs à de petits périphériques, où Kubernetes peut ne pas être le bon choix. Il faut également penser à des environnements sans serveur où les utilisateurs ne veulent pas ou n'ont pas besoin de la complexité de Kubernetes.
Tout aussi importante, la spécification est extensible par conception - plutôt que le jardin muré d’un PaaS, ou un environnement d’application qui cache les caractéristiques uniques de son emplacement. De même, OAM permet aux fournisseurs de plateforme d'exposer les caractéristiques uniques de leur plateforme via le système de Traits de manière à permettre aux développeurs d'applications de créer des applications multiplateformes lorsque les Traits nécessaires sont pris en charge. Les fournisseurs de matériel peuvent également exposer les caractéristiques uniques de leurs plateformes matérielles via des Traits. OAM est conçu pour rendre la portabilité possible tout en garantissant que chaque plateforme peut toujours présenter les fonctionnalités qui les rendent uniques et utiles. L'OAM offre aux développeurs la liberté d'établir un équilibre entre la portabilité et les capacités entre plateformes de manière standard.
Distributed Application Runtime (version alpha)
Il est remarquable de constater la transformation de ces dernières années, alors que de plus en plus de développeurs mettent sur pied des applications cloud évolutives et natives, tirant parti des services gérés pour les déployer et les exécuter. Avec cette transformation, les architectures de microservices sont devenues la norme pour la création d’applications natives cloud et il est prévu que d’ici 2022, 90 % des nouvelles applications seront dotées d’architectures de microservices. Une architecture de microservice offre des avantages intéressants, notamment en termes d’évolutivité, de couplage de services souple et de déploiements indépendants. Toutefois, cette approche peut être très coûteuse en compréhension et en compétences sur des systèmes distribués.
Les développeurs souhaitent se concentrer sur la logique métier, en effectuant une migration fréquente et incrémentielle du code hérité, tout en s'appuyant sur les plateformes pour fournir à leurs applications l'échelle, la résilience, la maintenabilité, l'élasticité et les autres attributs des architectures natives cloud. Les développeurs constatent cependant une portabilité limitée entre le cloud et la périphérie et qu'ils doivent toujours finir par résoudre les mêmes problèmes de système distribué, tels que la gestion des états, l'appel de méthodes résilientes et la gestion d'événements. En outre, de nombreuses runtime de programmation ont souvent une prise en charge limitée de langage et des ensembles de fonctionnalités étroitement contrôlés, ce qui rend difficile la création d'architectures de microservices.
Pour permettre à tous les développeurs de n’importe quel langage ou framework de créer facilement des microservices portables d'applications, qu’il s’agisse d’écrire du nouveau code ou de migrer du code existant, Microsoft a annoncé Dapr.
Applications
Par exemple, lors de la création d'une application de commerce électronique comprenant plusieurs services, vous pouvez utiliser un acteur avec état pour représenter le service de panier et appeler des fonctions sans état pour les services de paiement et de livraison. L'écriture de cette application peut impliquer l'utilisation de plusieurs langages, d'infrastructures de développement et de plateformes d'infrastructure, ainsi que l'intégration à des services externes. Comprendre et gérer une pile technique aussi complexe empêche les développeurs de créer de la valeur métier.
Dapr: modules de base de Microservice pour le cloud et en local
Dapr est un runtime open source, portable et pilotée par les événements qui permet aux développeurs de créer facilement des applications résilientes, statiques et sans état de microservices, exécutées dans le cloud et en local. Microsoft note que Dapr englobe la diversité de tous les langages de programmation et de tous les framework de développement et simplifie la création d'applications telles que l'exemple du commerce électronique.
Dapr consiste en un ensemble de blocs de construction accessibles par des API HTTP ou gRPC standard pouvant être appelées à partir de n'importe quel langage de programmation. Selon Microsoft, ces blocs de construction donnent à tous les développeurs des meilleures pratiques éprouvées dans le secteur et chaque bloc de construction est indépendant. Vous pouvez en utiliser un, certains ou tous dans vos applications. En outre, via le projet open source, l'éditeur invite la communauté à ajouter de nouveaux blocs de construction et à ajouter de nouveaux composants aux composants existants. Dapr est totalement indépendant de la plateforme, ce qui signifie que vous pouvez exécuter vos applications localement, sur n’importe quel cluster Kubernetes et dans d’autres environnements d’hébergement avec lesquels Dapr s’intègre. Cela permet aux développeurs de créer des microservices d'applications pouvant s'exécuter à la fois sur le cloud et en local sans modification du code.
Source : OAM, Dapr
Et vous ?
Que pensez-vous de ces projets ?
Voir aussi :
Microsoft annonce que .Net Core 3.0 met un terme au projet de portage de l'API .Net Framework sur la plateforme de développement open source et multiplateforme
Gatsby lève 15 millions de dollars pour sa plateforme moderne et open source de développement web, pour aider les développeurs à créer de meilleurs sites plus rapidement
Cameyo lance RDP Port Shield pour prévenir les attaques par force brute et les rançongiciels, ainsi que RDPmom, un outil gratuit et open source pour la surveillance des serveurs
CUE, un langage open source pour définir, générer et valider des données avec un ensemble d'API et d'outils, pourra-t-il concurrencer Jsonnet ?
Microsoft lance en open source OAM, pour simplifier le développement et l'exploitation d'applications sur Kubernetes,
Et Dapr, pour faciliter la création de microservices d'applications
Microsoft lance en open source OAM, pour simplifier le développement et l'exploitation d'applications sur Kubernetes,
Et Dapr, pour faciliter la création de microservices d'applications
Le , par Stéphane le calme
Une erreur dans cette actualité ? Signalez-nous-la !