Les micro-services expliqués grâce à une 🍕.

La fabrication de pizza et ses variantes permettent d’expliquer à quelles problématiques les micro-services répondent.

  • En pensant à un microscope, avez-vous déjà entendu le mot “micro-services” ?
  • À quoi pourraient-ils bien servir ?
  • Vous êtes curieux et aimez les pizzas ?

Si vous avez répondu oui à au moins l’une de ces questions, alors vous êtes au bon endroit !

Le contexte :

Mettons-nous dans la situation d’un gérant d’une petite pizzeria. Pour l’instant, un seul pizzaïolo s’occupe de faire les pizzas. Il maîtrise tous les aspects de la préparation, c’est-à-dire qu’il s’occupe :

  • De la pâte
  • De la sauce
  • Des ingrédients
  • Du fromage
  • De la cuisson

Bref, c’est un super pizzaïolo, les pizzas sont bonnes et les clients sont satisfaits.

Petit à petit, votre clientèle augmente. Il y a de plus en plus de demandes, ce qui vous décide à recruter un deuxième pizzaïolo. Pour qu’il soit opérationnel, vous lui apprenez les 5 aspects de la préparation d’une pizza. Il saura lui aussi les faire du début jusqu’à la fin.

Le problème :

Imaginez maintenant que la pizzeria grossisse de façon importante et que le nombre de pizzaïolos passe à 10. Ils doivent tous maîtriser les subtilités de chacune des pizzas. L’apprentissage vous a coûté une belle somme, mais cela reste rentable sur le long terme.

Vos clients demandent une nouvelle étape à vos pizzas : une pâte fourrée au fromage. Cette technique est assez complexe à apprendre et vous n’êtes pas sûr que tout le monde en commandera. Cependant, avec l’organisation actuelle, vous êtes obligé d’apprendre à vos 10 pizzaïolos cette technique. Mais malheureusement, former vos 10 salariés sur la technique de la pâte fourrée ne sera pas rentable par rapport à leurs ventes. Oui, les clients sont exigeants, mais ils sont aussi vos meilleurs vendeurs.

La solution :

On se rend bien compte que la répartition des tâches n’est plus tenable. Avec la taille actuelle de la pizzeria il devient plus efficace qu’un pizzaïolo se concentre sur une tâche précise du processus de préparation. Comme ça, si une nouvelle recette de pâte à pizza fait son arrivée, seul les pizzaïolos s’occupant de la pâte devront l’apprendre. Par exemple, il sera inutile de former celui qui met des rondelles d’ananas sur les pizzas hawaïennes. Pour que toutes les étapes soient bien respectées, un nouveau poste sera créé, celui de chef de cuisine. C’est lui qui sera en charge de manager tout le processus de préparation. Il ira voir les différents pizzaïolos et leur demandera d’ajouter leurs étapes à la pizza. Le chef de cuisine est celui qui est le plus expérimenté côté métier. Pour schématiser, on peut faire la répartition de postes comme ceci :

  • Pâte : 3 personnes
  • Sauce : 2 personnes
  • Ingrédient : 1 personne
  • Fromage : 1 personne
  • Cuisson : 2 personnes 
  • Chef de cuisine : 1 personne

Chaque tâche à son niveau de complexité et de charge de travail. Avec cette organisation, les 3 pizzaïolos spécialistes de la pâte, pourront apprendre la technique de la pâte fourrée, sans se soucier de savoir si des ananas vont se retrouver sur la pizza. Ce n’est plus leur responsabilité. Une fois la pâte prête, les pizzaïolos la renvoient au chef, qui la passera à son tour au saucier. Pour la pâte fourrée au fromage, il est possible que les experts en pâte communiquent directement avec les fromagers, sans déranger le chef de cuisine.

La résolution :

Cet exemple représente les problématiques auxquelles répond l’architecture en micro-services. Nous allons maintenant, changer les pizzaïolos en services. Chaque service a son domaine de compétence. Il est indépendant par rapport aux autres services, et communique avec les autres pour répondre à une demande. Si on extrapole ce problème aux développements informatiques, on voit à quel point, il est important de segmenter les tâches de son application. Le rôle de chef de cuisine est ici pour illustrer toutes les demandes faites par l’application cliente. Elle se repose sur des micro-services qui répondront à ses requêtes. L’application répond à un besoin métier précis.

Apprendre de nouvelles techniques, représente le fait que les services vont évoluer indépendamment les uns des autres. La maintenance est coûteuse en informatique, il faut donc la minimiser au maximum. Lorsqu’une évolution arrive au micro-service, toutes les applications clientes en profitent.

En conclusion :

L’exemple de la pizzeria permet d’expliquer simplement à quoi l’architecture micro-services répond. Ils permettent de structurer le périmètre métier de chaque service. Si au départ, l’architecture micro-services peut être inutile pour une PME ou une start-up, elle peut rapidement devenir la meilleure solution pour une évolutivité importante. Après les premières mise en production, ils permettent aux applications une modulabilité et d’être Agiles en quelques sortes. Ce n’est pas pour rien que Google, Amazon, Microsoft Azure, Netflix et bien d’autres utilisent cette architecture.

Si vous souhaitez en apprendre plus sur le sujet, je vous recommande chaudement le blog de Martin Fowler. Il a coécrit le Manifeste : ” For Agile Software Development “. Rien que ça !

Ps : les pizzas hawaïennes sont le mal.

Sources :

https://martinfowler.com/articles/microservices.html

https://azure.microsoft.com/fr-fr/solutions/microservice-applications/

https://en.wikipedia.org/wiki/Microservices

https://aws.amazon.com/fr/microservices/

5 1 voter
Évaluation de l'article
S’abonner
Notifier de
guest

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

0 Commentaires
Inline Feedbacks
View all comments

Site Footer

0
Would love your thoughts, please comment.x
()
x