Sélectionner une page

Microservices : libérez votre potentiel d’innovation

L’accélération des mutations de notre quotidien fait plus que jamais apparaître la nécessité de changer nos modes de travail. Qu’il s’agisse de surfer sur la dernière vague technologique, de rester compétitives ou simplement d’exister sur des marchés en perpétuels changements, les entreprises doivent continuer à introduire de nouveaux produits/services et à les faire évoluer, avec le souci d’offrir une excellente expérience client.

Du monolithe aux microservices


Une application monolithique est réalisée sur la base d’une technologie et centralise tous les besoins d’un projet. A mesure qu’elle évolue et se complexifie, soutenant la charge progressive demandée, l’application perd sa cohérence fonctionnelle. Elle répond donc mal aux besoins d’évolutivité (scalabilité verticale) et les ajouts successifs de fonctionnalités hétérogènes renforcent l’aversion aux risques. Un facteur de stress naît, les mises en production sont moins fréquentes. Naturellement, l’idée d’effectuer une modification du code commun qui pourrait déstabiliser l’ensemble ou partie de l’application inhibe l’expérimentation et nuit à la mise en œuvre de nouvelles idées.

Malgré les bonnes pratiques mises en place par les équipes de développement, il devient difficile de réaliser des tests unitaires, les études d’impacts apparaissent plus complexes à mettre en œuvre et le ré-usinage du code s’avère coûteux suivant le périmètre du projet. C’est un cercle vicieux, aux antipodes de l’agilité, qui s’aggrave avec le temps, on parle de dette technique.

A l’inverse, l’architecture microservices s’intègre dans une démarche agile. Mais d’abord, un petit rappel des courants agiles pour mieux comprendre.

Les évolutions du développement agile


Chaque évolution a permis de supprimer des bloqueurs spécifiques aux projets de développement logiciel :

  • Issue de l’Extreme Programming, l’intégration continue qui vise à combiner toutes les composantes logicielles au plus tôt dans un projet, a ainsi permis de détecter les problèmes d’intégration en amont. Les risques liés à la qualité du projet ont été réduits et la confiance envers le produit fini a été renforcée.
  • Dans une même logique d’optimisation, la livraison continue consiste à produire en cycles courts. L’objectif est de construire, de tester et de diffuser un logiciel plus rapidement et avec plus de transparence pour l’utilisateur final. L’approche aide à réduire le temps d’évaluation des risques, et les risques associés à la livraison de changements en adoptant une démarche plus incrémentielle des modifications en production.
  • L’approche DevOps intègre les concepts précédents et dépasse le clivage développeurs/opérations en encourageant les programmeurs à tenir compte d’une perspective opérationnelle dans la conception de leurs solutions et en invitant les opérations à promouvoir une approche plus scientifique aux problèmes.

Derniers nés : les microservices


Les microservices vont agir comme un tout dissocié en plusieurs processus indépendants, faiblement couplés et le plus souvent dédiés à l’exécution d’une seule tâche. L’architecture Microservices a été pensée pour répondre spécifiquement aux problèmes d’évolutivité, son but premier étant de redonner un maximum d’agilité à une application.

Par exemple, les bases de données de chaque service sont séparées ce qui diminue la charge sur un même serveur et confère beaucoup d’agilité dans la gestion des données.

Avec les microservices, il n’est plus nécessaire de faire des choix technologiques lourds en début de projet. En effet, plusieurs langages de programmation peuvent être utilisés pour créer les différents services (qui communiquent ensuite au moyen d’APIs). Cela permet aux microservices de se doter des meilleurs atouts technologiques pour exécuter leur mission du mieux possible.

Cette souplesse autorise les erreurs dans les orientations technologiques et les essais. Chaque erreur n’implique plus d’importantes conséquences financières, ni l’accumulation de la dette technique mais la simple réécriture d’un microservice en 1 ou 2 sprints sans coût excessif. L’avantage est de pouvoir expérimenter plusieurs versions d’un même module et de déterminer la meilleure.

L’approche microservices permet également de paralléliser la livraison des évolutions passant d’un seul pipeline et d’une livraison lente à de multiples pipelines en cycles courts. Les microservices facilitent la montée en charges des applications et réduisent le time-to-market, délai qui s’écoule entre l’idéalisation d’un produit ou service et sa mise à disposition des utilisateurs finaux.

« Pour avoir une super idée, aie beaucoup d’idées. » T. Edison

 
Libérer son potentiel d’innovation pour satisfaire ses clients requiert de développer une capacité d’itération suffisante pour expérimenter et proposer la meilleure solution. L’agilité dans le développement logiciel encourage les bonnes pratiques et endigue les bloqueurs d’activités, car si tous les projets sont faits de jalons, ils sont aussi jalonnés d’écueils.

Précédent

Suivant

Share This

Vous avez aimé ce contenu ?

Partagez-le à votre réseau

Astek Mag Footer