Des entreprises comme Airbnb, Amazon, Disney, Dropbox, GE, Goldman Sachs, Google, HP, Microsoft, Netfix ou Twitter on mesuré des gains de temps de développement de l'ordre de 75 % (!) directement liés à l'utilisation des microservices. L'histoire de l'informatique d'entreprise a débuté avec le mainframe et les applications monolithiques. Puis les informaticiens ont commencé à découper infrastructure et applications en couches de plus en plus fines. Chaque nouvelle couche d'abstraction et de standardisation apporte de la valeur et de l'efficacité. Aujourd'hui, avec la virtualisation, le cloud, les containers, les API, de plus en plus d'organisations se tournent vers une nouvelle couche d'abstraction dans le développement des applications, les microservices, et son corolaire, l'intégration continue.

Les microservices, c'est quoi ?

Les microservices sont une nouvelle approche de la construction des logiciels, qui s'écarte de la conception de grosses applications monolithiques pour les découper et se tourner vers des solutions qui reposent sur la composition et le couplage de pièces autonomes. Les bénéfices de cette abstraction du logiciel sont une spécialisation des équipes de développement, plus d'agilité et de qualité, et une réduction des coûts de développement. Pour aller plus loin sur les microservices, nous vous proposons 10 best practices recueillies lors du Microservices Summit animé par Sequoia :

1 - Avez-vous vraiment besoin des microservices ?

Certaines applications sont si complexes que rien ne justifie de les casser en microservices, ce qui ne peut qu'entraver l'efficacité des équipes de développement ou imposer de recruter plus que de raison.

2 - Mettez de l'ordre dans la maison

L'intégration continue et l'automatisation sont plus importants que les microservcies. Qui nécessitent de faire appel pour démarrer à des petites équipes agiles en mesure d'automatiser les systèmes et de mettre le code à jour.

3 - Recrutez des maîtres artisans

Il est essentiel d'avoir une personne ou une petite équipe qui comprend l'assemblage des microservices, guide la création des nouveaux services, est chargée de contrôler les décisions d'architecture et d'aider à assurer l'adoption des normes.

4 - Cartographiez services et processus business

L'absence d'un mapping des services rend plus difficile le dépannage et les opération de ré-architecturage.

5 - Observez le monolithe

Démarrez tout projet comme s'il s'agissait d'un monolithe, observez son utilisation, et ne commencez à le décomposer que quand vous aurez appréhendé la meilleure façon de le diviser. Tâtonner sur le dimensionnement des services est une épreuve normale.

6 - Pratiquez un découpage incrémentiel

Choisissez et découpez un morceau du monolithe à la fois. Et surtout ne le jetez pas ! Vouloir trop en faire, c'est la perte de fonctionnalités assurée.

7 - Partagez le référentiel

Pour accompagner le développement et limiter le risque de se retrouver avec plusieurs versions actives d'un même service, créez un grand référentiel partagé, qui sera géré par vos maîtres artisans.

8 - Surveillez au plus large

Le paysage des microservices est multiple et fragmenté. L'effort de surveillance doit être à l'image de l'ampleur de la découpe du monolithe.

9 - Améliorez la sécurité et la gouvernance

L'augmentation de la surface et de la complexité nécessite d'augmenter la sécurité et la gouvernance, d'authentifier, d'identifier et de mesurer le trafic, de s'interroger sur l'usage des services, sur la gestion et la facturation.

10 - Démontrez vos résultats et appelez les récompenses

Un projet de microservices réussi apporte de l'agilité et augmente la vitesse de création et de déploiement des logiciels, réduit les coûts de création, de livraison et de déploiement, et augmente la résilience. Source : TechCrunch 2016