Accéder au contenu principal

Les microservices, Introduction

Nous sommes en 2018 et il est (plus que) temps d'étudier de plus près ce nouveau paradigme popularisé par Martin Fowler et son équipe de Thoughtworks : les microservices.

En effet, nous avons tous en charge directement ou indirectement, une pièce de code, qui même si elle est correctement codée a besoin d'être corrigée, améliorée et maintenue dans le cadre de son exploitation et son intégration au sein du SI.

Ce type d'application est en règle générale nommée monolithe. Bien que ce terme ait une connotation négative de nos jours, celles-ci ont fait les beaux jours des directions techniques en proposant une architecture standard, robuste, fiable et intégrée. Généralement déclinées en plusieurs couches applicatives (présentation, business, repository...), ces applications avaient l'avantage d'être simple à développer et leur intégration dans le SI était aisée, car composée de peu de ressource finalement (un serveur web, un serveur d'application et une base de données).

Alors, pourquoi remettre en question l'architecture de ces applications dites "clé en main" ? Plusieurs réponses sont possibles : la maintenabilité, l'obsolescence des briques techniques utilisées, le manque de ressource capable de faire évoluer le produit, etc...

Je vous propose donc une petite réflexion sur le sujet, que vous pourrez retrouver sur le Wiki de Reservoir code et dans lequel je partage ma vision sur le sujet.

Introduction aux microservices

Bonne lecture,
Crédit photo : https://pixabay.com/fr/users/jackmac34-483877/

Commentaires

Posts les plus consultés de ce blog

Create and use a result captor in Mockito

Today I will show you how to create a Mockito captor In Mockito it exists the possibilty to use ArgumentCaptor to allow developers to verify the arguments used during the call of mocked method, but not the result itself. Indeed, in the current release of Mockito it's not possible to capture it and my solution to do that is to build a ResultCaptor class which implements the Answer interface and generify it for more conveniance. Let's take a look. Create the ResultCaptor class public static class ResultCaptor < T > implements Answer < T > { private T result = null ; public T getResult () { return result ; } @Override public T answer ( InvocationOnMock invocationOnMock) throws Throwable { //noinspection unchecked result = ( T ) invocationOnMock.callRealMethod(); return result ; } } In this quite simple implementation we see that the ResultCaptor class implements the Answer interface which force to override the...

Faire sa machine virtuelle sous Debian ARM avec QEMU

Introduction L'objet de ce article est de vous expliquer comment faire  pas à pas,  sa machine virtuelle Debian Wheezy   tournant sur un processeur ARM   avec QEMU . Il est relativement simple de trouver des ressources à ce sujet sur le Web, mais je voulais apporter ma pierre à l'édifice sous forme d'un petit  tutorial prêt à l'emploi. A propos d'ARM et d'émulation, il faut savoir qu'au jour d'aujourd'hui, VirtualBox est incapable de virtualiser un OS tournant sur ARM, cela m'a donc obligé à m'intéresser de plus prêt à QEMU. Et si vous vous demandez pourquoi, je veux émuler de l'ARM, vous le serez au prochain épisode... QEMU QEMU est un logiciel développé à l'origine par le célébrissime programmeur  Fabrice Bellard . Le succès de cet émulateur vient principalement du fait, qu'il est tout aussi capable d'émuler que de virtualiser. La principale différence entre l'émulation et la virtualisation est qu'un ...

Releaser avec Maven sur github

Le but de l'exercice est de releaser un projet Maven simple en utilisant le maven-release-plugin via Cygwin sur la plateforme github . En effet, la procédure serait aussi simple que sur Subversion , à la condition d'avoir ses settings et ses POM au carré, ce que nous allons voir de suite. Pour mener à bien l'opération, les pré-requis sont les suivants : Avoir un environnement de développement sous Cygwin , le mien étant Windows XP SP3 / Cygwin 2.712 , / java 1.6.0_17 / git 1.7.1 avec une auto-complétion des commandes git bien pratique, Avoir une configuration Maven opérationnelle dans le sens où vous avez accès aux maximums de repositories publics et une plateforme d'hébergement/déploiement pour vos archives. La mienne étant Maven 2.2.1 / Nexus™ Open Source Edition 1.7.1. J'avoue avoir de la chance, car j'utilise pour mes tests, ma plateforme d'entreprise (chez Vidal) configurée aux petits oignons par mon collègue Thierry que je salue au pass...