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 :

Architecture en 3-POM avec Maven

maven-logo-black-on-white

Maven est un projet de la fondation Apache. Il s’agit d’un outil de gestion des dépendances et de cycles de vie d’un projet (du développement à la production du livrable). Il est principalement utilisé dans le cadre de développement des projets Java, mais peux être utilisé dans d’autres contextes.

Maven permet de découper un projet en plusieurs modules. Chaque module est un élément autonome qui a son propre cycle de vie. Maven utilise un réacteur pour orchestrer l’appel des différents modules en fonction de leurs dépendances.

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.

Robomongo, bon client MongoDB

Le shell de MongoDB est très utile pour l’administration d’une base ou pour en consulter le contenu mais je ne vous cache pas qu’à la longue, il finit par être très fastidieux pour une multitude de petits détails. Heureusement que de nombreux projets existent et permettent de remédier à ce manque. Un certain nombre d’entre eux sont listés sur le site de Mongo .

Parmi eux, il y’en a un qui me plaît particulièrement et normalement, vous avez déjà compris qu’il s’agit de Robomongo. Derrière ce nom qui ne casse pas 3 pattes à un canard, se cache un outil aussi facile à prendre en main que performant qui va vous permettre d’administrer au même endroit un nombre illimité de bases, de collections, de documents et de serveurs.

Positionnement de Vaadin parmi les frameworks de développement Web

Le choix d'un framework de développement pour ses applications Web est un exercice aujourd'hui ardu devant le nombre de candidats possibles, du moins si l'on n'a pas la chance de développer sous .Net 🙂 .

Parmi les frameworks de développement Web AJAX, Vaadin tient une place particulière en raison d’un choix d’architecture qui le place entre les frameworks Web traditionnels et les frameworks RIA.

La SOA = la mort de l’objet ?

SOA component UML schema

Cet article expose mes réflexions sur la relation entre les deux concepts logiciels clés qui sont la  SOA et l'orienté objet, et qui concernent à la fois les méthodes et l'architecture des systèmes. Il fait suite à une de ces phrases assassines entendues au cours d'une réunion de travail : "le SOA c'est la mort de l'objet". Afin de faire la part des choses, il convient de replacer les mots dans leur contexte et de préciser les différents points de vue selon lesquels cette opinion peut être considérée...

Architecture DDDD N-Layered (Distributed Domain Driven Design) et .NET

Régulièrement, l'équipe des architectes Microsoft met à jour un excellent document d'architecture pour les très gros projets. Cet article a pour but de présenter en synthèse cette architecture, particulièrement bien découpée.

Besoins en architecture

Il existe une grosse demande pour faire correspondre les patterns d’architectures avec les toutes dernières technologies Microsoft.
Il est nécessaire de bénéficier d’architectures d’entreprise préétablies pour avoir une démarche unifiée de construction des applications.

Les frameworks techniques

Les briques technologiques offertes par Microsoft (ou le monde du .NET) sont extrêmement nombreuses: Framework .NET, Silverlight, WPF, WCF, WF, ASP.NET MVC, Windows Identity Foundation, Entity Framework, Azure, SQL Server, Unity, …
Comment distribuer tous ces frameworks sur une architecture d’entreprise ?

The Forrester Wave™: Enterprise Service Bus, Q2 2011 (An Antéo digest)

Toujours à la recherche de la meilleure façon de mettre en œuvre un SOA d’entreprise, nous nous sommes récemment intéressés au dernier report du Forrester Research sur les bus ESB.

En théorie, l’ESB est le support d’architecture idéal pour déployer une architecture SOA, ses aptitudes concernent en effet :

  • l’intégration de services par l’intermédiaire des possibilités de routage, de transformation, d’agrégation, de messaging, de synchronisation transactionnelle et de sécurité
  • l’orchestration (lightweight) de services pour pouvoir les arranger en « business process » au grès des impératifs métier
  • la qualité de service assurée par la supervision, la traçabilité, la garantie d’exécution et la possibilité de reprise.