Microservices : Etes-vous prêt à relever le défi ?

© Martin Fowler

Durant les dernières décennies, plusieurs nouvelles méthodologies et architectures ont été introduites dans l’industrie logicielle, toutes avec la promesse de rendre les entreprises plus productives, agiles, flexibles et  capables de répondre plus efficacement aux changements imposés par le marché et les réglementations. Ainsi on a vu les services Web, SOA, les architectures basées sur les composants, les ESB, et j’en passe.

Aujourd'hui c'est au tour des microservices.

La mise en œuvre d’une architecture en microservices se heurte à plusieurs problématiques organisationnelles, conceptuelles et techniques. Je me contenterai dans cet article de citer un exemple de chaque type :

Trees : application d’analyse de cycle de vie participative (Part 1/2)

Pour ce sprint "seed", il s'agit de pouvoir présenter et décrire un produit fini en fonction de ses constituants, puis de considérer récursivement les constituants comme des produits. Objectif : décrire tout produit fini comme une arborescence vers ses matières premières les plus élémentaires. Cette analyse, dite analyse par attributs, est utilisée particulièrement dans le domaine de l'éco-conception. La stack est composée des trois éléments principaux suivants : Neo4j, Spring Boot et React.

L’alerting dans Grafana

En plus de sa fonction première qui est la création de dashboards, Grafana depuis sa version 4.0, ajoute une corde à son arc avec une fonctionnalité d'alerting . Pour rappel, Grafana est une solution Open Source de dashboards avec l'agencement de widget via une interface Web. Grafana est souvent résumé à une interface Web pour Graphite, (solution de stockage time serie), ce qui est assez rédhibitoire  étant donnée le nombre de sources de données qui peuvent être utilisées en entrées des dashboards : 25 au moment de l'écriture de cet article, certaines native à la solution (Graphite, Elasticsearch, InfluxDB, MySQL très prochainement, ...) et d'autres issues de la communauté open source et directement intégrables via la CLI de Grafana (Google Calendar, Open NMS, Cloudera Manager...).

PHPTour 2017 : TaguaVM

Au cours du PHPTour 2017, Ivan Enderlin nous a présenté un projet sur lequel il travaille en collaboration avec Julien Bianchi et Sébastien Houzé depuis février 2016 : TaguaVM, une machine virtuelle expérimentale pour le PHP.

Quoi de mieux que ses propres mots pour présenter l'outil :

L'objectif du projet Tagua VM est de fournir une VM PHP qui garantie un haut niveau de sûreté et de qualité en supprimant des larges classes de vulnérabilités, grâce à des outils appropriés comme Rust et LLVM.
Rust est un langage remarquable qui apporte des garanties fortes à propos de la sûreté de la mémoire. C'est aussi un langage très rapide qui rivalise avec C.
LLVM est une infrastructure de compilateur célèbre qui apporte de la modernité, des algorithmes à la pointe, des performances, une suite d'outils pour développeur etc.
Ce projet va résoudre trois problèmes en une fois :

    1. Fournir un niveau haut niveau de sûreté et de qualité en supprimant des larges classes de vulnérabilité, et ainsi éviter des coûts de bugs dramatiques ;
    2. Fournir de la modernité, une nouvelle expérience développeur et des algorithmes à la pointe de la recherche, donc des performances ;
    3. Fournir un ensemble de bibliothèques qui vont composer la VM et qui pourront être réutilisées en dehors du projet (comme le parseur, les analyseurs, les extensions etc.).

Go… Perf !

Pourquoi s’intéresser à Go ? Parce qu’à Go sont associés les mots suivant : simplicité, rapidité, concurrence, microservice et surtout parce que Docker est écrit en Go. Go est fait pour la partie serveur, c’est un concurrent direct de Node.js.

Quelles sont les qualités d’une nouvelle plateforme de développement côté « serveur » ? Revenir à la simplicité, mettre en œuvre les principes de séparation d’intention et de cohérence forte. Simplicité pour le développeur, mais aussi un cycle de vie efficace de la conception, en passant par le développement, par les tests, par l’intégration et enfin par la mise en production.

SOA is dead long live Microservices

A n’en pas douter, les architectures microservice sont la tendance hype du moment. Une nouvelle vague de patterns d’architecture vient donc en écraser une autre. Et bien pas si sûr ! Martin Fowler, auteur bien connu, a publié un article intitulé « Microservices ». Dans cet article nous pouvons lire « the microservice style is very similar to what some advocates of SOA have been in favor of ». Cette phrase prend tout son sens pour certains architectes. Parmi ceux-ci, il y a Anne Thomas Manes qui dans un post fameux du 5 janvier 2009, « SOA is dead ; Long Live Services », écrivait : « the word “SOA” is dead, the requirement for service-oriented architecture is stronger than ever… If you want spectacular gains, then you need to make a spectacular commitment to change ». Il semblerait que l’architecture à base de microservices vise à atteindre cet objectif !

Bus d’entreprise – Architecture de production

Un bus d’entreprise est maintenant un élément commun des systèmes d'information. Il permet de véhiculer les messages, les données et les commandes d'un système moderne. La conception et la réalisation de tels outils ne sont pas anodines et leurs indisponibilités ont un coût qu'il convient d'anticiper. Cet article liste les éléments clés à prendre en compte pour une exploitation sereine et maitrisée.

Client léger Web : attention aux dérives

Les applications Web, très largement utilisées chez les particuliers mais aussi en interne chez les entreprises, reposent sur l'utilisation de clients légers. Dans ce cas d'utilisation de clients légers Web, il convient de respecter certaines bonnes pratiques, sous réserve de rendre obèse son client. Si les applications mises à disposition des particuliers respectent généralement les bonnes pratiques du Web (sous peine de baisser son niveau concurrentiel), ce n'est pas toujours le cas des applications Web déployées en interne dans les entreprises.

Tour d'horizon de mauvaises pratiques constatées…