NetDevOps: Quand le DevOps se met au réseau 📶
Tout le monde parle depuis un certain moment de la mouvance DevOps, peu de la mouvance NetDevOps qui découle de cette première alliant les fondamentaux du DevOps et du réseau. 🛠
Un petit retour sur le DevOps... 💥
Avant d'aborder le sujet du NetDevOps, il est intéressant de revenir sur ce qu'est le mouvement DevOps.
Pour paraphraser Wikipédia:
"Le DevOps est un mouvement en ingénierie informatique et une pratique technique visant à l'unification du développement logiciel (dev) et de l'administration des infrastructures informatiques (ops), notamment l'administration système"
En outre, le DevOps a fait évoluer la culture de développement des applications informatiques vers un nouveau paradigme.
Il a révolutionné le processus de développement de logiciels en obligeant les équipes de développement (Dev) et d'exploitation (Ops) à travailler en étroite collaboration. Que demande le peuple! 😁
Le déploiement continu et l'amélioration de l'infrastructure grâce à l'adoption de l'agilité ont permis une livraison et une mise en service rapides des services informatiques.
Les perfs... 🛩
C'est un fait, dans un très grand nombre de cas, il a été relevé que des performances plus élevées que celles d'un déploiement traditionnel ont été constatées après l'intégration de la culture DevOps au sein d'une organisation.
C'est principalement dû au fait que la construction, les tests et le déploiement se font dans le cadre d'une alliance, ce qui permet de supprimer les cloisonnements. 🐱👤
En outre, DevOps a permis d'apporter des modifications efficaces à la sécurité grâce à l'automatisation et à la surveillance, ce qui permet de détecter et de résoudre rapidement les failles.
OK, NetDevOps, Késako? 🤷♂️
Bon jusque là, comme on l'a vu plus haut, le DevOps ne s'applique du coup qu'au Dev et à l'infra, qu'est-ce qu'il en est du réseau ? 🧐
Et oui, malheureusement, trop peu d'entreprises se posent la question mais mine de rien, ça permettrait de résoudre un grand nombre de problèmes. 😜
Sans oublier que le réseau est fondamental pour offrir tout type de service permettant une connexion ininterrompue pour l'organisation.
Malheureusement, l'approvisionnement séquentiel et manuel conduit à une situation où les dispositifs du réseau (firewall, switch, load balancer) deviennent obsolètes et moins résilients pour les configurations actuelles du réseau. 😒
C'est dans ce sens que toute les modifications apportées aux configurations du réseau entraînera de nombreuses erreurs injustifiées rendant la situation plus complexe à gérer pour l'équipe.
On rencontre très souvent ces problèmes avec la procédure de développement de logiciels traditionnels.
La solution ? L'agilité, le DevOps, le principe du CI (Continuous Integration)/CD (Continous Delivery), des tests unitaires automatisés. Enfin tout ce qui s'appliquait habituellement à l'infra (système) et au dev peuvent à présent s'appliquer au réseau. 👌
C'est dans ce sens que l'on obtient le nouveau paradigme appelé "NetDevOps".
Il est important de souligner que l'Infra As Code est une partie importante de la mouvance NetDevOps. Ainsi il est, dans cette partique, déprécié de configurer sois-même quelque chose directement via Telnet/SSH/Web mais plutôt directement via un script permettant d'éviter d'ailleurs les erreurs de frappe.
L'automatisation du réseau est donc essentielle pour la fiabilité et la qualité du réseau. 💕
Lorsque les concepts de DevOps sont appliqués au réseau, les avantages commencent à se faire sentir. 😜
Comment incorporer cette mouvance? 😎
Elle peut se faire selon les deux approches qui suivent:
- Software-Defined Networks (SDN)
- Par l'intermédiaire d'un Cloud Provider
Comme DevOps, NetDevOps vise à prévenir les erreurs, à éviter les répétitions, etc. Mais le passage à NetDevOps nécessitera un grand changement culturel.
Des outils pour devenir un as 🛠
Voici une petite liste d'outils que j'aime beaucoup (et que j'utilise au quotidien):
- Ansible: https://docs.ansible.com/ansible/latest/index.html
- Nornir: https://nornir.readthedocs.io/en/latest/
- NAPALM: https://napalm.readthedocs.io/en/latest/
- Netmiko/Paramiko: https://pynet.twb-tech.com/blog/automation/netmiko.html
- pyATS/Genie (mon favoris): https://developer.cisco.com/docs/pyats/
- Gitlab: https://about.gitlab.com/
- Git: https://git-scm.com/
- VIRL (Pour des tests et l'apprentissage): https://gblogs.cisco.com/fr/uncategorized/testez-simulez-apprenez-avec-virl-et-cml/
- Plein d'exemples: https://github.com/juliogomez/netdevops
Pour en conclure 🛸
DevOps a apporté une transformation culturelle dans l'industrie du développement de logiciels.
Tout comme DevOps, on observe une culture de la peur au sein de l'organisation qui affecte la capacité des équipes réseau à fournir des services rapidement et efficacement.
L'efficacité d'une organisation s'améliore lorsque la mise en réseau et les principes de DevOps sont intégrés ensemble pour des objectifs similaires.
L'automatisation du réseau et l'IaC sont la clé de la mise en œuvre de NetDevOps. 😁