Un zeste de devops et un vortex de microservices dans les nuages

29 mars 2016 Posted by Articles 0 thoughts on “Un zeste de devops et un vortex de microservices dans les nuages”

Je suis très en retard pour ce second billet, environ d’une quinzaine de jours, autant dire une éternité dans le monde digital. Je dois préciser que le sujet choisi par ma cohorte marketing est plutôt rébarbatif et en pareil cas je procrastinise assez facilement devant l’écran blanc.

J’avais prévu de vous conter comment mon précédent billet avait initié une belle rencontre autour d’un mojito, et comment, revenant d’un voyage à dos de dragon à travers le cloud, nous avions évoqué avec mon interlocuteur toute la difficulté pour transformer une application monolithique pour le monde des nuages.

Commençons par démystifier mon propos. Le cloud, c’est simple comme un vortex de microservices avec un zeste de devops.

Où comment en quelques lignes j’arrive à placer les deux buzzword les plus excitants du moment.

Le devops c’est magique, vous appuyez sur un bouton et hop votre application est déployée automatiquement, sur un environnement tellement proche de votre environnement de production que la mise en production réelle devient enfantine. Et vous pouvez appuyer sur le bouton autant de fois que vous voulez dans la journée. Je vous laisse imaginer la promesse en gain de temps, de productivité et donc d’argent.

En pratique, le devops met en mouvement un ensemble d’opérations automatiques qui s’enchainent les unes les autres, tout en s’assurant à chaque étape que seule une application bien construite et fonctionnelle sera déployée sur l’environnement cible. Vous appuyez sur le bouton et après un certain temps vous savez si l’opération a réussi ou non.

Un certain temps doit vous rappeler une histoire de refroidissement de fût de canon et vous avez bien raison … car plus votre application devient imposante, et elle le devient à la faveur des évolutions fonctionnelles et de l’explosion de la dette technique, plus la promesse du devops devient illusoire … les temps de construction et de déploiement de l’application s’allongent avec l’inflation applicative, ainsi que votre réactivité à corriger les problèmes lorsque l’opération échoue, l’information d’échec arrivant après un certain temps …

C’est le moment propice pour introduire notre second buzzword du jour, le microservice.

Le principe du microservice est de découper finement une application monolithique en autant de grains que possible. La légende de notre monde veut d’ailleurs que chacun de ces grains ne réalise qu’une tâche mais la réalise à la perfection.

Pour construire une application, il suffit alors de réunir et de faire communiquer tous ces grains au travers d’interfaces parfaitement bien définies, les fameuses APIs.

La promesse du microservice est qu’il est possible de changer ou de remplacer un grain sans avoir à intervenir sur l’application entière. Chaque grain peut être implémenté avec l’équipe, la technologie et l’algorithme de son choix, sous réserve de respecter scrupuleusement les spécifications des interfaces. Une API ça se tient en grand honneur !

Cette promesse tombe vraiment à pic, un devops par microservice et hop j’appuie sur autant de boutons que nécessaires pour construire mon application, dans l’instant, et déployer chacun de mes microservices dans mes nuages. Et grâce au principe même du devops, les tests automatiques détecteront toute modification qui porterait préjudice au bon fonctionnement d’une API.

Une promesse ne venant jamais seule, je connais même une société incroyable qui réalise des opérations de reengineering d’architecture et de refactoring de code sur des applications monolithiques existantes pour extraire grains et interfaces à pousser dans les nuages.

A ce stade de mon apagogie, les promesses n’engageant que ceux qui y croient, il me semble important de vous parler du bât qui va blesser.

La réalité est que vous n’avez fait que déplacer la complexité de votre application monolithique vers le réseau, physique ou logique, qui supporte les échanges entre vos zillions d’APIs. Je me rappelle alors de mes cours sur les réseaux de Pétri colorés et je frémis. L’émergence d’une complexité induite par la dynamique des échanges entre microservices. Mais ce n’est pas tout.

Comme chaque microservice nécessite un environnement devops, vous venez de multiplier le nombre d’environnements, l’expertise nécessaire, le coût du maintien en condition opérationnelle.

Comme chaque API est un temple inviolable, pour assurer la stabilité de l’application, vous venez de complexifier les spécifications et les tests de chaque microservice.

Comme chaque API est un temple inviolable, vous venez de complexifier la gestion d’une évolution fonctionnelle majeure impactant plusieurs microservices et leurs interfaces, rendant indispensable mais ardu la synchronisation entre différents environnements devops.

Et comment fait-on pour faire évoluer une API censée être intemporelle ? et gérer les N versions d’une API ?

Où comment je viens de vous pointer que devops et microservices, c’est finalement plus de taf à tous les étages.

Je dois reconnaitre que certains d’entre vous sont plus malins et que vous savez que l’informatique n’est pas si binaire.

Que toutes les applications monolithiques ne peuvent pas être si facilement hachées menu.

Que le modèle applicatif est intimement lié à l’usine logicielle qui le supporte.

Que même dans ce nouveau monde digital, le déploiement peut être envisagé sur des cycles plus longs que la journée sans remettre en cause la pérennité économique de l’application.

Que même si vous avez succombé aux sirènes des nuages, il est possible de régler finement le curseur entre le tout monolithique et le tout microservices, entre le pas d’API et le trop d’APIs et choisir un modèle devops efficace.

Qu’il existe au moins une entreprise qui peut vous aider dans ce domaine.

Je finirais par un petit rappel à notre histoire commune … comme je le lisais déjà il y a plus de trente ans – et oui les sorcières ne sont plus toutes jeunes – lors de l’apparition des langages orientés objet … there is no silver bullet !

Si vous souhaitez approfondir ce sujet en particulier, ou d’autres, n’hésitez pas à me contacter directement, car j’adore licher des mojitos en after-work, surtout la variante dite des pieds au plafond.

Et comme un gentil admirateur s’est permis de me faire remarquer que j’avais une sacrée plume mais que je manquais cruellement de temps pour inonder la planète numérique de doux billets aptes à remplir mon pipe commercial, je cite de mémoire, j’ai prévu d’écrire une suite.

Cheers,

— Julie

Tags: , , ,