Sommaire

Présentation d’Istio

1. Micro-services et mise en réseau de services

Le développement d’application en micro-services est un canevas de développement classique. Le principe est de découper l’application à développer en plusieurs éléments indépendants et faiblement couplés. La communication entre deux services se passe ensuite à l’aide d’une API (souvent basée sur REST ou gRPC).

L’avantage de ce type d’architecture est de permettre de faire vivre indépendamment chaque brique par des équipes différentes.

Dans une architecture traditionnelle, une application micro-services peut être difficile à maintenir. De ce point de vue, Kubernetes est parfaitement adapté :

  • facilité pour déployer plusieurs petites briques indépendantes avec les objets Deployment ou StatefulSet,

  • création de répartiteur de charge avec la notion de service,

  • publication des briques à l’aide d’Ingress,

  • restriction des communications entre briques à l’aide d’objets NetworkPolicy

En revanche, du fait de cette mise en réseau facilitée, émergent de nouvelles questions :

  • Qui a communiqué avec qui ?

  • Combien de temps a pris la communication entre deux services ?

  • Dans quels services l’application a-t-elle passé du temps ?

  • Est-ce que la requête entre deux services se fait avec les bons paramètres ? ...