BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Micro-services ? Qu'en est-il des Nano-services ?

Micro-services ? Qu'en est-il des Nano-services ?

Favoris

Plus tôt cette année, nous avons publié un article sur la récente montée des discussions autour du terme Micro-services et si cela représente une nouvelle approche pour l'architecture, ou comme certains le suggèrent, tel que Steve Jones, que c’est tout simplement SOA sous un autre nom. Compte tenu des commentaires dans l'article, il semble que la majorité des lecteurs (ou la majorité de ceux qui ont commenté) pensent que les Micro-services seraient pareils à SOA et qu’un nouveau terme n'est probablement pas nécessaire. Suite à cet article, Steve en a publié un autre où il explique comment les Micro-services sont simplement de la livraison orientée services et que les tentatives de l'éloigner de SOA n'ont aucun sens :

[…] Les Micro-services posent de belles règles d'application de certaines parties de l'entreprise, mais ceux qui sont les plus honnêtes pensent que c’est un choix de mise en œuvre au sein d'une architecture orientée services plus large. Cela ne les dévalue d’aucune manière mais les place dans le bon contexte.

Arnon Rotem-Gal-Oz a également rejoint le débat :


Il pense aussi que les Micro-services, tels que définis par Fowler et James, ne sont rien d’autre que SOA, peut-être sans la partie de "fausse idée" qui suppose quelques SOA associées à une exigence accrue sur WS-* et ESB. Il demande précisément ce qu'est un Micro-service et cite James Hughes (le lien qu'il mentionne n'est pas valide au moment de l'édition) :

Tout d'abord, qu’est ce qu’en fait un micro-service ? Eh bien, il n'y a pas vraiment une définition solide et rapide, mais à partir de conversations avec diverses personnes, il semblerait y avoir un consensus sur un micro-service comme une simple application qui se trouve autour de la barre 10-100 LOC.

D’après Arnon, James admet plus tard dans le même article que les lignes de code présentent une très mauvaise façon pour comparer les implémentations de services (chose qu'a également écrit Jan dans son article sur l'utilisation étant plus importante que la taille), or Arnon veut se concentrer sur l'aspect de consensus auquel James se réfère :

Alors, comment pouvez-vous avoir 100 LOC de services ? Vous pouvez y parvenir si vous comptez sur les frameworks (comme Finagle ou Sinatra que James mentionne) qui génèrent la sérialisation/désérialisation du code (de protobuff, thrift, avro etc) - Il s'agit essentiellement de la construction sur un hôte service intelligent. Un autre exemple serait le développement en Erlang avec ses hiérarchies de superviseur, ce qui nous amène aussi à un autre moyen pour réduire les LOC via des langages moins verbeux (Erlang, Python ou Scala contrairement à Java par exemple).

Le point de vue d'Arnon est que les services avec 10 à 100 lignes sont susceptibles d'exposer des fonctions plutôt que d'être de « vrais services ». Il croit aussi que plus le service devient petit (vers ce qu'il appelle «les Nano services»), plus vous avez à vous soucier de frais de gestion, coûts de sérialisation/désérialisation, sécurité, etc... Essentiellement, plus ces services deviennent petits, plus cela requiert un effort pour les assembler dans un «tout» utile. Comme Arnon l’explique :

NanoService est un anti-modèle où un service est trop fin. Un NanoService est un service dont sa gestion (communications, maintenance, et ainsi de suite) dépasse son utilité.

Comme Steve et les autres, Arnon conclut que les Micro-services seraient juste un autre nom de SOA. Il est convaincu que quelques années auparavant, au début du buzz médiatique de SOA, un autre nom n'aurait pas été une si mauvaise chose, mais aujourd'hui, avec les concepts SOA assez bien établis et compris, un changement de nom n'est plus utile.

En outre, si nous voulons nommer SOA par un nouveau nom approprié, je pense que micro-services est un mauvais terme car il conduit vers une pente glissante en nano-services et 10 lignes de code qui sont juste votre vieille méthode de services-web exécutée avec élégance et fantaisie par un hôte en utilisant un format de sérialisation formidable.

Malgré le fait que beaucoup de gens seraient d’accord que le terme Micro-services n'est ni nouveau ni nécessaire, nous assistons à une augmentation des frameworks qui sont vendus grâce à leur capacité à soutenir les Micro-services. Donc, c'est peut-être un terme que l'industrie devra accepter, même si la majorité le comprenne comme étant un autre nom pour SOA ?

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT