Podcast NetDevOps NXOTECH

Podtcast NetDevOps Gilbert MOISIO
Podcast Youtube NetDevOps NXOTECH

Le NetDevOps est une approche transverse agnostique multi-constructeurs, multi-éditeurs et multi-technologies qui permet de centraliser et consolider les paramètres de l’infrastructure, et donne une visibilité complète sur l’ensemble des silos. En cela, elle garantit la sureté de fonctionnement.

La pratique NetDevOps répond au besoin d’exécution et de sécurisation pour accélérer le déploiement et les évolutions de l’infrastructure réseau au même rythme que les systèmes et les applications. 

Elle assure le déploiement des configurations avec rapidité, ainsi que la conformité et la sécurisation par rapport aux objectifs de fonctionnement et de maintien en condition opérationnelle des infrastructures réseaux. La modélisation du réseau est réalisée sur un simulateur, qui permet de valider les modifications avant déploiement, tout en assurant la cohérence de l’ensemble. Elle apporte par ailleurs de la visibilité sur l’ensemble des infrastructures via la télémétrie et le monitoring.

Podcast Spotify NetDevOps NXOTECH

Le mouvement NetDevOps

Mouvement NetDevOps

« NetDevOps est un sujet assez brûlant », déclare Andrew Lerner, vice-président de la recherche pour les réseaux chez Gartner.

« NetDevOps contribue à améliorer l’agilité et est particulièrement précieux pour les organisations mettant en œuvre le concept d’Infrastructure as Code, car le réseau est souvent un goulot d’étranglement », déclare Andrew Lerner. « Les pratiques NetDevOps génèrent des flux de travail et une documentation clairs, ce qui facilite l’audit, la gouvernance et le dépannage. »

Un autre avantage du NetDevOps est qu’il permet une plus grande collaboration entre les différents services informatiques, tout comme DevOps le fait avec le développement et les opérations.

La mutation n’en est qu’à ses début. Gartner estime entre 2 % et 10 %, les organismes qui auraient actuellement implémenté activement la démarche.

Continuer la lecture de « Le mouvement NetDevOps »

Définition du DevSecOps

DevSecOps

On voit apparaître de plus en plus de présentations d’acteurs de la sécurité des infrastructures qui glissent le mot DevSecOps partout en expliquant qu’il s’agit du DevOps appliqué à la sécurité, or ce mot n’a jamais été prévu pour ça.

Même si le marketing américain est friand de l’expression « A nice story doesn’t have to be true » et à moins de considérer que les appliances sécurité ne font pas partie intégrante de l’infrastructure réseau, appliquer les pratiques DevOps à ces solutions revient à faire du NetDevOps.

Selon la définition de Gartner, NetDevOps implique l’application des concepts DevOps CI/CD (Continuous Integration / Continuous Delivery-Deployment) aux activités de mise en réseau.

Le mot DevSecOps n’a rien à voir avec du SecDevOps dans lequel on aurait changé « Sec » de place pour faciliter la prononciation.

N’en déplaise aux conservateurs qui s’accrochent désespérément aux vieilles pratiques, l’approche DevOps s’impose dans tous les domaines et avec elle le « tout logiciel ». Le risque qui a été identifié, c’est que l’approche DevOps soit pratiquée par des personnes qui n’en ont pas toujours la compétence et qui prennent des raccourcis en mettant de côté certains sujets, comme la sécurité dans les implémentations. C’est la raison pour laquelle le mot DevSecOps a été créé : rappeler à tous que la sécurité doit faire partie intégrante de la pratique DevOps avec des bonnes pratiques de développement, mais aussi des tests automatisés à tous les niveaux des différentes implémentations.

Continuer la lecture de « Définition du DevSecOps »

Développer du NetDevOps dans des conteneurs Docker

VM Docker VSCode

Une question m’a été posée : « comment développer des applications NetDevOps directement dans des conteneurs ? ». Si la question peut sembler orienter le débat vers des sujets compliqués, il n’en est rien. Il existe une façon très simple de répondre.

Le contexte de la question doit être précisé. Il s’agissait de conteneurs Docker qui tournaient sur une VM Linux Ubuntu 20.04 distante. Les conteneurs étaient lancés avec de la persistance de stockage sur des volumes externes. C’est une bien meilleure pratique que d’utiliser des points de montage dans des répertoires de la VM (Virtual Machine).

Alors que les points de montages dépendent de la structure du répertoire et du système d’exploitation de la machine hôte, les volumes sont entièrement gérés par Docker. Les volumes présentent plusieurs avantages par rapport aux points de montages :

  • Les volumes sont plus faciles à sauvegarder ou à migrer que les points de montages sur des répertoires.
  • Il est possible de gérer les volumes à l’aide des commandes Docker CLI ou de l’API Docker.
  • Les volumes fonctionnent sur les conteneurs Linux et Windows.
  • Les volumes peuvent être partagés de manière plus sûre entre plusieurs conteneurs.
  • Les drivers de volume permettent de stocker des volumes sur des hôtes distants ou des fournisseurs de cloud, de chiffrer le contenu des volumes ou d’ajouter d’autres fonctionnalités.
  • Les nouveaux volumes peuvent avoir leur contenu pré-rempli par un conteneur.
  • Les volumes sur Docker Desktop ont des performances bien supérieures à celles des points de montages des hôtes Mac et Windows.

De plus, les volumes sont souvent un meilleur choix que les données directement stockées dans le conteneur, car un volume n’augmente pas la taille des conteneurs qui l’utilisent et le contenu du volume existe en dehors du cycle de vie d’un conteneur donné.

Continuer la lecture de « Développer du NetDevOps dans des conteneurs Docker »

Docker Compose plugin

Docker Compose plugin

Docker est un utilitaire pour packager et exécuter des conteneurs. Il aide à créer des conteneurs standard qui incluent tous les composants nécessaires pour qu’ils fonctionnent de manière isolée, y compris le code, les dépendances et les bibliothèques. Docker est techniquement plus un outil de gestion de conteneur qu’un format de conteneur.

Les développeurs interagissent généralement avec Docker via une interface de ligne de commande (CLI) pour communiquer avec le client Docker afin d’exécuter des commandes. Celles-ci sont traduites en commandes d’API vers le démon Docker dockerd, qui dirige le système pour créer l’environnement. Un registre Docker stocke des images Docker, qui sont des modèles exécutables. Ainsi, les conteneurs Docker sont essentiellement des instances de ces images.

Docker a été initialement développé en 2013 et a initié le mouvement moderne des conteneurs. Le format d’image Docker a été proposé en tant que standard ouvert et est maintenant appelé Open Container Initiative (OCI). Lorsque les gens discutent des conteneurs Docker, ils se réfèrent généralement à Docker, l’outil de conditionnement de conteneurs. Cela ne doit pas être confondu avec Docker Inc., la société.

Depuis quelques années Kubernetes est devenu la préférence pour de nombreuses grandes entreprises pour la gestion des conteneurs. Souvent abrégé en K8s, il a d’abord été développé en tant qu’outil interne appelé Borg chez Google et est devenu open source en 2014. Parmi les batailles d’orchestrateurs de conteneurs, Kubernetes est sorti victorieux en tant que plate-forme leader, battant Apache Mesos, Docker Swarm et Nomad. K8s est un projet de la Cloud Native Computing Foundation (CNCF) depuis 2018.

Continuer la lecture de « Docker Compose plugin »

Python pandas et le NetDevOps

Python Pandas module

Pandas est un outil d’analyse et de manipulation de données Open Source, écrit en Python, rapide, puissant, flexible et facile à utiliser. Lorsqu’on travaille avec des données tabulaires, telles que des données stockées dans des feuilles de calcul ou des bases de données, pandas est l’outil adapté. Pandas aide à explorer, nettoyer et traiter les données. Dans pandas, une table de données s’appelle un DataFrame.

DataFrame pandas
DataFrame pandas (source pandas)

Pandas prend en charge, nativement, l’intégration de nombreux formats de fichiers ou sources de données (csv, excel, sql, json, parquet,…). L’importation de données à partir de chacune de ces sources de données est réalisée par une fonction avec le préfixe read_*. De la même manière, les méthodes to_* sont utilisées pour stocker des données.

Importation Exportation Python pandas
Importation et exportation de données avec Python pandas (source pandas)
Continuer la lecture de « Python pandas et le NetDevOps »

Python, gestion des packages et des dépendances

Gestion Packages et dépendances Python

Lorsqu’il s’agit de démarrer un produit pour le NetDevOps en langage Python, la principale préoccupation est la gestion des dépendances. Les dépendances font références à tous les composants logiciels requis par le produit pour qu’il fonctionne.

PyPI (Python Package Index) fournit des packages qui aident à démarrer un produit sur tout type de sujet, mais outre le fait qu’il convient de ne pas installer les packages au niveau du système, il peut être nécessaire de gérer des versions différentes d’environnements de développement pour un même produit, avec une gestion pointue des dépendances et de leurs éventuels conflicts.

Pip est l’outil standard pour installer les packages Python et gérer leurs dépendances. En utilisant pip pour installer des packages, il les récupère automatiquement avec toutes ses dépendances à partir du Python Package Index (PyPI) et les installe localement sur le système. De façon à ne pas installer l’environnement de développement de façon globale sur le système, mais plutôt de l’isoler, le recours à un environnement virtuel Python est fortement recommandé.

Continuer la lecture de « Python, gestion des packages et des dépendances »

NetPalm, un cocktail pour le NetDevOps

Architecture NetPalm NetDevOps

NetPalm a vu le jour en 2020 sous l’impulsion de Tony Nealon et rassemble plusieurs outils, qui ont déjà été évoqués séparément, pour construire une plateforme OpenAPI à destination des équipements réseaux. NetPalm forme une couche d’abstraction pour utiliser napalm, netmiko, ncclient ou requests afin d’accéder aux différents matériels avec la méthode la plus adaptée. L’accès à NetPalm se fait au travers d’une interface OpenAPI v3.

NetPalm utilise Docker pour apporter une touche de modernité et une capacité d’évolution de manière à encaisser une montée en charge.

Architecture NetPalm
Architecture NetPalm
Continuer la lecture de « NetPalm, un cocktail pour le NetDevOps »

Batfish, outil Open Source d’analyse de configuration réseau

Batfish

L’écosystème NetDevOps propose de nombreux outils pouvant être positionnés aux différentes étapes de la boucle interne de l’Intent-Based Networking. Dans une approche NetDevOps, Batfish permet de contrôler des configurations avant leur déploiement.

Batfish détecte les erreurs et garantit l’exactitude des configurations de réseau prévisionnelles ou actuellement utilisées. Il permet une évolution sûre et rapide du réseau, sans crainte de pannes ou de failles de sécurité.

Batfish a été initialement développé par des chercheurs de Microsoft Research, UCLA et USC. Beaucoup d’autres y ont contribué depuis. Il est actuellement maintenu par Intentionet, qui propose également Batfish Enterprise, un service qui étend et améliore les capacités de base de Batfish.

Batfish est un service qui tourne sous la forme d’un conteneur Docker. Batfish est conçu pour analyser une série de snapshots d’un réseau. Il faut voir le réseau comme un regroupement logique d’appareils, que ce soit tous les appareils du réseau ou un sous-ensemble. Un snapshot est un état du réseau à un instant donné. Un réseau peut contenir de nombreux snapshots, pour permettre de comprendre son évolution.

Continuer la lecture de « Batfish, outil Open Source d’analyse de configuration réseau »