MicroService et ServerLess

Présentation

Je reste dans les vieux buzzwords en regardant un peu du côté des MicroServices et ServerLess. A ce stade, j’ai un peu de mal à bien faire la différence entre les deux et à bien ce que cela représente…

Un peu de lecture

Comme d’habitude un peu de lecture :

Micro-Services

A ce stade, je vois les micro-services comme du SOA plus précis avec un découplage plus fort. J’aime assez une définition trouvé dans le premier lien d’Andrian Cockoft :

Loosely coupled service oriented architecture with bounded contexts.

Adrian Cockroft

En fait, d’un première abord, je pense que je me suis laissé abuser par micro : cela ne veut pas dire « une seule fonctionnalité ». En fait, l’idée est de regrouper / découper des éléments qui font sens ensemble.

A service may consist of multiple processes that will always be developed and deployed together, such as an application process and a database that’s only used by that service.

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

Deuxième erreur, le stockage des données … Je ne voyais pas comment cela pouvait fonctionner si deux « microservices » utilisent la même base : comment assurer la consistance des données ?

En fait, il semble que dans ce mode, on accepte cette inconsistance et les corrections qui vont avec. Mais encore une fois, tout est une question de coût :

The trade-off is worth it as long as the cost of fixing mistakes is less than the cost of lost business under greater consistency.

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

ServerLess

La lecture des articles permet de se donner une vision de cette notion. Spécialement celui-ci :
https://martinfowler.com/articles/serverless.html

Par contre, il est difficile de donner une définition car c’est à la fois peu de choses et beaucoup de choses.

Donc ma vision (toute relative et basée sur quelques heures de lecture) …

une architecture servless est une architecture basée sur des composants Faas (Function as a service) ou Baas (BackEnd as a service). L’idée est de composée notre architecture avec des composants existants et finalement de déléguer l’infra à à des fournisseurs de services.

C’est d’ailleurs assez intéressant de voir que tous les articles prennent en exemple les services d’Amazon et dans une moindre mesure Azure …