L’usage des µservices (lire « Micro Services ») constitue une étape majeure dans l’informatique. Elle impacte tant l’urbanisme que l’architecture, l’ingénierie logicielle, la gestion de projets/de portefeuille ou encore la gouvernance des organisations qui suivent cette direction stratégique.

[Pour plus d’information ou échanger au sujet des µservices, contacter: emile.thevenin@consultis.biz.]

« Un petit peu d’histoire »:

Le perceptron de Rosenblatt remonte à 1957. Il s’agit du premier modèle de neurone artificiel (ou architecture neuronale) porté par le langage de programmation purement fonctionnel LISP des laboratoires de l’Institut de technologie du Massachusetts (MIT). On parle alors de systèmes experts et de logique floue (fuzzi logic), essentiellement utilisés en médecine et en finance. Concomitant à cette évolution :

  • d’une part, les supercalculateurs apparaissent à la fin des années 1950. Le dernier en date est le SUMMIT d’IBM, composé de 4.608 serveurs d’une puissance théorique de 200 pétaFlops.
  • d’autre part, les technologies de virtualisation des années 60’s adviennent, avec leur hyperviseur à des fins de réduction des coûts. Tout ceci est mis en interaction par le réseau internet, le web puis le cloud (depuis 1990).

Au travers des systèmes distribués (calcul distribué et clusters de calcul), des projets concrets fleurissent tels que SETI, pour l’analyse de l’ADN ou la recherche extra-terrestre. Ainsi au fil des usages, la puissance de calcul a migré du supercalculateur vers les 3 milliards de téléphones mobiles pour autant de consommateurs dont l’usage croissant est tout aussi motivé par la production croissante de données (infobésité).

En tant qu’activité de support, l’IT est au pas et doit se réinventer. Ceci bouleverse inéluctablement la gouvernance, le modèle économique, les chaînes de valeur et de production des organisations. C’est sans doute là que chacun trouve l’essence de la disruption : l’obsolescence des applications monolithiques au profit des µservices.

Principes généraux des µservices:

Les µservices sont des processus indépendants communiquant sur un réseau, conçus pour fournir des interfaces à granularité atomique de petite taille, développés de manière à s’exécuter de façon autonome et déployables indépendamment, à l’infini.

  • Points de terminaison intelligents et tuyaux en support uniquement ;
  • Organisés autour de capacités métiers produits ;
  • Gouvernance décentralisée ;
  • Gestion décentralisée des données ;
  • Automatisation de l’infrastructure par containers (dockers) ;
  • Conception en cas d’échec ;
  • Conception évolutive indépendante et maintenabilité optimales réduisant le time-to-market ;
  • Haute disponibilité et support de la montée en charge automatique (« scalabilité »).

Evolution de l’ingénierie logicielle:

Le principe fondamental sur l’interface client (front-end) devient un puzzle de modèles dont chaque pièce est un appel à un µservice. Le programmeur ne sait pas vraiment ce qu’il va recevoir, car en règle générale la réponse est une représentation des données (REST) ainsi qu’une liste d’URL. Le dossier d’analyse fonctionnelle générale se résume à « Afficher de façon jolie et web-responsive ce que les µservices vous retournent ».

Le code source des µservices est par essence contraint d’évoluer sans cesse, aussi le dossier d’analyse fonctionnelle détaillée versionné est déjà obsolète.

La frénésie de déploiement des µservices remet en cause le processus de mise en production avec tests et non-régression, go ou nogo, l’intégration continue s’adapte également.

Evolution de l’architecture:

Considérez l’usage de gros serveurs robustes comme caduque. Des serveurs plus modestes, même techniquement plus fragiles supportent les µservices. Eventuellement, souscrivez un contrat de location dynamique dans un datacenter. En effet, la clef de voûte de votre infrastructure « Cloud Design » ou « Cloud Native » est l’usage des IAAS CAAS et PAAS. Notez que le cloud n’est pas forcément un artefact hybride hors de contrôle, chacun peut avoir son cloud dit « privé » dans son bureau et dédié à ses propres besoins.

Le deuxième pilier est lié aux containeurs, à savoir des récipiendaires pour chacun de vos µservices. Ces containers se montent rapidement, s’activent, s’exécutent et meurent perpétuellement en toute transparence.

Enfin le 3ème  pilier est une collection de dictionnaires décrivant chaque µservice ainsi que leurs liens et les autorisations d’usage.

De la satisfaction client à la satisfaction produit:

Le centre de gravité de l’organisation se déplace vers le produit, la responsabilité du métier n’est plus transférée à l’informatique qui reprend sa place de support. Le service informatique se focalise sur son activité historique : Data, Sécurité et Infrastructure.

L’économie de l’usage prend alors une dimension compatible avec les µservices, en considérant la chaîne de valeur par un processus d’enrichissement continue de valeur à l’instar de l’amélioration continue. En effet l’essence même du µservices est d’enrichir les réponses avec des URLS de services complémentaires, alternatifs voir connexes.

On commence alors à adapter ITIL afin de faire évoluer le catalogue des bonnes pratiques, des normes ISO (27x) voire même des techniques de contrôles internes, d’audits, d’investigation en cas de bug ou de baisse de performances, de TOGAF et de COBIT. La sécurité ainsi que les plans de continuité et de reprise infromatique sont également a adapter.

 

Evolution de la gestion de projets, portfolio et des budgets:

Dans cette vision de constellation de µservices, la notion même de gestion de projets est à repenser. La coordination des équipes est centrée autour du product owner et AGILE devient SQUAD. Le chef de projets doit alors se remettre en question.

Dans une approche traditionnelle, nous avions un budget (délais, argent et nombre de jours homme) correspondant aux besoins. Nous suivions les projets dans un portfolio, avec du reste à faire, reste à consommer. Le modèle des µservices est plus une succession de paris avec des enveloppes plus modestes. Ainsi en cas d’absence d’appétence par l’usager, la perte reste minime.

Evolution de la mission du manager:

Le décloisonnement des départements de l’entreprise prend un sens concret dans une vision orientée produit. L’informatique revenant à son activité de support, on comprend l’intérêt du product manager programmant les µservices. Nous pourrions imaginer un mécanisme poussé par un BRMS.

C’est sans doute là que se situe les fondements de l’agilité, car ce choix stratégique va de pair avec un profond besoin d’accompagnement au changement.

Modèle économique:

Une application monolithique destinée aux salariés se mue en µservices destinés à des utilisateurs ou plutôt des consommateurs de données. A usage interne d’une organisation, un salarié devient donc un consommateur et l’usage des µservices devient une succession d’expériences.

Pour conclure:

Dans  nos écosystèmes actuels, le modèle de production/consommation de données personnelles ne fait qu’appuyer la valeur ajoutée des µservices. Ses conséquences sur la bande passante du réseau physique motivent le déploiement de réseaux alternatifs comme les galaxies de satellites, voire la 5G. Ainsi les µservices ont du sens dans une vision opendata, Datamining, IoT et surtout pour le e-commerce.

En reprenant SWOT, une organisation verra sa force orientée produit et des opportunités orientées smartphone le tout dans un équilibre orienté branding !

___________________________________________________________________________________________________________

Liste des abréviations:

  • LISP : Locator/Identifier Separation Protocol
  • IAAS, PAAS, CAAS , DAAS : L’IaaS est l’une des quatre principales catégories de services Cloud Computing, au même titre que le Software as a Service (SaaS), le Desktop as a Service (DaaS), et la Platform as a Service (PaaS)
  • Le CaaS (Containers-as-a-Service) est un modèle de services de cloud computing qui permet aux utilisateurs de déployer et gérer des applications
  • URL: Uniform Resource Locator
  • REST: Representational state transfer
  • ITIL : Information Technology Infrastructure Library
  • TOGAF : Open Group Architecture Framework
  • COBIT :  Control Objectives for Information and related Technology
  • BRMS : Business Rule Management System : Système de gestion de règles métier

Leave a Reply