Depuis le provisionnement ZTP (Zero Touch Provisioning) ou ZTD (Zero Touch Deployment) jusqu’à l’intégration continue, en passant par la collecte de données, la migration, la gestion de configuration, le test de conformité, le tableaux de bord et le diagnostic, l’automatisation apporte des solutions à chacune des étapes.
Le « Management Plane » s’occupe de la partie orchestration en offrant des protocoles de communication, tels que Telnet (Terminal Network), SNMP (Simple Network Management Protocol), SSH (Secure SHell), HTTPS (HyperText Transfer Protocol Secure)…, aux administrateurs afin d’interagir avec l’équipement. L’objectif de l’automatisation n’est pas de chercher à centraliser un « Management Plane », mais plutôt de rendre automatique un ensemble de tâches nécessitant une connexion sur chacun des équipements pour être réalisées.
Le « Management Plane » tend à évoluer pour passer des accès SNMP et SSH/Telnet/CLI, au protocole NETCONF (Network Configuration Protocol), puis aux API REST (Application Programming Interfaces REpresentational State Transfer). Le format de transfert des données entre l’équipement et l’administrateur se structure également pour passer du mode texte pur au XML (YANG utilisé par NETCONF) ou au JSON (JavaScript Object Notation). Cependant, lors du salon INTEROP 2016 à Las Vegas, il a été mis en évidence que seuls 15% à 20% des équipements supportaient des APIs ou le protocole NETCONF. De ce fait, l’accès SSH classique reste encore indispensable.
L’industrie des réseaux a amorcé un changement dans les années 2010 pour voir apparaître des concepts de plus en plus orientés système et développement. Des spécialistes réseaux ont intensifié l’utilisation de scripts écrits dans leur langage préféré. Poussé par les constructeurs et certains Consultants experts en réseau, le langage interprété Python s’est imposé comme un choix performant, mais aussi plus simple à appréhender, pour des non-développeurs, que bon nombre de langages compilés. Dans tous l’écosystème du SDN, le langage Python est un des langages le plus représenté.
Ansible, écrit en langage Python, s’est progressivement imposé comme le principal outil d’automatisation dans le monde du réseau. Il n’est pas tout seul dans sa catégorie, mais il a l’avantage de pouvoir être utilisé avec seulement un interpréteur Python sur la cible, voire même avec seulement un accès SSH et rien de plus. Racheté par Red Hat en octobre 2015, il est Open Source dans sa version ligne de commande et payant pour sa version web. Travailler avec un outil comme Ansible, permet de structurer l’approche des spécialistes réseaux, et bien que ceci puisse apparaître, au premier abord, comme une limitation de la liberté de codage, les avantages prennent rapidement le dessus sur les inconvénients.
L’automatisation poussée à l’extrême introduit la notion d’orchestration, pour laquelle le rassemblement de produits Open Source, orientés cloud, le plus connu est OpenStack. L’objectif est de pouvoir administrer et configurer à la demande l’ensemble des matériels réseau, des serveurs et du stockage depuis un point central. Faire du réseau avec OpenStack reste complexe et le projet OpenStack Neutron et son jeu de plugins ont pour objectif de proposer le réseau sous la forme de service (Networking as a Service).