En 1983, alors que j'étais encore en train d'apprendre à regarder et à toucher le matériel de mon Apple ][e, un groupe de personnes partageant les mêmes idées dans les secteurs de l'informatique et des télécommunications se sont réunies pour créer une spécification détaillée qu'ils ont appelée Open Systems Interconnection (OSI). Ce qui a commencé comme un effort pour élaborer des interfaces réelles s’est finalement transformé en un modèle de référence commun qui pourrait à son tour être utilisé par d’autres – comme l’IETF – pour développer des interfaces. Ces interfaces pourraient devenir – et sont devenues – des normes à terme : IP, TCP, HTTP, etc…
Ce modèle de référence a été enseigné à la plupart d’entre nous qui avons suivi des cours d’informatique à l’université. Nous avons entendu parler des « sept couches de l’OSI » pour découvrir dans le monde réel que les implémentations réelles correspondent rarement clairement au modèle de réseau OSI.
Néanmoins, il est suffisamment bien cartographié pour que nous continuions à l’utiliser comme modèle de référence qu’il était censé être. La plupart d’entre nous comprennent que la couche 4 fait référence à TCP, la couche 7 à HTTP et la couche 2/3 à IP et Ethernet. Ils sont presque interchangeables.
Il y a quelques années, nous avons même eu des débats sur la place exacte des protocoles de superposition associés au SDN et aux réseaux virtuels. Ce n’était pas vraiment la couche 2, mais ce n’était pas non plus exactement la couche 3. Ils étaient en quelque sorte entre les deux.
Nous avons pu ignorer cela, pour la plupart, et nous sommes contentés d’indiquer vaguement les deux couches et de les appeler simplement « réseau superposé ». Tout le monde comprenait ce que nous voulions dire, et nous avions d’autres sujets de discussion, comme la définition du cloud et si DevOps était approprié ou non pour l’entreprise.
Entrez les conteneurs – ou plus précisément, la mise en réseau des conteneurs. Le monde hautement volatil et automatisé des environnements d’orchestration de conteneurs (COE) a donné lieu à la nécessité de couches encore plus nombreuses dans la pile réseau.
Comme pour les réseaux superposés, nous sommes peu enclins à créer de nouvelles couches dans le modèle OSI car, eh bien, il s'agit d'une référence standard à ce stade et le changement des normes peut prendre beaucoup de temps. Le long de. Long. Temps. Mais comme les réseaux superposés, ces couches existent toujours en tant qu’interfaces existentielles dans la pile réseau. Et comme pour les réseaux superposés, je suis enclin à leur donner des « demi-couches » car elles sont importantes pour l’avenir des réseaux dans le COE.
Le premier « demi-pas » se situe entre les couches 4 et 5. C’est là que l’exécution et l’automatisation du service mesh entrent en jeu. En un mot, un service mesh est construit à partir de proxys déployés en side-car qui interceptent chaque requête. Cela leur permet d’exécuter un routage spécifique au domaine pour les services dans l’environnement du conteneur. Il suppose que des protocoles d’ordre inférieur existent et les étend efficacement. Cela est nécessaire car toutes les couches réseau situées en dessous supposent que la connectivité et le routage sont basés uniquement sur l'adresse IP. Et même si c'est ainsi que les paquets sont finalement déplacés dans un environnement de conteneur, la décision sur l'adresse IP et le port vers lesquels envoyer une requête donnée n'est pas basée sur ces informations. Il est basé sur une variété de variables liées à l’état et à l’emplacement du service et de l’application. Essentiellement, nous examinons les méta-informations sur une demande et les utilisons pour déterminer comment l’acheminer. Ces méta-informations sont essentielles pour établir le « maillage » qui, à son tour, assure la disponibilité et l’évolutivité de chaque service.
Le deuxième « demi-pas » se trouve près du sommet, au-dessus de la couche 7. Blagues mises à part sur la « couche humaine (couche 8) », COE place en réalité une couche de métadonnées au-dessus de l'application qui fournit la « colle » qui permet à l'échelle dans les environnements conteneurisés de fonctionner. Il s’agit des « balises » d’application ou de service utilisées pour identifier les services discrets pour lesquels le COE propose une échelle automatisée. Sans les balises, il est presque impossible de distinguer une application d’une autre. Cela est dû au fait que toutes les couches de la pile OSI sont identifiables par des constructions spécifiques telles que l’adresse IP et le port. Bien que nous comprenions depuis longtemps les implémentations architecturales qui reposent sur le partage de ces constructions externes à l'environnement (serveurs virtuels et réseaux basés sur l'hôte), les conteneurs ont créé les mêmes problèmes à l'intérieur de l'environnement. Le partage des ports et des adresses IP rend difficile la différenciation des services aux vitesses requises.
L’ajout de « balises » au niveau de la couche 7.5 dans les environnements conteneurisés offre à ces services réseau (comme l’équilibrage de charge et le routage) la possibilité d’identifier de manière unique les ressources et de garantir simultanément l’évolutivité et la disponibilité.
Les nouvelles « couches conteneurs » permettent à l’environnement de se découpler des structures réseau et, ce faisant, d’assurer une plus grande portabilité que les technologies précédentes qui restaient étroitement liées à d’autres couches de la pile réseau. En fonctionnant sur des « demi-couches » et en supposant l’existence des couches traditionnelles, les environnements conteneurisés gagnent en indépendance par rapport à tout schéma ou architecture de réseau spécifique et peuvent se déplacer avec la même facilité entre le développement et les tests, les tests et la production, sur site et dans le cloud.