Objectifs de certification

CCNA 200-301

  • 1.12 Expliquer les fondamentaux de la virtualisation (virtual machines)

  • 6.1 Expliquer comment l’automation impacte la gestion du réseau


De la virtualisation au nuage

La virtualisation des ordinateurs est une idée aussi vieille1 que celle de l’ordinateur.2 Mais depuis la seconde décade du XXIème siècle, la virtualisation est devenue une forme commune et maîtrisée pour exécuter des charges informatiques. La virtualisation est un élément constitutif et essentiel de nos infrastructures informatiques contemporaines; elle est une “brique de base” pour tout marché proposant les architectures qui supportent cette charge, dans nos entreprises mais aussi dans le nuage rendant ce modèle possible, parmi d’autres facteurs.

Pour le commun des mortels, la virtualisation peut sembler étrange, voire difficile à comprendre, car il s’agit d’abstraire des composants informatiques matériels et logiciels principalement du côté des serveurs dont les clients ignorent tout du fonctionnement et des enjeux en terme de gestion, de maintenance et d’optimisation.

Mais la virtualisation fait partie d’un paradigme informatique plus large reprenant un phénomène de dématérialisation des services. A titre d’exemple, la virtualisation est un élément essentiel voire constitutif de l’informatique en nuage (Cloud Computing) dans lequel la technologie TCP/IP et l’accès au réseau devient critique. La charge est alors exécutée à distance à partir de requêtes de clients de plus en plus légers et hétérogènes à destination de services virtualisés dans le nuage.

Gartner abandonne le Magic Quadrant x86 Server Virtualization Infrastructure (16 mars 2017).

On trouvera aujourd’hui deux types de virtualisation : la virtualisation matérielle (dématérialisant l’infrastructure) et la virtualisation logicielle (dématérialisant les applications). On trouvera aussi deux types de déploiement de la virtualisation : en local (on-premise), dans l’entreprise, et dans le nuage. Gartner3 nous suggère d’élargir notre vision de la virtualisation des plate-formes x86 d’entreprise de manière bimodale en direction du nuage et de la conteneurisation.

1. Virtualisation

1.2. Objectif de la virtualisation

L’objectif principal de la virtualisation est l’usage efficient de ressources de calcul partagées entre plusieurs entités virtuelles : mémoire, processeur, réseau, stockage sont partagés efficacement dans la perspective d’économies d’échelle. Cet objectif correspond aux principes actuels de gestion des systèmes d’information.

On pourrait résumer ce principe de deux manières : “faire autant avec moins” ou “faire plus avec autant”. Il peut s’agir de gains d’énergie, de place, de maintenance, de gestion, de comptabilité, de robustesse, d’évolutivité, de conception, etc. Bref il s’agit de dimensionner de manière optimale son infrastructure et de répondre aux besoins de l’entreprise de manière souple. Le marché et ses acteurs s’engouffre alors dans cette logique.

Aussi, la virtualisation des serveurs permet une bien plus grande modularité dans la répartition des charges et la reconfiguration des serveurs en cas d’évolution ou de défaillance momentanée (plan de secours, etc.).

1.3. Définition formelle

De manière formelle, la virtualisation consiste en la séparation logique entre, d’une part, les ressources fournissant un service et, d’autre part, le service lui-même.

Mais le terme “virtualisation” en informatique est à mettre en relation avec différentes techniques et en différents contextes, parmi beaucoup d’autres citons les concepts suivants :

  • Dématérialisation
  • Emulation
  • Virtualisation matérielle
  • Virtualisation logicielle
  • Virtualisation d’infrastructure

1.4. Dématérialisation

Par l’intermédiaire de technologies diverses, il est alors possible de dématérialiser les plateformes matérielles, les infrastructures et les services. On peut dématérialiser les serveurs, les bureaux (desktop) informatiques, les emplacements de stockage, l’accès à différents services.

1.5. Emulation matérielle

La virtualisation matérielle n’est pas la même chose que l’émulation matérielle. Avec l’émulation matérielle, une pièce de matériel en imite une autre, tandis qu’avec la virtualisation matérielle, un hyperviseur (une pièce de logiciel) imite une pièce de matériel informatique particulière ou l’ordinateur entier. En outre, un hyperviseur n’est pas la même chose qu’un émulateur ; ce sont tous deux des programmes informatiques qui imitent le matériel, mais leur domaine d’utilisation diffère légèrement.4

L’émulation et la virtualisation sont liées, mais pas identiques. L’émulation consiste à utiliser un logiciel, un émulateur, pour fournir un environnement d’exécution ou une architecture différente. Par exemple, vous pouvez faire fonctionner un émulateur Android sur une machine Windows. L’ordinateur Windows (Intel x86) n’a pas le même processeur qu’un appareil Android (ARM), de sorte que l’émulateur exécute en fait l’application Android par le biais d’un logiciel.5

2. Virtualisation des architectures x86

La virtualisation des ordinateurs x86 consiste à séparer les ressources matérielles (en CPU/RAM, réseau et stockage) des services rendus par ces ressources, à savoir des applications informatiques. Concrètement sur un même ordinateur physique, on pourra créer plusieurs machines virtuelles (VM) distinctes dédiées à des applications spécifiques. En bref, la virtualisation telle qu’on l’entend communément est la mutualisation des systèmes d’exploitation ou d’applications sur un seul ou plusieurs serveurs physiques.

A titre d’exemple, dans le milieu des années 2000, on assiste à ce qu’on appelle la consolidation des centres de données (salle serveurs, datacenters). Elle avait déjà commencé avec la virtualisation du réseau (VLAN) et du stockage (NAS/SAN). La société VMWare très active sur ce segment de marché proposa des produits et des services complets de virtualisation de serveurs à architecture x86. Sur ce segment de marché des concurrents tels que Microsoft ou Citrix menèrent un guerre stratégique. Leur avantage consiste à fournir un environnement de gestion intégré.

2.1. Virtualisation

La virtualisation consiste plutôt à créer des barrières virtuelles entre plusieurs environnements virtuels fonctionnant dans le même environnement physique. La grande différence est que l’environnement virtualisé est la même architecture. Une application virtualisée peut fournir des appareils virtualisés qui sont ensuite traduits en appareils physiques et l’hôte de virtualisation a le contrôle sur la machine virtuelle qui a accès à chaque appareil ou partie d’appareil. L’exécution réelle est le plus souvent encore exécutée en mode natif, et non par logiciel. Par conséquent, les performances de la virtualisation sont généralement bien meilleures que celles de l’émulation.6

2.2. Hyperviseur

Le terme hyperviseur est une variante de superviseur, un terme traditionnel pour désigner le noyau d’un système d’exploitation : l’hyperviseur est le superviseur du superviseur.

Un hyperviseur (ou moniteur de machine virtuelle, VMM) est un logiciel, un micrologiciel ou un matériel informatique qui crée et fait fonctionner des machines virtuelles. Un ordinateur sur lequel un hyperviseur fait tourner une ou plusieurs machines virtuelles est appelé machine hôte, et chaque machine virtuelle est appelée machine invitée.7

2.3. Machine virtuelle

La virtualisation matérielle consiste à présenter les ressources matérielles (CPU/RAM, stockage, réseau entrées/sorties) d’un hôte physique sous forme logicielle et de les partager auprès d’une machine virtuelle. Une machine virtuelle se comporte en tout point comme un véritable ordinateur de telle sorte que sa gestion relève des même principes sauf qu’il ne s’agit plus de gérer des objets physiques mais une réalité technique tel qu’un fichier.

Pour l’essentiel, une machine virtuelle (VM, Virtual Machine) est composée de fichiers qui sont interprétés et lus par l’hyperviseur de l’hôte physique qui partage ses ressources CPU/RAM, stockage et réseau. On trouvera au minimum deux fichiers : celui qui définit la machine virtuelle et celui qui représente un disque qui lui est attaché (une mémoire de masse).

Un fichier de définition formelle de la VM comme une sorte de description d’une carte mère physique qui détermine le type de processeur (CPU), la quantité de mémoire vive (RAM), les différents bus d’entrée et de sortie (I/O) ainsi que le chemin qui indique l’emplacement des disques virtuels. Ce fichier est en général directement lisible en format texte de type “ini” ou en format XML. Les caractéristiques de la VM peuvent être immédiatement données en argument à l’hyperviseur qui l’exécute.

Des fichiers binaires qui représentent les disques des VMs et qui peuvent être dupliqués et manipulés sans limite. On parle alors de l’art de fabriquer des images. Les formats de disques virtuels les plus connus sont vmdk, raw ou encore qcow2. Mais cette mémoire de masse pourrait être un LUN i-SCSI directement connecté à la VM.

On trouvera d’autres fichiers temporaires, des journaux qui ne sont pas nécessairement indispensables à son fonctionnement.

Il existe également un concept distinct de machine virtuelle, comme celles qui exécutent du code Java, .NET ou Flash. Elles peuvent varier d’une implémentation à l’autre et peuvent inclure des aspects d’émulation ou de virtualisation, ou les deux. Par exemple, la JVM fournit un mécanisme permettant d’exécuter des codes d’octets Java. Toutefois, les spécifications de la JVM ne stipulent pas que les codes d’octets doivent être exécutés par un logiciel ou qu’ils doivent être compilés en code natif. Chaque JVM peut faire ce qu’elle veut et, en fait, la plupart des JVM font une combinaison des deux en utilisant l’émulation lorsque c’est approprié et en utilisant un JIT lorsque c’est approprié (le Hotspot JIT est le nom donné à la JVM de Sun/Oracle).8

2.4. Hyperviseur de type 2

“Un hyperviseur de type 2 est un logiciel (généralement assez lourd) qui tourne sur l’OS hôte. Ce logiciel permet de lancer un ou plusieurs OS invités. La machine virtualise ou/et émule le matériel pour les OS invités, ces derniers croient dialoguer directement avec ledit matériel.”

Hyperviseur de type 2

“Cette solution est très comparable à un émulateur, et parfois même confondue. Cependant l’unité centrale de calcul, c’est-à-dire le microprocesseur, la mémoire de travail (ram) ainsi que la mémoire de stockage (via un fichier) sont directement accessibles aux machines virtuelles, alors que sur un émulateur l’unité centrale est simulée, les performances en sont donc considérablement réduites par rapport à la virtualisation.”

“Cette solution isole bien les OS invités, mais elle a un coût en performance. Ce coût peut être très élevé si le processeur doit être émulé, comme cela est le cas dans l’émulation. En échange cette solution permet de faire cohabiter plusieurs OS hétérogènes sur une même machine grâce à une isolation complète. Les échanges entre les machines se font via les canaux standards de communication entre systèmes d’exploitation (TCP/IP et autres protocoles réseau), un tampon d’échange permet d’émuler des cartes réseaux virtuelles sur une seule carte réseau réelle.”9

Exemples :

2.5. Hyperviseur de type 1

“Un hyperviseur de type 1 est comme un noyau système très léger et optimisé pour gérer les accès des noyaux d’OS invités à l’architecture matérielle sous-jacente. Si les OS invités fonctionnent en ayant conscience d’être virtualisés et sont optimisés pour ce fait, on parle alors de paravirtualisation.”

“Actuellement l’hyperviseur est la méthode de virtualisation d’infrastructure la plus performante mais elle a pour inconvénient d’être contraignante et onéreuse, bien que permettant plus de flexibilité dans le cas de la virtualisation d’un centre de données.”10

Hyperviseur de type 1

Exemples :

2.6. Virtualisation totale (Full virtualization)

Dans la plupart des cas, il s’agit de la technique de virtualisation utilisées par les hyperviseurs de type 2. Dans ce cas le matériel est suffisamment émulé pour permettre à un système d’exploitation de fonctionner sans modification.11

Cette approchée a été implémentée en 1966 avec l’ IBM CP-40 et CP-67, prédécesseurs de la familleVM. Les exemples en dehors du secteur des mainframes : Parallels Workstation, Parallels Desktop for Mac, VirtualBox, Virtual Iron, Oracle VM, Virtual PC, Virtual Server, Hyper-V, VMware Workstation, VMware Server (GSX Server), KVM, QEMU, Adeos, Mac-on-Linux, Win4BSD, Win4Lin Pro, et Egenera vBlade technology.

2.7. Virtualisation Hardware-Assisted

Le support de la virtualisation totale peut être intégré au processeur ou assisté par celui-ci, le matériel se chargeant, par exemple, de virtualiser les accès mémoire ou de protéger le processeur physique des accès les plus bas niveau. Cela permet de simplifier la virtualisation logicielle et de réduire la dégradation de performances.12

Des exemples de virtualisation matérielle :

  • Hyperviseur IBM Power & Micro-partitionnement AIX
  • Mainframes : VM/CMS
  • Sun LDOM (hyperviseur pour la gestion de “logical domains”)
  • Sun E10k/E15k
  • HP Superdome
  • AMD-V (Assistance à la virtualisation de AMD, anciennement Pacifica)
  • Intel VT (Assistance à la virtualisation de Intel, anciennement Vanderpool)

Cette technique de virtualisation est aussi connue sous le nom de virtualisation accélérée; Xen appelle cette technique Hardware Virtual Machine (HVM).

Des solutions bien connues qui implémentent les instructions VT-x et AMD-V sur architectures x86 sont par exemple VMware Workstation ou VMWare ESX , Xen 3.x+ (et ses dérivatifs), Linux KVM et Microsoft Hyper-V.

2.8. Paravirtualisation

La paravirtualisation est une réponse à la difficulté de virtualiser une bonne partie de l’ensemble des instructions des processeurs x86. Cette approche connait également des antécédents technologiques.

La paravirtualisation est une technique de virtualisation qui présente à une machine virtuelle une interface logicielle similaire à du matériel réel mais qui est optimisée pour ce type de fonctionnement. Cette approche s’oppose à l’émulation d’un périphérique matériel existant, qui peut s’avérer laborieuse et surtout plus lente.13

La paravirtualisation permet :

  • aux moniteurs de machines virtuelles (VMM) d’être plus simples et
  • aux machines virtuelles fonctionnant dessus d’atteindre un niveau de performance proche du matériel réel.

2.9. Transformation/portage du système d’exploitation invité

Cependant, les systèmes d’exploitation doivent explicitement être transformés afin de fonctionner sur des VMM paravirtualisées. Le portage des systèmes d’exploitation libres est généralement effectué, seulement il appartient aux fournisseurs de systèmes fermés de réaliser le portage eux-mêmes, ce qu’ils peuvent refuser de faire pour des raisons stratégiques.

Le système modifié de la machine virtuelle est capable d’établir des hypercalls (appels hyperviseurs), soit une interface qui lui permet d’interagir plus directement et plus simplement avec le matériel. Des gains de performance sont alors constatés.

Exemples : IBM’sLPARs, Win4Lin 9x, Sun’s Logical Domains, Xen et TRANGO

C’est sur base de cette approche de cette approche que le projet Xen se bat sur le marché de la virtualisation notamment par le canal commercial de la société Citrix Systems.

Suite à la prolifération de solutions de paravirtualisation sous Linux, chacune proposant une adaptation différente du noyau Linux, une solution commune est en cours de développement dans le noyau officiel : virtio. Elle voit ses débuts dans la version 2.6.24 et de nombreuses améliorations sont en cours dans la branche 2.6.25. Cette interface est déjà utilisée par KVM.

Les pilotes “virtio” sont similaires aux “vmware-tools” de VMWare ou “vb-tools” de VirtualBox.

Xen, supporté par Citrix et principal hyperviseur chez AWS, se différencie de par son architecture et son exploitation de la paravirtualisation.14

Architectture Xen

2.10. Synthèse des techniques de virtualisation de plateforme x86

Virtualisation HardwareParavirtualisation
OS invité non modifiéOS invité modifié (Linux/BSD)
La machine virtuelle se comporte comme une machine physiqueLa machine virtuelle connait son statut virtualisé
Peut faire fonctionner WindowsNe peut faire fonctionner que des OS libres, mais aussi MS Windows (en PVHM)

La figure suivante montre la différence entre les virtualisations HVM (et ses variantes), PV et PVH avec Xen.15

La différence entre HVM (et ses variantes), PV et PVH

3. Virtualisation des applications

3.1. Isolateur

“Un isolateur est un logiciel permettant d’isoler l’exécution des applications dans ce que l’on appelle des contextes ou bien zones d’exécution. L’isolateur permet ainsi de faire tourner plusieurs fois la même application dans un mode multi-instance (plusieurs instances d’exécution) même si elle n’était pas conçue pour ça.”

“Cette solution est très performante, du fait du peu de surcharge (temps passé par un système à ne rien faire d’autre que se gérer), mais les environnements virtualisés ne sont pas complètement isolés.”

“La performance est donc au rendez-vous, cependant on ne peut pas vraiment parler de virtualisation de systèmes d’exploitation. Les isolateurs sont en fait composés de plusieurs éléments et peuvent prendre plusieurs formes.”16

Isolateur

Quelques exemples de ce type de virtualisation par isolateur :

3.2. Conteneur

A container is a self contained execution environment that shares the kernel of the host system and which is (optionally) isolated from other containers in the system.17

Un container est un environnement d’exécution complet, autonome :

  • qui partage le noyau du système hôte
  • et qui est éventuellement isolé des autres processus du système.
Virtualisation par container

3.3. Registre d’images de conteneur

Les containers sont les exécutions en mode Lecture/écritures(RW) des images en lecture seule (RO) en tant qu’environnements virtuels.

Images et containers

Une image est un modèle statique d’un système de fichiers en mode Read-Only (RO). Il peut s’agir du rootfs Debian ou de n’importe quelle distribution. On travaille en général à partir d’une image de base.

Notion de couches, de registre.

Gestionnaire de conteneur

Docker et alternatives.

Orchestration de conteneurs

Kubernetes, Swarm.

Architecture Kubernetes (K8s)

4. Infrastructure de virtualisation

Le marché de la virtualisation d’entrprise est un marché mature, dynamique et compétitif qui est typiquement dans l’ère du temps.

Les solutions principales proposées sont :

  • Des hyperviseurs pour créer des machines virtuelles.
  • Les technologies de virtualisation OS (containers ou zones)
  • Gestion administrative de la virtualisation serveur (frameworks de base)
  • Gestion embarquée de la virtualisation serveur (migration live et automation des fonctions gestion administrative)

Mais c’est sans compter d’autres intérêts d’un plus haut niveau tel que les solutions de backup, de recouvrement de désastre, d’automation avancée, de bureaux virtuels, etc. La virtualisation des architectures x86 occupe aujourd’hui une large place dans les offres des fournisseur de services en nuage.

Les projets open source sont largement représentés par leur sponsors commerciaux.

Par ailleurs, on assiste aujourd’hui à un regain d’intérêt pour la virtualisation software (isolateur) notamment via le projet docker.

Une infrastructure virtuelle est constituée de plusieurs éléments eux-mêmes constitué en différentes couches de redondance matérielles ou logiques.

  • Infrastructure réseau TCP/IP
  • Machines physiques supportant un hyperviseur, machine hôtes hébergeant les VM les invités.
  • Stockage local sur l’hôte ou partagé sur le réseau.
  • Une interface de gestion accessible en console, via un API tiers ou intégré.

4.1. Réseau TCP/IP et LAN virtuels

Typiquement une infrastructure virtualisée repose sur un ensemble d’éléments interconnectés entre par le réseau en TCP/IP. L’infrastructure physique du réseau doit comporter les mêmes caractéristiques d’évolutivité, de dimensionnement adéquat, de robustesse, de redondance et de fiabilité. Les notions de commutation, de LAN virtuels et de routage sont mis en oeuvre.

4.2. Machine hôte et invités

Les machines physiques sont connectées à une infrastructure commutée et dispose d’un accès au réseau TCP/IP. Ces machines physiques peuvent être construite sur différents types de modèles de serveur en rack ou barebone.

Les hyperviseurs sont hébergés sur des machines hôtes qui exécutent les commandes de machines virtuelles invitées. Les VMs ne sont en fait que des modèles formels d’environnements d’exécution très bien isolés. Les emplacements de stockage ne sont pas virtualisés par l’hyperviseur même s’il peuvent être directement attachés à la machine hôte.

4.3. Stockage

Les emplacements de stockage contiennent :

  • les définitions des machines virtuelles (fichiers de configuration)
  • ainsi que les disques virtuels utilisés par celles-ci.

On préconisera une infrastructure d’accès au stockage robuste, fiable et évolutive. Des technologies comme iSCSI, FC, LVM ou DRBD sont préconisées. La redondance physique sera assurée par la technologie RAID adaptée.

Catégories de stockage

On trouvera quatre types de stockage :

  • DAS (Direct Attached Storage), un emplacement local en général, de type SCSI
  • SAN FC (Storage Area Network en Fiber Channel)
  • Très populaire, iSCSI supporté sur de plus en plus de solutions.
  • Des protocoles de partage en NAS (Network Attached Storage) tels que NFS ou CIFS (Microsoft).

Disques physiques

Ces disques réels doivent être formatés et organisés logiquement. De gros constructeurs disposent de leur solutions fermées. Dans les standards et/ou ouverts, on trouvera iSCSI, LVM, DRBD ou d’autres type de format de données.

Distributions / Appliances Open Source

4.4. Interface de gestion

L’ensemble des ressources (réseau, stockage, CPU/RAM/hosts) peut être administré localement et de manière hétérogène via une interface centrale de gestion accessible à travers une machine cliente du réseau. Citrix XenServer Center ou VMWare Vsphere Center propose ce type de logiciel fonctionnant de manière autonome ou sur une machine de gestion indépendante. Dans le contexte de l’informatique en nuage, on parlera de logiciel d’orchestration, et à d’autres niveaux de « boîtes à outil » et d’API permettant de développer des interfaces tierces.

4.5. Fonctionnalités avancées

Entre autres et sous certaines conditions techniques et financières, ce type d’infrastructure permet au marché de proposer des solutions en terme :

  • de snapshots
  • de répartition de charge
  • de reconfiguration ou de maintenance des hôtes
  • de migration ou de mise à jour
  • de sauvegarde consolidée
  • de plan Disaster Recovery
  • de réplication de site
  • de supervision et de gestion du réseau et des systèmes
  • des migrations P2V (Physique vers Virtuel)
  • de réseau virtuel

Pour arriver à ces solutions les acteurs du marché s’associent ponctuellement, publient et utilisent des standards.

4.6. Techniques de migration

De manière sous-jacente ce sont les techniques de migration qui permettent de proposer ces solutions. On trouvera trois techniques de migration appréhendées et gérées par les différents constructeurs de manière différente. On distinguera :

  • La relocation froide
  • La migration chaude
  • La migration live

Fondamentalement, on retiendra que la migration consiste à déplacer de manière cohérente les trois éléments clés d’une VM : CPU/RAM, réseau, et stockage. Ces techniques se distinguent selon la complexité de mise en oeuvre et le temps d’interruption connu.

La relocation froide

But : Déplacer un invité entre des hôtes sans stockage partagé ou avec différentes architectures ou versions d’hyperviseur en encore du P2V.

Processus :

  • Arrêter l’invité sur l’hôte source
  • Déplacer l’invité d’un système de fichier à un autre (disques de la VM et fichiers de configuration)
  • Démarrer l’invité sur l’hôte de destination.
AvantagesLimites
Solutions de maintenance matérielle connaissant l’interruption la plus courteC’est le processus le plus manuel
Pas de stockage partagé nécessaireLe service sera interrompu pendant la copie
Les emplacements de stockage peuvent être différents 
La VM originale peut connaître de multiples copies et duplications 

La migration chaude

But : Déplacer un invité entre des hôtes pendant que la disponibilté n’est pas critique.

Processus :

  • L’invité se met en pause d’exécution
  • L’invité (soit ses fichiers) sont transférés à travers le réseau
  • L’invité reprend ses activités sur l’hôte de destination
AvantagesLimites
L’invité et ses applications ne sont pas interrompusPendant le temps du transfert, soit assez court, l’hôte ne répondu pas dans l’interface de gestion et sur le réseau
Moins de données à transférer que dans le cas d’une migration liveNécessite un stockage partagé sur le réseau

La migration live

But : utilisé pour la répartition de charge, la maintenance matérielle et la gestion de l’énergie.

Processus :

  • Commence à transférer l’invité en l’état au nouvel hôte.
  • Copie à la volée la mémoire RAM de l’invité de manière répétitive (pour assurer la continuité)
  • Reconfigure les connexions réseau et l’hôte continue à exécuter ses applications sans interruption du réseau.
AvantagesLimites
Pas d’interruption de serviceNécessiterait un stockage et un réseau partagés
Permanence de la connectivitéL’hôte de destination doit disposer de ressources suffisantes
Bref, disponibilité totaleLes hôtes doivent être configurés de manière similaires

4.7. Apprendre la virtualisation

L’auteur de ces pages a publiés quelques propos sur la virtualisation :

5. Impact de l’informatique en nuage

Un nuage : Un nuage représente une infrastructure dont on ne connaît pas vraiment la nature ou la topologie exacte et qui permet d’accéder à un réseau distant. Il s’agit typiquement d’un nuage Internet (au sens propre comme représentant un accès au réseau public) ou d’une simplification dans un diagramme.

Symbole réseau du Nuage

Avec l’informatique en nuage, du trafic d’entreprise pourrait arriver dans des centres de données externes à celle-ci.

Dans le cadre de ce modèle, certains services d’infrastructure se virtualisent jusqu’à être disponibles et utilisés en tant que services. On pensera aux plateformes virtuelles Cisco CSR1000v ou ASAv, ou encore la programmabilité des plateformes IOS XE, notamment en Python. Le modèle de déploiement des infrastructures Wi-fi Cisco Meraki à travers une interface Web sur un serveur chez Cisco est encore un autre exemple. Si on est curieux et informaticien chevronné, on peut déjà prendre un compte sur Cisco Devnet où le “réseau est code”.

5.1. Définition du Cloud Computing

Le NIST donne sa définition du Cloud Computing. Le Cloud Computing se définit selon le NIST en 5 caractéristiques essentielles, 3 niveaux de service et 4 modèles de déploiement.

Cinq Caractéristiques Essentielles

  1. Un service en libre-service à la demande ;
  2. accessible sur l’ensemble du réseau;
  3. avec une mutualisation des ressources;
  4. rapidement élastique (adaptation rapide à une variation à la hausse ou à la baisse du besoin);
  5. mesurable (mesure et affichage des paramètres de consommation).

Si l’une de ces conditions ne sont pas remplies, il ne s’agit pas d’une technologie qui peut être vendue comme une technologie en nuage.

Trois niveaux de service

Le modèle propose trois niveaux de services qui départagent les responsabilités entre le fournisseur du service en nuage et son client :

  1. IaaS : Infrastructure as a Service; calcul (proc/ram), stockage, réseau ;
  2. PaaS : Plateform as a Service; un stack LAMP par exemple ;
  3. SaaS : software as a Service : commander et utiliser un logiciel en ligne (logiciel de facturation, un CRM, une suite bureautique, …).

Quatre modèles hiérarchiques de déploiement

  1. le nuage public (ouvert au public);
  2. le nuage privé (pour une même organisation);
  3. le nuage communautaire (pour une communauté d’utilisateurs ou d’organisations);
  4. le nuage hybride (plusieurs types de nuages).

5.2. Niveaux de service

Le niveaux de service correpond au niveau de responsabilité18

Cloud Computing : les différents modèles de services

Infrastrustructure as a Service

Définition Infrastrustructure as a Service.

Services de base :

  • Calcul (Compute) : virtualisation
  • Stockage bloc : pour les images et les mémoires de masse des machines virtuelles
  • Commutateur/Routeur/pare-feu virtuel : pour interconnecter les machines virtuelles
  • Stockage objet : pour le stockage de fichier

Le Baremetal-as-a-Service définition.

Le dernier Magic Quadrant “Infrastructure as a Service (IaaS) Worlwilde 2019” donne la liste des prestataires mondiaux parmi d’autres plus locaux ou plus spécialisé : AWS, Azure, Google Cloud Plateform (GCP) sont les grands noms à suivre.

Gartner Magic Quadrant "Infrastructure as a Service (IaaS) Worlwilde 2019"

Beaucoup de critères éléminatoires sont pris en compte :

Sources : AWS Named as a Leader in Gartner’s Infrastructure as a Service (IaaS) Magic Quadrant for the 9th Consecutive Year, Magic Quadrant for Cloud Infrastructure as a Service, Worldwide, 2019

La taille du marché IaaS devrait croître de manière exponentielle dans les années qui viennent.

Public cloud infrastructure as a service (IaaS) and related platform as a service (PaaS) revenue worldwide from 2016 to 2027 (in billion U.S. dollars)

Source : Public cloud infrastructure as a service (IaaS) and related platform as a service (PaaS) revenue worldwide from 2016 to 2027 (in billion U.S. dollars), Statista

Container-as-Service

Middelware. PaaS.

  • Container-as-a-service
  • Container-registrey-as-service
  • Kubernetes-as-service
  • Function-as-a-Service

5.3. Offres publiques et solutions privées

Source : RightScale 2019 State of the Cloud-Report from Flexera

Public Cloud Adoption, RightScale 2019 State of the Cloud-Report from Flexera
Private Cloud Adoption, RightScale 2019 State of the Cloud-Report from Flexera

5.4. Ressources nécesaires en connectivité

Quatre services techniques19 sont essentiels pour supporter un haut niveau de flexibilité, de disponibilité des ressources et en transparence des ressources en connectivité indispensables au cloud computing :

  • Le réseau L3 offre des interconnexions habituelles entre sites distants et fournit un accès au cloud au utilisateurs finaux.
  • Le “LAN étendu” entre deux ou plusieurs sites offre un transport transparentet supporte la mobilité des applications et des systèmes d’exploitation.
  • Un service “SAN étendu” assure l’accès aux données et la réplication de données.
  • La localisation IP améliore le trafic “northbound” et “southbound” autant que les flux serveur-à-serveur.

5.5. Impact sur les opérations réseau

On notera au moins deux impacts pour ceux qui s’occupent des infrastructures réseaux.

D’une part, les architectures de conception seront modifiées au profit d’une séparation stricte entre le plan des données et le plan de gestion.

D’autre part, le plan de gestion sera notamment accessible non plus via des consoles physiques ou virtuelles dédiées à chaque périphérique mais via une couche supplémentaire supportée par un “contrôleur”. Ce dernier dispose d’une interface API REST qui facilite la mise en forme de code (le codage) des infrastructures notamment grâce à l’usage du protocole HTTP et d’un langage de programmation comme Python.

5.6. Infrastructure as a Code (IAC)

“L’infrastructure en tant que code (IAC) est un type d’infrastructure informatique que les équipes d’exploitation peuvent automatiquement gérer et provisionner via du code, plutôt que d’utiliser un processus manuel. L’infrastructure en tant que code est parfois appelée infrastructure programmable.”20

5.7. SDN et NFV

On distinguera les deux concepts d’architecture SDN et NFV.

  • SDN (Software Defined Network) : architecture qui sépare physiquement le plan de contrôle du plan de transfert de données et dans laquelle le plan de contrôle dirige plusieurs périphériques. ONF, SDN Definition.
  • NFV (Network Functions Virtualization) : est une architecture qui utilise des technologies de virtualisation pour gérer des fonctions essentielles du réseau grâce à des logiciels plutôt qu’avec du matériel. Le concept NFV se fonde sur des blocs de fonctions vitualisées du réseau qui peuvent être combinées pour fournir un service réseau sur mesure et évolutif. Concrètement, ces fonctions sont exécutées par des machines virtuelles au dessus du matériel ; ce sont des routeurs, des switches, des serveurs ou des systèmes de cloud computing. Les fonctions proposées sont la sécurité et le pare-feu, le NAT, le DNS, les caches , des services de détection d’intrusion (IDS), etc. NFV – Network Functions Virtualization

NFV et SDN utilisent tous les deux une couche d’abstraction. Alors que SDN cherche à séparer le contrôle et le transfert, NFV met une couche d’abstraction dans les fonctions de transfert du réseau (et autres) assurés par du matériel. Les deux concepts s’implémentent de manière complémentaires mais existent aussi indépendamment l’un de l’autre.

5.8. Architecture Network Virtualization

Une architecture “Network virtualization” est composée de trois éléments :

  • Network access control and segmentation of classes of users: “Users are authenticated and either allowed or denied into a logical partition. Users are segmented into employees, contractors and consultants, and guests, with respective access to IT assets. This component identifies users who are authorized to access the network and then places them into the appropriate logical partition.”
  • Path isolation: “Network isolation is preserved across the entire enterprise: from the edge to the campus to the WAN and back again. This component maintains traffic partitioned over a routed infrastructure and transports traffic over and between isolated partitions. The function of mapping isolated paths to VLANs and to virtual services is also performed in component.”
  • Network Services virtualization: “This component provides access to shared or dedicated network services such as security, quality of service (QoS), and address management (Dynamic Host Configuration Protocol [DHCP] and Domain Name System [DNS]). It also applies policy per partition and isolates application environments, if required.”

Références :

http://www.cisco.com/c/en/us/products/collateral/switches/catalyst-6500-series-switches/white_paper_c11-531522.pdf

https://www.cisco.com/c/en/us/products/collateral/switches/catalyst-6500-series-switches/white_paper_c11-531522.html

5.9. APIs

Un API, interface de programmation applicative (application programming interface), est une méthode d’échange de données d’une application avec une autre. Bien que l’on se réfère au terme “interface”, il s’agit d’interfaces logicielles et non matérielles.

Les méthodes et protocoles suivants sont des sortes d’API, soit des interfaces de gestion :

  • API HTTP REST
  • SSH
  • SNMP, CDP
  • Openflow
  1. La virtualisation n’est pas une technique récente. Bien qu’elle ait pris son essor récemment, elle a été envisagée dès la conception des premiers ordinateurs. Pour une perspective historique de la virtualisation, on peut se référer à d’autres sources : en français https://fr.wikipedia.org/wiki/Virtualisation#Historique et en anglais à https://en.wikipedia.org/wiki/Timeline_of_virtualization_development

  2. Elle lui est probablement intrinsèque tel que l’évoque le modèle abstraut de la machine de Turing

  3. The future of server virtualization, source de l’image : Gartner abandonne le Magic Quadrant x86 Server Virtualization Infrastructure (16 mars 2017). 

  4. Source : Hypervisor

  5. Source : Full emulation vs. full virtualization, Stack Overflow 

  6. Source : Full emulation vs. full virtualization, Stack Overflow 

  7. Source : Hypervisor 

  8. Source : Full emulation vs. full virtualization, Stack Overflow 

  9. Source du texte et de l’image : Virtualisation et Hyperviseur de type 2

  10. Source du texte et de l’image : Virtualisation et Hyperviseur de type 1

  11. Source : Full virtualization 

  12. Source : Hardware-assisted virtualization 

  13. Paravirtualisation 

  14. Source de l’image : https://wiki.xen.org/images/6/63/Xen_Arch_Diagram.png 

  15. Xen Project 

  16. Source du texte et de l’image : Virtualisation et Isolateur 

  17. https://github.com/docker/libcontainer 

  18. Source de l’image : Cloud Computing : les différents modèles de services 

  19. https://www.cisco.com/c/en/us/products/collateral/ios-nx-os-software/ios-xr-software/white_paper_c11-694882.html 

  20. Paradigme Infrastructure as a Code : “Infrastructure as Code (IAC) is a type of IT infrastructure that operations teams can automatically manage and provision through code, rather than using a manual process. Infrastructure as Code is sometimes referred to as programmable infrastructure.” (What is Infrastructure as Code (IAC)? - Definition from WhatIs.com