Ajouter un commentaire

Par :
Laurent Pétroque

jeu, 30/01/2014 - 11:39

Votre grille-pain est configurable, mais pas programmable. La programmabilité devient aussi médiatique que les tendances technologiques auxquelles elle est associée, c'est-à-dire les réseaux définis par logiciel (SDN — Software-Defined Networks), le développement de la production (Devops), voire le Cloud. Le terme « programmabilité » est utilisé pour décrire - de façon erronée - tout sortes de concepts, de l’orchestration et la connectivité à base de règles jusqu’à l’invocation de scripts dans les environnements distribués. La programmabilité est présentée comme une solution à tous les problèmes, des éruptions solaires à l’inefficacité opérationnelle, et, apparemment, elle peut non seulement préparer votre café du matin, mais également le boire à votre place !

Si cela semble relever de l’hyperbole (du moins un petit peu), une certaine confusion entoure les termes « programmable » et « programmabilité », et ce qu’ils couvrent. Les grille-pain et les cafetières, par exemple, sont très souvent vendus comme des appareils « programmables ». Pour ma part, je préfère insister (maîtrise de sciences à l’appui !) sur le fait que ces appareils ne sont et pas programmables mais configurables. La notion de programmabilité implique un niveau de raisonnement démontré par le modèle de Turing, dont sont dépourvus les grille-pain mais que l’on trouve de plus en plus dans les infrastructures définies par logiciel.

Qu’il s’agisse de réseaux ADN (Application Defined Network) ou SDN (Software Defined Networks), de temps réel ou de gestion, la programmabilité est une proposition de valeur clé pour de nombreuses solutions et technologies actuelles. Mais les différents aspects de la programmabilité présentent des avantages spécifiques et peuvent être utilisés indépendamment les uns des autres pour relever des défis nombreux et variés.

Les trois facettes de la programmabilité

Sans être trop pointilleux, la programmabilité des infrastructures SDN se déroule sur trois niveaux principaux : le plan de contrôle (control plane), le plan de gestion (management plane) et le plan de données (data plane).

Chacun de ces niveaux joue un rôle précis, et il est intéressant de noter qu’ils ne doivent pas obligatoirement fonctionner ensemble. Il est possible de bénéficier de l’un sans utiliser les autres, en fonction des objectifs associés aux technologies définies par logiciel.

Programmabilité du plan de gestion (management plane)

C’est probablement au plan de gestion que pensent la plupart des utilisateurs lorsqu’on évoque la notion de programmabilité en étroite association avec tout ce qui peut être « défini par logiciel ». La programmabilité du plan de gestion est généralement validée par une interface de programmation (API) exposée. Cette API permet de contrôler la programmation d’un appareil, d’une solution ou d’un logiciel par des moyens externes pouvant inclure un contrôle pré-intégré à l’aide de solutions d’automatisation et d’orchestration telles que VMware et OpenStack, ainsi que des solutions personnalisées. Dans l’environnement actuel, les API basées sur l’architecture REST (Representational State Transfer) constituent le standard, essentiellement parce que l’invocation via le protocole HTTP est simple, peut être utilisée par les développeurs et les environnements Devop, et qu’elle est bien maîtrisée.

Avantages : Efficacité et possibilité de reproduire des déploiements avec succès au moyen de solutions d’orchestration et d’automatisation.

 

Programmabilité du plan de contrôle (control plane)

Le plan de contrôle est une des zones grises de la programmabilité. Dans les modèles SDN émergents, ce plan de contrôle est appelé « API Nord » (Northbound API) parce qu’en fin de compte, c’est bien d’une interface de programmation qu’il s’agit. C’est le plan de contrôle qui rend possible l’extensibilité. En utilisant cette API, la plate-forme (en environnement SDN, ce serait le contrôleur SDN et en environnement ADN, le contrôleur de distribution d’applications — Application Delivery Controller) peut être étendue pour inclure de nouvelles fonctions et de nouveaux protocoles et services. Les offres SDN open source rendent cette API « ouverte » — n’importe qui peut étendre la plate-forme — alors que dans d’autres solutions, l’accès à cette API est réservé aux seuls partenaires.

Avantages : Extensibilité rapide de la plateforme, expansion des services, solutions personnalisées.

Programmabilité du plan de données (data plane)

Le plan de données constitue peut-être la fonction de programmation la moins bien comprise, pour la raison suivante : dans certains environnements, notamment les réseaux SDN, cette programmation est focalisée sur des règles qui définissent le comportement d’une matrice de commutation « générique ». Dans d’autres environnements, la programmabilité des plans de données est moins structurée et ouverte. Il s’agit bien d’une interface de programmation API, mais qui fonctionne également en tant que plate-forme, permettant d’exécuter la logique de domaine sur le trafic en cours. Une telle programmabilité permet de réaliser des schémas de déploiement Devops (Blue-Green Deployments, Canary Deployments, A/B testing, etc.), et autorise l’extensibilité des fonctionnalités du système (tout le monde a besoin d’un lanceur de dés en réseau pour ses jeux de rôles, n’est ce pas ?).

Avantages : Rapidité de réaction aux incidents commerciaux et opérationnels, mise en œuvre d’architectures de déploiement flexibles (et parfois provisoires), logique personnalisée en temps réel.

Laurent Pétroque, Manager des avant-ventes chez F5 Networks France

A propos de l'auteur

Laurent Pétroque
Manager des avant-ventes chez F5 Networks France

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 U   U  TTTTTT  W     W   AA   H  H 
U U TT W W A A H H
U U TT W W W AAAA HHHH
U U TT W W W A A H H
UUU TT W W A A H H