Micro-services et Cloud : quelles sont les interactions
Les micro-services et le Cloud occupent le haut des priorités lorsqu’on aborde les technologies d’entreprise. Mais quelles sont les interactions entre les deux ?
Les micro-services décomposent les logiciels en composants fonctionnels capables d’interopérer et de communiquer pour au final créer une application dans son ensemble. Ces composants fonctionnels peuvent être dimensionnés (up et down) pour coller au plus près des besoins des utilisateurs. Même si finalement les applications s’adossant à cette architecture en micro-services ne nécessitent pas implicitement des services Cloud, ces deux pans de l’IT forment tout de même de bons compagnons.
Les conteneurs par exemple s’adaptent bien aux composants des micro-services. En s’appuyant sur la couche OS partagée par les conteneurs, les différents composants conteneurisés sont ainsi reliés et peuvent communiquer pour former l’application finale. De plus, les entreprises ont la capacité de monitorer les performances et de gérer des services de load balancing pour créer ou détruire rapidement des conteneurs. Elles se voient aussi offrir la capacité d’automatiser des comportements type, comme le dimensionnement.
Cela signifie par exemple qu’un déploiement de Cloud bien configuré a la capacité d’anticiper un goulot d’étranglement au sein d’un conteneur, de délester automatiquement – en utilisant par exemple un cluster EC2 - , puis d’utiliser des capacités de load balancing pour répartir le trafic entre les conteneurs dupliqués afin de mieux absorber la charge supplémentaire.
Le scenario inverse est également vrai. Lorsque que la charge s’amenuise, les services de load balancing dans le Cloud peuvent s’apercevoir de cette baisse de demande et avoir recours à des fonctions de dimensionnement automatique pour se débarrasser des conteneurs dupliqués qui ne sont plus nécessaires.
Les micro-services peuvent aussi s’appuyer sur les appels à des APIs de fournisseurs de Cloud pour réagir à des événements. Par exemple, certains acteurs, comme le propose AWS avec Lambda, proposent des services de compute qui se déclenchent à partir d’événements programmés, comme des erreurs ou la connexion d’un utilisateur. Lorsqu’ un événement est déclenché, la routine appelée se charge, s’exécute et disparait. Cela permet ainsi d’écrire une application plus efficacement. Les fonctions, dont l’usage est rare, peuvent être contrôlées via des services de gestion d’événements qui du coup ne sollicitent des ressources qu’une fois appelées.
Traduit par la rédaction