0% ont trouvé ce document utile (0 vote)
911 vues199 pages

Virtualisation et Cloud en L3 Informatique

Ce document traite de l'histoire de la virtualisation et du cloud computing. Il décrit les évolutions techniques qui ont mené au développement des machines virtuelles et du cloud, notamment les systèmes distribués, la virtualisation et les datacenters.

Transféré par

ziedfilali272001
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
911 vues199 pages

Virtualisation et Cloud en L3 Informatique

Ce document traite de l'histoire de la virtualisation et du cloud computing. Il décrit les évolutions techniques qui ont mené au développement des machines virtuelles et du cloud, notamment les systèmes distribués, la virtualisation et les datacenters.

Transféré par

ziedfilali272001
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Virtualisation

&
Cloud Computing

Leila GHORBEL

Département Niveau Spécialité


Informatique Licence 3 Génie Logiciel et Systèmes d’Information

2023-2024

1
Introduction
Un peux d’histoire !

La naissance:

• Les systèmes distribués ont parcouru un long chemin depuis leur


création.
• Au tout début, un ordinateur ne pouvait effectuer qu'une tâche à la
fois.
• Si plusieurs tâches doivent être effectuées en parallèle, plusieurs
ordinateurs doivent fonctionner en parallèle.
• Mais leur exécution en parallèle ne suffisait pas pour construire un
système véritablement distribué, car elle nécessite un mécanisme
pour communiquer entre différents ordinateurs (ou programmes
exécutés sur ces ordinateurs).

2
Introduction
Un peux d’histoire !

La communication:
• Cette nécessité d’échanger (partager) des données sur
plusieurs ordinateurs a suscité l'idée d'une
communication orientée message, dans laquelle deux
ordinateurs partagent des données a l'aide d'un message
qui les encapsule.
• Il y avait peu d'autres mécanismes comme le partage de
fichiers et le partage de base de données.

3
Introduction
Un peux d’histoire !

Les architectures orientées service SOA:


• L’invention des OS multitâches, tels que Windows et Unix, a
permis aux développeurs de créer et d’exécuter des
systèmes distribués complets .
• Cela a conduit à l'architecture SOA, dans laquelle chaque
système distribué pourrait être construit en intégrant un
ensemble de services exécutés sur un ou plusieurs
ordinateurs .
• Les interfaces de service ont été correctement définies via
un WSDL (pour SOAP) ou un WADL (pour REST) et les
consommateurs de service ont utilisé ces interfaces pour
leurs implémentations côté client.

4
Introduction
Un peux d’histoire !

La popularité des APIs REST :


• Avec la popularité d'Internet et la simplicité du modèle, la
communication basée sur REST est devenue plus
populaire que le modèle de communication basé sur
SOAP .
• Cela a conduit a l‘évolution de la communication basée
sur l'interface de programmation d'application (API) sur le
modèle REST.
• Vous pouvez vous représenter une API comme un
médiateur entre les utilisateurs ou clients et les
ressources ou services web auxquels ils souhaitent
accéder.
• Pour une entreprise, c'est aussi une solution pour
partager des ressources et des informations, tout en
maintenant un certain niveau de sécurité
5
Introduction
Un peux d’histoire !

Les machines virtuelles :

• Puis vient le grand moment des systèmes distribués


• L’importance des entreprises basées sur Internet telles
que Facebook, Google, Amazon, Netflix, LinkedIn et
Twitter est suite à ce qu’elles voulaient créer des
systèmes distribués couvrant plusieurs zones
géographiques et plusieurs centres de données.
• Les ingénieurs ont commencé à réfléchir au concept
d'un seul ordinateur .
• Au lieu de considérer un ordinateur comme un
ordinateur unique, ils réfléchissent à un moyen de créer
plusieurs ordinateurs virtuels sur le même ordinateur .
• Cela conduit a l'idée de machines virtuelles ou un
même ordinateur peut agir comme plusieurs
ordinateurs et les exécuter tous en parallèle. 6
Introduction
Un peux d’histoire !

Le cloud computing :

• La technologie de virtualisation rend possible le cloud


computing.
• Les fournisseurs de cloud computing mettent en place
et entretiennent leurs propres datacenters.
• Ils créent différents environnements virtuels qui utilisent
les ressources matérielles de base.
• Vous pouvez ensuite programmer votre système pour
qu'il accède à ces ressources en cloud à l'aide des
APIs.

7
Introduction
Un peux d’histoire !

Vue sur un datacenter


Amazon

Déploiement des datacenters


de google dans le monde

8
Introduction
Retour en arrière sur le fonctionnement d’un ordinateur

9
Introduction
Retour en arrière sur le fonctionnement d’un ordinateur

10
Introduction
Retour en arrière sur le fonctionnement d’un ordinateur: Hardware

Processeur:
• CPU (Computer Processing Unit), le processeur est la partie de l'ordinateur qui exécute les programmes logiciels
en effectuant des opérations mathématiques, logiques et d'entrée/sortie.
• C'est la partie du matériel informatique qui résout les problèmes

RAM (Random Access Memory):


Contient les programmes à exécuter et les données actuellement utilisées par le processeur.

ROM (Read Only Memory):


• Il s'agit d'un type de mémoire non volatile qui stocke un logiciel appelé BIOS
• Ce type de logiciel est responsable au démarrage du matériel
• La ROM ne s'efface jamais lorsque vous éteignez l'ordinateur
Carte mère:
PCB (Printed Circuit Board) qui contient le processeur, la RAM, la ROM, le réseau et les ports I/O (Input/Output),
ainsi que d'autres composants.

Stockage:
Un dispositif de stockage persistant (non volatile) tel qu'un disque dur (HDD) ou un disque SSD (Solid State Drive).
11
Introduction
Retour en arrière sur le fonctionnement d’un ordinateur: Software (Logiciel)

Logiciel système:
• sert d'interface entre le logiciel d'application et le matériel de l'ordinateur.
• est conçu pour gérer les ressources système et fournit également une plate-forme à l'exécution du logiciel d'application
Logiciel d'application:
• constitue une interface entre l'utilisateur et le logiciel système.
• conçu pour que les utilisateurs puissent effectuer leurs tâches spécifiques
Base de comparaison Logiciel système Logiciel d'application

gère les ressources système et fournit une plate-forme pour l'exécution exécute des tâches spécifiques pour lesquelles ils
De base
du logiciel d'application. ont été conçus.

est écrit dans un langage de bas niveau, c'est-à-dire un langage est écrit dans un langage évolué tel que Java, C ++,
La langue
d'assemblage. .net, VB, etc.
commence à s'exécuter lorsque le système est allumé et s'exécute jusqu'à s'exécute au fur et à mesure des demandes de
Exécution
ce que le système soit arrêté. l'utilisateur.

n'est même pas nécessaire pour exécuter le


Exigence Un système ne peut pas fonctionner sans logiciel système.
système; c'est spécifique à l'utilisateur.

Objectif est polyvalent. est spécifique.


Microsoft Office, Photoshop, logiciel d'animation,
Exemples Système d’exploitation.
etc.

12
Introduction
Qu’est ce qu’un serveur?

De nos jours, les utilisateurs (tel que les entreprises) investissent beaucoup plus dans leurs
infrastructures informatiques afin d'améliorer leur efficacité et fiabilité.
Il existe des solutions traditionnelles et virtuelles
✓ serveurs physiques représentent les puissants déploiements de centres de données traditionnels
✓ serveurs virtuels offrent aux entreprises des services innovants, centrés sur le cloud computing,
adaptés aux besoins du futur.

13
Introduction
Qu’est ce qu’un serveur?

Serveur physique:
très similaire à un ordinateur conventionnel, possède une mémoire, un processeur, une connexion réseau et
un disque dur ainsi qu'un système d'exploitation (OS) pour exécuter des programmes et des applications.
est mis à disposition d'un seul client (ex. accessible que par les membres d’une entreprise)
il existe différents types de serveurs physiques qui varient en fonction de leur rôle dans le réseau :
✓ Serveur Web : utilisé pour enregistrer des contenus Web et assurer l'accessibilité aux utilisateurs de
manière sûre.
✓ Serveur Proxy : utilisé comme une interface de communication dans des réseaux d’ordinateurs pour
filtrer les communications et contrôler la bande passante.
✓ Serveur de fichiers : utilisé pour le stockage de fichiers de données pour plusieurs clients.
✓ Serveur de bases de données : fonctionne comme un programme informatique permettant à
d’autres programmes d'accéder à un ou plusieurs systèmes de bases de données sur un réseau.
✓ Serveur d'impression : plusieurs ordinateurs peuvent être connectés à distance à ce type de serveur
pour imprimer des fichiers.
✓ Serveur email : utilisé pour recevoir et expédier des courriers électroniques.

14
Introduction
Qu’est ce qu’un serveur?

Serveur physique:

15
Introduction
Qu’est ce qu’un serveur?

Serveur physique:
La puissance de calcul, la capacité de stockage et la performance d'un serveur dépend de nombreux
critères y compris le format : tour, rack, ou lame

16
Introduction
Qu’est ce qu’un serveur?

Serveur physique:
✓ Format tour :
− ressemble de près à une unité centrale d'ordinateur fixe.
− il peut être installé dans n'importe quelle pièce de l'entreprise, contrairement aux serveurs
racks ou lames, qui nécessitent une baie pour fonctionner.

17
Introduction
Qu’est ce qu’un serveur?

Serveur physique:
✓ Format rack
est conçu pour être disposé dans des baies, c'est à dire des armoires équipées pour installer les
différents matériels informatiques.

18
Introduction
Qu’est ce qu’un serveur?

Serveur physique:
✓ Format lame (ou blade)
sont les derniers nés des formats de serveur. Compact, et mince... comme une lame, ils se
glissent verticalement dans un casier dédié.

19
Introduction
Qu’est ce qu’un serveur?

Serveur virtuel:
ne fonctionne pas sur un ordinateur physique mais sur un logiciel spécialisé, également appelé hyperviseur.
est un système permettant de convertir un serveur physique en plusieurs machines virtuelles (VM)
indépendantes qui agissent de manière autonome comme un dispositif physique.
est capable d'exécuter son propre système d'exploitation (OS), en utilisant des techniques de virtualisation.
peut être migré facilement vers l'environnement cloud

20
Virtualisation
Pourquoi virtualiser: Architecture classique

21
Virtualisation
Pourquoi virtualiser?
Les serveurs sont de plus en plus accessibles
✓ Hardware de plus en plus performant

+
Les éditeurs (Microsoft, distribution Linux) recommandent une application/service par système d’exploitation
✓ Un serveur pour le DNS
✓ Un serveur pour le mail
✓ Un serveur pour NFS
✓ Etc.
=>
Une multiplicité de serveurs dans les datacenters (ou salles serveurs dans les entreprises)
80% ont une utilisation moyenne inférieure à 10%
Des coût d’exploitation/maintenance (personnel du service informatique) qui croissent avec le nombre de serveurs
Des coût en place: les salles serveurs ne sont pas indéfiniment extensibles
Des coût en climatisation/électricité élevés

Ne jamais négliger ces coûts


22
Virtualisation
Qu'est-ce que la virtualisation ?

L’ensemble des techniques qui permet de faire tourner plusieurs systèmes d’exploitation sur une machine
simultanément comme s’ils fonctionnaient sur des ordinateurs distincts
De la même façon que l'on fait fonctionner plusieurs programmes sur un même OS (multi-tâches) nous savons faire
fonctionner plusieurs OS sur un même hardware (virtualisation)
C’est pas du multi-boot

23
Virtualisation
Qu'est-ce que la virtualisation ?

Simulation, Emulation, d’un environnement réel de façon virtuelle, logique, etc. en ayant recours à des outils logiciel
(VLAN: Un réseau local virtuel, Machine virtuelle, etc.)

La virtualisation est un ensemble de techniques matérielles et/ou logicielles qui autorisent l’exécution de plusieurs
applications (Systèmes) indépendantes sur une même machine hôte.

On parle souvent d’environnement virtuel (Virtual Environment – VE) ou de serveur privé virtuel (Virtual Private Server
– VPS) lorsqu’une machine exploite la virtualisation.

Pour bénéficier de cette technologie, il suffit d’équiper une machine d’un logiciel de virtualisation permettant d’ajouter
une couche de virtualisation, appelée hyperviseur.

L’hyperviseur masque les véritables ressources physiques de la machine.

Propose des ressources différentes et spécifiques en fonction des applications qui tournent (nouvelle configuration).

Il y a indépendance entre le matériel et les applications.

24
Virtualisation
Qu'est-ce que la virtualisation ?

Principes:

Le cloisonnement : chaque système d’exploitation a un fonctionnement indépendant, et ne peut interférer avec les
autres en aucune manière.

La transparence : le fait de fonctionner en mode virtualisé ne change rien au fonctionnement du système


d’exploitation.

La transparence implique la compatibilité : toutes les applications peuvent tourner sur un système virtualisé, et leur
fonctionnement n’est en rien modifié.

25
Virtualisation
Qu'est-ce que la virtualisation ?
Cas d’utilisation:
tester un OS sans l'installer sur votre machine physique
s’assurer de la compatibilité d’une application avec différents OS
utiliser une application dans un environnement particulier
utiliser les fonctionnalités spécifiques d’un OS
simuler une 2e machine et faire des tests de communication simples
créer un petit réseau de plusieurs machines
simuler des environnements multi-OS
mutualiser des serveurs physiques et faire des économies
partager un serveur physique en plusieurs serveurs virtuels
rendre une architecture hautement disponible (HA) en améliorant sensiblement sa tolérance aux pannes
migrer des serveurs virtuels sur de nouveaux serveurs physiques
déployer un serveur virtuel à la volée
faciliter les opérations de maintenance 26
Virtualisation
Qu'est-ce que la virtualisation ?

Avantages Inconvénients

Moins de serveurs physiques Plusieurs environnements virtuels s’exécutent sur une


Économie sur le matériel unique machine physique
Usage optimale des ressources Machine physique en panne=> suspension de tous les
Une meilleure disponibilité services
De meilleures performances Le recours à des machines puissantes.
Une meilleure sécurité Les outils de virtualisations sont généralement
Un gain dans les coûts gourmandes en ressources.
La portabilité Bien qu’elle soit implémentée sur des machines
Un monitoring simplifié puissantes, la virtualisation peut réduire les performances
De la haute disponibilité des applications.
Réduction de l’impact environnemental Suivant le type de virtualisation envisagé, cette perte de
Dr. MENNOUR R. . performances peut ou non être significative.

27
Virtualisation
Composants d’un système virtuel

Le système hôte (host) est l’OS principal de l’ordinateur.

Le système invité (guest) est l’OS installé à l’intérieur d’une machine virtuelle.

Une machine virtuelle (VM) est un ordinateur virtuel qui utilise un système invité.

Un ordinateur virtuel est aussi appelé serveur privé virtuel (Virtual Private Server ou VPS) ou environnement

virtuel (Virtual Environment ou VE)

28
Virtualisation
Composants d’un système virtuel

La machine virtuelle
✓ un système informatique virtuel conteneur de logiciels parfaitement isolé intégrant un système
d’exploitation et des applications.
✓ chaque VM autonome est entièrement indépendante.
✓ l’installation de plusieurs VM sur un ordinateur permet d’exécuter différents systèmes d’exploitation et
applications sur un seul et même serveur physique, ou « hôte ».
✓ Une fine couche logicielle, appelée hyperviseur, dissocie les machines virtuelles de l’hôte, et alloue
dynamiquement des ressources informatiques à chaque machine selon les besoins.
✓ Quelque soit la technologie utilisée, une machine virtuelle se compose de deux éléments :
✓ ressources : part de CPU alloues, mémoire vive autorisée, nombre de cartes réseau virtuelles.
✓ données : comme un serveur normal, on doit disposer d’un système d’exploitation, de bibliothèques,
d’outils, d’applications et de leurs données.

29
Virtualisation
Composants d’un système virtuel

La machine virtuelle: les fichiers


✓ Lorsqu'une machine virtuelle est créée, elle apparaît sur l'ordinateur hôte sous la forme d'un ensemble de fichiers.
✓ Elle est généralement stockée dans un répertoire, créé par l'hyperviseur

Type de fichier Nom du fichier Description


Log file <vmname>.log Conserve un journal de l'activité de la VM et est utilisé pour le dépannage.
BIOS file <vmname>.nvram Il s'agit du fichier qui stocke l'état du BIOS de la machine virtuelle.
Virtual disk file <vmname>.vmdk Stocke le contenu de l'unité de disque de la VM. Un disque virtuel est
composé d'un ou plusieurs fichiers .vmdk. Le nombre de fichiers .vmdk
dépend de la taille du disque virtuel.
Snapshot file <vmname>.vmsd Il s'agit d'un fichier centralisé permettant de stocker des informations et des
<vmname>.vmsn métadonnées sur les instantanés.
Suspend state <vmname>.vmss Il s'agit du fichier d'état suspendu, qui stocke l'état d'une machine virtuelle
file suspendue.
Configuration file <vmname>.vmx Stocke des informations, telles que le nom de la VM, les informations du
BIOS, le type de système d'exploitation invité et la taille de la mémoire.
30
Virtualisation
Hyperviseur

Pour créer des machines virtuelles (guest machines) sur une machine physique
(host machine), nous avons besoin d’un logiciel hyperviseur.
Un logiciel hyperviseur émule ou virtualise les composants de la machine physique
en divisant le CPU, RAM, Disque dur et les cartes réseaux, et assigner ces
ressources aux machines virtuelles (guest).
La couche logicielle rendant la virtualisation possible
S’exécute au dessous de toutes les VMs pour les gérer
Assure le contrôle des processeurs et des ressources de la machine physique
Hôte
Alloue à chaque MV les ressources dont elle a besoin
S’assure que les MV ne s’interférent pas (assurer l'isolation et la sécurité entre les
MV)
Les hyperviseurs sont divisés en deux types indiquant leur mode de
fonctionnement: Hyperviseur type 1 (Bare metal) et Hyperviseur Type 2 (Host metal)

31
Virtualisation
Hyperviseur

Hyperviseur type 1 : Bare metal


✓ s’exécuter directement sur le hardware
✓ est un noyau hôte allégé et optimisé pour ne faire tourner initialement que des noyaux de
systèmes d’exploitation invités adaptés et optimisés à cette architecture spécifique, ces
systèmes invités ayant "conscience" d’être virtualités
✓ pour des processeurs ayant les instructions de virtualisation matérielle (AMD -V et Intel VT),
le système d’exploitation invité n’a plus besoin d’être modifié pour pouvoir être exécuté dans
un hyperviseur de type 1
✓ outil de contrôle de l’OS Hôte
✓ le modèle d’hyperviseur le plus répondu en entreprise
✓ exemples : XEN, Oracle VM, Microsoft Hyper-V, VMware ESX

32
Virtualisation
Hyperviseur

Hyperviseur type 2 : Host metal


✓ S’exécute à l’intérieur d’un OS Hôte
✓ s’exécute en troisième niveau au dessus du matériel
✓ C’est le modèle préféré souvent par les utilisateurs de machines Lap Top ou DeskTop
✓ exemples : VMware Workstation, VMware Fusion, l’hyperviseur open source QEMU, les
produits Microsoft Virtual PC et Virtual Server, VirtualBox d’Oracle, de même que Parallels
Workstation de SWsoft et Parallels Desktop

33
Virtualisation
Hyperviseur

Rôle d’un OS

Partage le processeur entre plusieurs processus

Partage la mémoire entre plusieurs processus

Partage les I/O des périphériques entre plusieurs processus

Rôle de l’hyperviseur

Permettre ces mécanismes pour chaque OS invité, lui


permettant de croire qu’il est le seul sur la machine

Intercepter les communications avec les interruptions et


simuler de façon logicielle les interfaces

34
Virtualisation
Techniques de virtualisation

Virtualisation complète
La virtualisation est dite complète lorsque le
système d'exploitation invité n'a pas conscience d'être
virtualisé.

L'OS qui est virtualisé n'a aucun moyen de savoir


qu'il partage le matériel avec d'autres OS.

Ainsi, l'ensemble des systèmes d'exploitation


virtualisés s'exécutant sur un unique ordinateur,
peuvent fonctionner de manière totalement
indépendante les uns des autres et être vu comme
des ordinateurs à part entière sur un réseau.

35
Virtualisation
Techniques de virtualisation

Paravirtualisation
Par opposition à la virtualisation complète, on parle
de paravirtualisation lorsque les systèmes
d'exploitation doivent être modifiés pour fonctionner
sur un hyperviseur de paravirtualisation.

Les modifications sont en fait des insertions de


drivers permettant de rediriger les appels système au
lieu de les traduire.

Elle nécessite une collaboration étroite entre


l'hyperviseur et les systèmes d'exploitation invités
pour fonctionner correctement

36
Virtualisation
Techniques de virtualisation

Paravirtualisation
Le mécanisme de redirection des appels système est expliqué ici:
Des drivers backend et frontend sont installés dans les OS para-
virtualisés.
Ils permettent, au lieu de traduire les appels système comme dans la
virtualisation complète, de ne faire que de la redirection (ce qui est
beaucoup plus rapide).
Il est donc intelligent d'utiliser un tel mécanisme pour accéder au
matériel potentiellement très sollicité (disque dur, interface réseau...).
En fait, ce qu'il se passe dans une telle technologie, c'est que le contrôle
d'un ou plusieurs matériel(s) est donné à un des OS virtualisé (celui qui
contient le driver backend), ici le système d'exploitation 1.
il sera simple d'imaginer que l'OS 2, qui souhaite accéder au hardware,
devra passé par son driver front end qui redirigera les appels système vers
l'OS 1.
L'inconvénient de cette technique est donc la dépendance d'un OS
virtualisé vis à vis d'un autre qui se créé par ce mécanisme de driver.
Si l'OS 1 tombe en panne, l'OS 2 ne pourra plus accéder au
matériel. 37
Virtualisation
Types de virtualisation

La virtualisation peut prendre de nombreuses formes en fonction du type d'utilisation de l'application et de


l'utilisation du matériel
Virtualisation de l’OS
✓ Virtualisation de serveurs
✓ Virtualisation des postes de travail:
✓ Virtual Desk Top Infrastructure (VDI)
✓ Streaming d’OS
Virtualisation des applications
✓ Virtualisation de sessions
✓ Virtualisation par isolation ou Bulles Applications
(Conteneurs d’application)
Virtualisation de stockage
Virtualisation de réseaux

38
Virtualisation
Types de virtualisation

Virtualisation de l’OS
✓ dans un même serveur, on peut créer plusieurs serveurs virtuels et plusieurs
postes de travails

Virtualisation de serveurs
✓ C’est le fait de faire fonctionner simultanément, sur un seul serveur
physique, plusieurs serveurs virtuels.
✓ Meilleur utilisation de la capacité de chaque serveur
✓ réduire la surface au sol, les équipements matériels, le besoin de
climatisation et le nombre d'administrateurs ;
✓ réaliser des économies (locaux, consommation électrique,
personnel) ;
✓ réduire les délais de mise à disposition de nouveaux serveurs
✓ simplifier l’administration et la gestion
✓ améliorer le niveau de service et la disponibilité des applications
✓ simplifier la migration des applications sur de nouveaux serveurs

39
Virtualisation
Types de virtualisation

Virtualisation de l’OS

Virtualisation de serveurs

Virtualisation des postes de travail


✓ Virtual Desk Top Infrastructure (VDI)
✓ postes de travail complet (système d’exploitation et applications) hébergés dans
un data center
✓ l’utilisateur accède à son poste de travail à distance en utilisant son terminal
✓ l’environnement de travail est associé au profil utilisateur
✓ l’utilisateur a la même vue sur son environnement quelque soit l’environnement
utilisé
✓ Streaming d’OS
✓ le système démarre à partir d’un disque sur le réseau
✓ charge d’une manière sélectives les contenues les applications demandées par
l’utilisateur à partir d’un serveur distant

40
Virtualisation
Types de virtualisation

Virtualisation d’applications

Virtualisation de sessions

✓ la virtualisation est réalisée du côté du


serveur. l’ensemble des données de
l’utilisateur ainsi que les applications sont
hébergées dans un data centre

✓ L’utilisateur accède à ses applications par


un simple navigateur web ou par un client
desktop installé sur son poste de travail en
ouvrant une session sur le serveur distant

41
Virtualisation
Types de virtualisation

Virtualisation d’applications

Virtualisation par isolation ou Bulles Applications (Conteneurs


d’applications)
✓ consiste à l’installation d’une application par streaming dans le poste de
travail
✓ l’administrateur déploie les applications sur un serveur distant
✓ l’utilisateur se connecte au serveur et télécharge les applications
autorisées sur son poste
✓ quand le client clique sur l’icône de l’application, le poste client demande
au serveur de lui envoyer la bulle applicative en streaming
✓ ensuite l’application s’exécute en local
✓ l’application ne s’installe pas sur l’OS du poste client, elle s’exécute sur
une bulle, c.à.d un environnement totalement virtualité et cloisonné.
✓ Exemples : UNIX chariot, Unix LXC (voir l’historique de docker) 42
Virtualisation
Types de virtualisation

Virtualisation de réseaux
Permet aux applications de s’exécuter sur un réseau virtuel
comme si c’était un réseau physique
Avec un réseau virtuel, les fonctions de commutation, le
routage, le contrôle d'accès, le pare-feu, la qualité de service
(QoS) et l'équilibrage de charge sont implémentées dans le
logiciel
Il existe deux types de virtualisation des réseaux:
✓ virtualisation externe permet de créer des réseaux virtuels
distincts et isolés qui sont étendus au-delà des frontières
d'une infrastructure réseau locale.
✓ cette technologie permet aux fournisseurs de services
d'améliorer l'efficacité d'un grand réseau
✓ agit sur les systèmes en dehors d'un seul serveur.
✓ la virtualisation des réseaux interne agit au sein d'un serveur
pour émuler un réseau physique
43
Virtualisation
Types de virtualisation
Virtualisation de stockage
Gérer une interface qui permet de dissocier la gestion physique des disques (et de baies
de stockage) vis-à-vis des serveurs qui l’utilisent.
La virtualisation permet de masquer les spécifiés physiques des unités de stockage.
Côté utilisateur, les unités de stockage sont vues comme un unique volume
Les systèmes de stockage fournissent soit des données en mode bloc, soit en mode
fichier.
✓ Virtualisation en mode fichiers, en accédant au NAS (Network Attached Storage) en masquant les
dépendances vis-à-vis de l'emplacement où les données sont physiquement stockées et l’accès au
fichier s’effectue en mode NFS.
✓ Virtualisation en mode bloc, en introduisant un niveau d'abstraction entre le serveur et le système
de stockage, ce qui donne plus de flexibilité pour les administrateurs (Exemple: IBM SAN Volume
Controller, EMC Vplex)
✓ rassemble les données en blocs qui sont ensuite stockés en tant qu'éléments séparés. Chaque
bloc de données se voit attribuer un identifiant unique, qui permet au système de stockage de
conserver les petits éléments à l'emplacement le plus pratique. 44
Virtualisation
Types de virtualisation

Virtualisation de stockage
Espace de stockage
✓ Dans les technologies de machine virtuelle, l’hyperviseur ne fournit au système virtualisé qu’un
espace de stockage.
✓ Il peut s’agir d’un volume, ou simplement d’un fichier, on peut placer l’intégralité de cet espace sur
un disque local, un réseau de stockage ou un autre serveur...
✓ L’utilisation d’un disque local est la solution la plus avantageuse en terme de performances et de
facilité d’administration.
✓ Cependant, l’utilisation d’un stockage en réseau permet d’ouvrir la voie à de nouvelles
fonctionnalités.

45
Virtualisation
Types de virtualisation

Virtualisation de stockage
Stockage DAS
✓ Le stockage direct (DAS) signifie qu'un dispositif de stockage physique
est directement relié à un serveur ou à un ordinateur personnel .
✓ Le disque dur d'un ordinateur portable est un type de DAS car il
correspond à la définition d'une unité de stockage directement attachée
à un ordinateur personnel .
✓ Compléter un disque dur lorsque l'on a besoin de plus d'espace de
stockage avec un autre DAS signifie essentiellement brancher un
dispositif de stockage externe, comme brancher un disque dur externe
sur un ordinateur portable pour stocker des fichiers multimédias ou des
fichiers de travail.

46
Virtualisation
Types de virtualisation

Virtualisation de stockage
Stockage en réseau
✓ Les pleines capacités des hyperviseurs modernes ne peuvent s’exprimer qu’au travers d’un
stockage en réseau.
✓ Disposant d’un réseau de stockage, chaque hyperviseur a accès à toutes les machines
virtuelles, et peut donc exécuter n’importe laquelle, et la transférer sans interruption a un
autre hyperviseur en fonction de sa charge.

47
Virtualisation
Types de virtualisation
Virtualisation de stockage
Serveur de stockage NAS
✓ Un serveur NAS (Network Attached Storage) est un appareil de stockage de fichier
connecté à un réseau local (LAN).
✓ Ce type d’appareil permet le stockage et la récupération de données depuis une
localisation centralisée pour les utilisateurs hétérogènes autorisés à accéder au
réseau.
✓ Il est possible de se connecter à ce réseau spécifique par le biais d’une connexion
Ethernet standard, ou directement en WiFi.
✓ Un NAS est simplement un serveur fournissant ses fichiers à d’autres serveurs par le
réseau.
✓ Le serveur NAS présente l’avantage d’être flexible et scalable. Ainsi, en cas de besoin
de capacité supplémentaire, il est possible d’ajouter de l’espace de stockage très
facilement.
✓ NFS (Network File Storage) est le standard universel pour l’accès aux fichiers sur un
48
réseau, c’est le protocole le plus utilise dans les NAS.
Virtualisation
Types de virtualisation

Virtualisation de stockage
Un réseau de stockage SAN
✓ Un SAN (Storage Area Network) est un réseau sur lequel circulent les
données entre un système et son stockage. C'est un réseau physique
principalement en fibre optique, dont le but est de permettre la mise en
relation des serveurs avec des baies de disques.
✓ Cette technique permet de déporter tout le stockage interne d’une
machine vers un équipement dédié.
✓ Les SAN sont des équipements dédiés, qui ne travaillent qu’aux plus
basses couches du stockage, la notion de fichier leur est inconnue ; ils
travaillent simplement sur des blocs de données et les fournit par le
réseau à des serveurs qui eux sauront les utiliser (il travaille au niveau
des blocs et non des fichiers comme les serveurs NAS).
49
Virtualisation
Types de virtualisation
Virtualisation de stockage
Un réseau de stockage SAN
✓ Les SAN les plus hauts de gamme sont dotés de capacités avancées, tel que la prise de cliché, ou encore la
copie rapide de volumes.
✓ Les protocoles d'interconnexion utilisés pour la création d'un SAN sont les protocoles Fibre Channel et
iSCSI (Internet Small Computer System Interface).
✓ On peut dire qu'un réseau de stockage SAN est un réseau local constitué de plusieurs périphériques
✓ Un commutateur SAN est un composant matériel qui connecte des serveurs à des pools partagés de
périphériques de stockage. Il est consacré au déplacement du trafic de stockage dans un SAN.

50
Virtualisation
Types de virtualisation

Virtualisation de stockage
SAN: protocole d’accès iSCSI
✓ iSCSI (Internet Small Computer System Interface) est un protocole d’accès disque fonctionnant
sur un réseau Ethernet, il permet d’implémenter un réseau de stockage en profitant de la
connectique et des équipements de commutation standards.
✓ Comme le NFS, il peut être soit implémenté par une baie de stockage dédiée, ce qui assure les
meilleures performances, soit par un serveur classique disposant du logiciel adéquat, par
exemple IET (iSCSI Entreprise Target) sous Linux.
✓ Voici un exemple de SAN : parmi les machines clientes du SAN, on retrouve un NAS : ces deux
techniques peuvent être combinées car elles ne travaillent pas au même niveau.

51
Virtualisation
Types de virtualisation

Virtualisation de stockage
SAN: protocole d’accès Fibre Channel
✓ La solution la plus haut-de-gamme pour implémenter un réseau de stockage est l’utilisation d’une
baie dédiée et du protocole Fibre Channel.
✓ Basé sur des fibres optiques, il assure une latence et un débit bien meilleurs que iSCSI, avec un
prix bien sur plus élevé. Son principe d’utilisation est le même qu’un SAN iSCSI.

52
Virtualisation
Types de virtualisation

Virtualisation de stockage

53
Virtualisation
Datacenter

Datacenter = Centre de traitement de données


Ensemble d’équipements constituant le système d’information
d’une structure/entreprise
Mainframes (en tant qu'ordinateurs centraux conçus pour
gérer des charges de travail importantes et critiques)
Serveurs
Baies de stockage
Équipement réseaux et télécommunications
Pouvant aller du Local technique, salle machine, étage, bâtiment au complexe de plusieurs
bâtiments
Afin de mutualiser les coût et de bénéficier des dernières avancées technologiques, la
plupart des entreprises choisissent de déléguer à un Datacenter la prise en charge de leurs
données virtuelles, en terme de stockage, ou encore de protocoles de transfert
Afin d’assurer la disponibilité et la sécurité de données stockées, un Datacenter doit être en
fonctionnement 24h/24 et 365 jours par an.

54
Virtualisation
Datacenter

Clusterning
Dans un centre de données, un certain nombre de serveurs configurés de manière
similaire peuvent être regroupés avec des connexions au même réseau et au même
stockage pour fournir un ensemble de ressources dans l'environnement virtuel, appelé
cluster .
Lorsqu'un serveur est ajouté à un cluster, ses ressources sont intégrées à celles du
cluster.
Ainsi, le cluster gère les ressources de tous les serveurs qu’il contient et agit comme une
entité unique.
Ceci est bénéfique car si l'un des serveurs tombe en panne, un autre serveur peut
prendre sa place.

55
Virtualisation
Datacenter

56
Virtualisation
Datacenter

57
Virtualisation
Datacenter

58
Virtualisation
Datacenter

59
Virtualisation
Datacenter

Avantages
Ils offrent un environnement hyper sécurisés pour les données.
Les équipements ne sont pas obsolètes (continuent à être utiles et
efficaces dans leur contexte d'utilisation actuel)
Les données sont disponibles en permanence
Ils visent à assurer
Une haute qualité de service
Une haute disponibilité

60
Virtualisation
Datacenter

Les enjeux d’un Data Center


Assurer la haute disponibilité
Assurer la haute protection et sécurité

Contraintes:
Dimensions très vastes: des bâtiments
Infrastructure gigantesque
Plusieurs intervenants (administrateurs, clients, informaticiens,
électriciens, fournisseurs de matériel, etc.)

61
Virtualisation
Datacenter

Assurer la haute disponibilité: le service doit être toujours disponible malgré


les risques
Naturels (inondation, séisme, incendie, etc.) =>
Etude géographique de l’emplacement,
Sauvegardes régulières et duplication
Sur-chauffage (système de climatisation indispensable)
Coupure électrique (diversifier les sources d’alimentation)
Humaines: mauvaise manipulation ou intention (contrôle d’accès, gestion
des autorisations, suivi et journaux, les traces, etc.)
Connexion réseau/internet point d’entré au cloud (dupliquée et sécurisée)

62
Virtualisation
Datacenter

Assurer la haute protection et la sécurité:


Contrôle d’accès: (badge, empreinte digitale, etc.)
Verrouillage automatique des point d’accès.
Une surveillance (capteurs vidéo, thermiques, de proximité)
Identification du personnel avec un contrôle des accès.
Mise en place de systèmes de détection/prévention d’intrusions, pare-
feu, antivirus, etc.
Chiffrement des données…

63
Virtualisation
Exemple de solution de virtualisation

VMWare ESXi
Fondée en 1998, VMware a été la première entreprise à développer une
solution de virtualisation x86 disponible dans le commerce.
L'année suivante, la société publie son premier produit, Workstation 1.0, qui
permet aux développeurs de créer et de travailler avec des machines virtuelles
sur leurs postes de travail Windows ou Linux. Deux ans après cela,
En 2001, ESX 1.0 et GSX 1.0 ont été publiés. ESX était un hyperviseur de type 1
et GSX, un hyperviseur de type 2.
L'architecture d'origine d'ESX était composée de deux parties, l'hyperviseur
lui-même, et un module de console basé sur Linux.
ESXi a été développé avec le même noyau d'hyperviseur, mais sans la console
de service.
VMware a publié deux versions, ESX classique et ESXi, de la version 3.5 en
2007 à la version 4.1 en 2010.
À compter de la version 5 de 2011, seule l'architecture ESXi est disponible. 64
Virtualisation
Exemple de solution de virtualisation

VMWare ESXi
vCenter Server:
gère tous les composants physiques et
virtuels d’un centre de données virtualisé
pour se connecter au serveur vCenter afin
de gérer le vCenter et les hôtes ESXi, on
utilise le vSphere Client

65
Virtualisation
Exemple de solution de virtualisation

Citrix Xen
Le modèle Xen a un invité spécial appelé Domaine 0, également appelé Dom0.
Cet invité est démarré lors du démarrage de l'hyperviseur
Il dispose de privilèges de gestion différents de ceux des autres invités.
Il a un accès direct au matériel
Il gère toutes les E/S pour les invités individuels.

66
Virtualisation
Exemple de solution de virtualisation

QEMU-KVM
KVM (Kernel-based Virtual Machine) prend en
charge à la fois la virtualisation complète (où les
systèmes invités ne sont pas modifiés) et la
paravirtualisation.
C’est une solution open source intégrée au sein
du noyau Linux depuis la version 2.6.20.
KVM est un projet issu de QEMU (Quick Emulator)
dont il utilise une version modifiée.
Même si on fait souvent référence à l'hyperviseur
KVM, il s'agit en réalité d'une combinaison QEMU-
KVM.

67
Virtualisation
Exemple de solution de virtualisation
Microsoft Hyper-V
Microsoft a débuté dans l’espace de
virtualisation avec Virtual Server en
2005.
Hyper-V a été publié en 2008 en tant
que partie installable du système
d'exploitation Windows Server 2008

68
Virtualisation
Exemple Pratique: virtualisation avec VirtualBox
Création d’un réseau NAT (Network Address Translation)
est la manière la plus simple d'accéder à un réseau
externe à partir d'une machine virtuelle.
Habituellement, cela n'exige aucune configuration sur le
réseau hôte ou le système invité.
C'est pourquoi c’est le mode réseau par défaut de
VirtualBox.
Une machine virtuelle dont NAT est activé agit exactement
comme un vrai ordinateur qui se connecté à Internet par
un routeur.
Le “routeur”, dans ce cas, est le moteur réseau de
VirtualBox, qui dirige le trafic depuis et vers la machine
virtuelle de façon transparente.
Ce routeur se place entre chaque machine virtuelle et
l'hôte.
Cette séparation maximise la sécurité puisque, par défaut,
les machines virtuelles ne peuvent pas se parler et ne
peuvent pas être contacté de l'exétrieur. 69
Virtualisation
Exemple Pratique: virtualisation avec VirtualBox
Création d’un réseau bridgé
Avec le réseau bridgé, VirtualBox peut intercepter
les données du réseau physique et d'y envoyer des
données, ce qui crée de fait une nouvelle interface
réseau logicielle.
Quand un invité utilise une telle interface, cela se
passe comme si l'invité était connecté
physiquement à l'interface réseau en utilisant un
câble réseau
l'hôte peut envoyer des données à l'invité via cette
interface et en reçoit des données.
Avec ce mode, les VMs peuvent contacter l'hôte et
l'extérieur et peuvent être contactées à partir de
l'hôte

70
Virtualisation
Exemple Pratique: virtualisation avec VirtualBox

Création d’un réseau Host-Only


Un réseau Host-Only est un mode de
configuration de réseau dans lequel les
machines virtuelles peuvent communiquer
uniquement entre elles et avec l'hôte sur lequel
elles sont exécutées.
Cela signifie que les VMs ne sont pas autorisées
à accéder au réseau externe ou à l'internet, ni à
communiquer avec des machines physiques en
dehors de l'hôte.

71
Containerisation
Evolution de l’infrastructure

72
Conteneurisation
C’est quoi un conteneur?

Enveloppe permettant de packager une application avec juste


ce dont elle a besoin pour fonctionner
Peut être déployé tel quel dans n'importe quelle machine
disposant d'un Container Engine avec différents environnement
(Dev, Test, Prod)
Utilise le Kernel de l'OS Hôte
A son propre espace de processus et sa propre interface
réseau
Isolé de l'hôte, mais exécutée directement dessus.
Permet de décomposer l'infrastructure applicative en petits
éléments légers facile à déployer et à réutiliser

73
Conteneurisation
Avantages du conteneur

Meilleures performances que les VM (Démarrage


instantané )
Portabilité d'un environnement à l'autre (Multicloud)
Cohérence entre les environnements Dev, test et prod
Permet de modulariser facilement l'application
Gérer l'héritage technique (Ancienne application) grâce
à l'isolation

74
Conteneurisation
Conteneurs vs Machine Virtuelles

Machine Virtuelle:
Permet de virtualiser une machine physique
Chaque VM a son propre OS
Une VM consomme beaucoup de
ressources (CPU, Stockage) et prend assez
de temps pour booter (qq minutes).
Conteneur:
Permet de créer un environnement
d'exécution des applications
Les conteneurs utilisent le même OS
Tous les conteneurs utilisent le même
kernel OS (Linux), consomme peu de
ressources, boot rapide (qq secondes)

75
Conteneurisation
Utiliser des conteneurs dans des machine virtuelles

Les container engine ne viennent pas pour


remplacer les machines virtuelles.
Dans la pratique on utilise les deux:
Les machines virtuelles pour virtualiser les
machines
Utiliser un container engine tel que Docker
pour isoler les environnements d'exécution
des applications dans des machines
virtuelles.
Ceci pour tirer le bénéfice des deux technologies

76
Conteneurisation
Historique

Conteneur = unité de transport intermodal


Virtualisation de processus :
UNIX chroot (1979-1982)
BSD Jail (1998)
Parallels Virtuozzo (2001)
Solaris Containers (2005)
Linux LXC (2008)
Docker (2013) (basé sur LXC)

77
Conteneurisation avec Docker
C’est quoi docker?
Docker permet de créer des environnements (appelées containers) de
manière à isoler des applications.
Il permet d'empaqueter une application ainsi que les dépendances
nécessaires dans un conteneur virtuel isolé qui pourra être exécuté sur
n'importe quelle machine supportant docker.
Docker est un logiciel libre qui permet le déploiement d'applications sous la
forme de conteneurs logiciels.
L'origine de docker est :
Au départ, société française et maintenant basée à San Francisco.
dotCloud : un PaaS avec un container engine écrit en Python
En 2012 : Réécriture le langage Go.
En 2013, Première version Open source de docker
Réaction très positive de la communauté
dotCloud change de nom pour Docker.
En 2014, Levée de fonds : 40 millions $
En 2015, Levée de fonds : 95 millions $
78
Conteneurisation avec Docker
Problèmes de déploiement des applications

Pour une application utilisant différentes technologies


(services), des problèmes sont posés au moment du
déploiement en production:
Compatibilité des applications avec les OS
Installer les dépendances et les librairies requises
avec les bonnes versions pour chaque service.
Installer les différents environnements :
Dev
Test
Prod
Ce qui prend beaucoup de temps pour déployer les
applications.
Avec des conflits entres les développeurs et les
opérationnels (Administrateurs systèmes)

79
Conteneurisation avec Docker
Problèmes de déploiement des applications

Solution: conteneurs d’applications


Embarquer les applications dans des conteneurs
Exécuter chaque service avec ses propres
dépendances dans des conteneurs séparées

80
Conteneurisation avec Docker
Architecture globale de docker
Le développeur crée un fichier Dockerfile contenant les commandes que
docker va exécuter pour construire une image docker de cette application.
$ docker build
L'image docker contient tout ce dont l'application a besoin pour s'exécuter
correctement.
Les images Docker peuvent être publiées dans un registre publique
(Docker hub) ou privé.
$ docker push image_name
Pour télécharger une image docker d'une application dans un Host Docker,
il suffit d'utiliser:
$ docker pull image_name
La création et l'exécution d'un conteneur d’une application se fait par
instanciation et exécution de l'image en utilisant :
$ docker run image_name
Avec docker run, si l'image n'existe pas dans le host, elle va procéder au
téléchargement celle-ci avant d'en créer et exécuter un conteneur docker.
Docker se compose de :
Docker Engine qui permet de créer le Host Docker sur une machine
Linux (Docker daemon)
Un client Docker qui peut se trouver dans n'importe quelle autre
machine et qui est connecté à Docker Engine via différents
connecteurs exposés par dockerd (socket, REST API, etc.) 81
Conteneurisation avec Docker
Docker hub

Une image docker est juste un fichier package


représentant la Template des conteneurs. Elle
définit la structure du conteneur en englobant
l'application containérisée et l'ensemble de ses
dépendances.

Un Conteneur représente une instance d’une


image. Un conteneur est exécutée par le Docker
Host. Ce qui implique l'exécution de l'application
qu'il transporte dans un environnement isolé
fourni par le conteneur.

82
Conteneurisation avec Docker
Docker contribue à instaurer l’approche devops
Sans Docker :
Le développeur
Développe l'application.
Génère le package de l'application à déployer (App.war)
Envoie à l'opérationel (Administrateur système)
App.war
Un descriptif des dépendances qu'il faut installer et configurer pour
que l'application s'exécute normalement.
L'opérationnel
Doit se débrouiller pour satisfaire les exigences de l'application.
Pour chaque mise à jour, c'est toujours les mêmes histoires qui se
répètent.
Ce qui rend la vie dur au administrateur systèmes (Opérationnels)
Ce qui crée beaucoup de conflits entre les développeurs qui tentent d'améliorer
constamment les applications et les opérationnels qui doivent redéployer les mises à
jour.
Avec Docker:
Le développeur
Développe l'application
Construit une image docker de son application contenant toutes les
dépendances dont l'appli a besoin.
Publie l'image docker de le registre docker
L'opérationnel déploie l'application en instanciant des conteneurs à parti de
l'image docker récupérée à partir du repository docker.
83
Conteneurisation avec Docker
Les éditions de Docker

Docker est disponible en deux éditions :


Community Edition (Open source)
Disponible pour les platforms :
Linux
Mac
Windows
Cloud (Azure, AWS,GCP)
Pour Windows et Mac deux solutions :
Installer une Machine virtuelle Linux
avec VirtualBox ou Vmware par
exemple
Installer Docker desktop pour Windows
Server ou Mac
Enterprise Edition 84
Conteneurisation avec Docker
Explorer Docker hub

85
Conteneurisation avec Docker
Les commandes de base de docker : run et ps

$docker run image name


Permet de créer et démarre un conteneur nouvelle instance de l'image.
Si l'image n'existe pas, elle sera d'abord téléchargée à partir du docker hub
$docker run -d image name
Permet de démarrer le conteneur comme service de fond.
La valeur par défaut de la version de l'image est latest
Pour spécifier la version (tag):
$docker run image name:tag
Exemple : $ docker run redis: 4.0
$ docker ps
Permet de lister les conteneur qui sont en cours d'exécution
Chaque conteneur créé dispose d'un identifiant unique et d’un nom du conteneur.
docker ps –a
Permet de lister tous les conteneur avec leurs status (Up, Exited, Created)

86
Conteneurisation avec Docker
Les commandes de base de docker : run et ps

87
Conteneurisation avec Docker
Les commandes de base de docker : mapper les ports pour un accès externe

Au démarrage nginx ouvre un service http sur


le port 80
Comme nginx démarre à l'intérieur du
conteneur docker, l'accès http à cette application
ne peut se faire qu’à l'intérieur du conteneur.
Pour accéder à un service de l'extérieur à un
service déployé à l'intérieur du conteneur, il
faudrait qu'au démarrage du conteneur, spécifier
à docker le mapping entre les ports exposés en
interne avec les ports externes
Cette opération se fait via l'option –p port
externe:port interne
Exemple:
$sudo docker run -d -p 8082:80 nginx
Dans notre cas : 192.168.57.3 représente
l'adresse IP de la machine virtuelle ubuntu qui
déploie docker Host 88
Conteneurisation avec Docker
Les commandes de base de docker : images et rmi

$docker images
Permet de lister les images présenté dans le host docker
$ docker rmi <<nom-image>>
Permet de supprimer une image du host docker. Pour ce faire il faut s’assurer de
stopper et supprimer d’abord tous les conteneurs instanciés de cette image

89
Conteneurisation avec Docker
Les commandes de base de docker : stop et rm

Docker stop <<containerID or containerName>>


Permet de stoper un conteneur

Docker rm << containerID or containerName>>


Permet de supprimer un conteneur d’une manière
permanente

90
Conteneurisation avec Docker
Un conteneur docker ne peut pas contenir un OS

Exemple : Tenter de démarrer un conteneur ubuntu


$ docker run ubuntu
Le conteneur sera créé, mais pas démarré.
En effet un conteneur docker est fait pour contenir des processus et des services et non
pas des OS
L'image ubuntu est faites pour être l'image de base de d'autres conteneur et non pas
l'exécuter en tant que telle
Quand un service du conteneur s'arrête, le conteneur s'arrête aussi.

91
Conteneurisation avec Docker
La commande EXEC

Permet d’exécuter une commande dans un conteneur démarré


Exemple:
Démarrer un conteneur MySQL
Exécuter mysql dans le conteneur en mode interactif

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag


sudo docker run --name my2 -e MYSQL_ROOT_PASSWORD=root -d mysql
92
Conteneurisation avec Docker
La commande EXEC

docker exec -it mysql2 mysql --password


Cette ligne permet d’exécuter une commande mysql à l’intérieur d’un conteneur nommé
mysql2, en demandant le mdp
on peut se connecté au serveur mysql et taper les cmds correspondant. Les résultats seront
envoyé sur le terminal puisque le mode itératif -it est défini

93
Conteneurisation avec Docker
La commande Attach

Quand vous lancez un conteneur comme tâche de fond avec l'options -d, il se peut que vous ayez
besoin d'attacher la console du terminal courant au conteneur.
Cette opération se fait via la commande :
$ docker attach containerlD
Exemple:
On lance un conteneur ubuntu avec la commande top qui est sensée afficher sur le console
le taux d'utilisation du CPU et de la mémoire, comme tâche d'arrière plan. Rien ne s'affiche
Par la suite on attache la console du terminal au conteneur lancé en spécifiant son id (les 4
caractères de l'ID suffisent pour désigner un conteneur)

94
Conteneurisation avec Docker
Inspecter un conteneur

La commande ps permet d’avoir des informations basiques sur les conteneurs


Pour avoir plus de détail sur les conteneurs au format JSON, on peut utilser la
commande:
$docker inspect <<container_name or container_id>>

95
Conteneurisation avec Docker
Mapping des volumes: persistances des données dans un conteneur

Quand vous démarrez un conteneur MySQL, les données des


bases de données sont stockées par défaut dans le dossier
/var/lib/mysql à l'intérieur du docker container.
Un docker container dispose de don propre système de fichier.
Si vous supprimer ce conteneur MySQL, toutes les bases de
données seront détruites.
Vous vous souhaitez rendre les données persistantes en dehors
du conteneur, il faudrait mapper les volume au démarrage du
conteneur.
$ docker run -v /opt/dataDir:/var/lib/mysql mysql
Quand le conteneur mysql démarre, il monte implicitement un
dossier en dehors du conteneur vers un dossier interne au
conteneur.
Dans ce cas , toutes les données seront stockées dans un
dossier externe au conteneur et même si on supprime le
conteneur, le données restent dans le dossier /opt/dataDir
96
Conteneurisation avec Docker
Logs des conteneurs

Quand vous démarrez un conteneur comme tâche de fond, il serait utile un moment
donnée de visualiser le fichier log d’un conteneur.
Cette opération peut se faire par la commande:
$ docker logs container_ID

97
Conteneurisation avec Docker
Configurer Rest API pour Docker

Il est bien possible d’exposer les services de docker pour un accès distant via une API
REST.
Naviger vers /lib/system/system dans votre terminal et ouvrir le fichier docker.service
$ nano /lib/systemd/system/docker.service
Trouver la ligne qui commence par ExecStart et ajouter -H=tcp://0.0.0.0:2375
ExecStart=/usr/bin/docker daemon -H=fd:// -H=tcp://0.0.0.0:2375
Enregistrer le fichier modifié
Reload docker daemon
$ systemctl daemon-reload
Restart le container
$ sudo service docker restart
Testez si cela fonctionne en utilisant cette commande, si tout va bien la commande ci-
dessous devrait renvoyer un JSON
$ curl http://localhost:2375/images/json

98
Conteneurisation avec Docker
Configurer Rest API pour Docker

Sur docker desktop: cocher "Expose daemon on tcp://localhost:2375 without TLS"


Puis, cliquer sur "Apllay and restart"

99
Conteneurisation avec Docker
Configurer Rest API pour Docker

Pour plus de détail voir la


documentation sur
https://docs.docker.com/engine/api/

100
Conteneurisation avec Docker
Dockerfile

Un Dockerfile est un fichier texte qui contient les commandes nécessaires à la construction
d'une image.
Une fois qu'un Dockerfile est créé, l'administrateur utilise la commande docker build pour créer
une image basée sur les commandes contenues dans le fichier.
Les commandes et les informations contenues dans le Dpckerfile peuvent être configurées
pour utiliser des versions et des dépendances logicielles spécifiques afin de garantir des
déploiements cohérents et stables.

101
Conteneurisation avec Docker
Dockerfile

Un Dockerfile utilise les commandes suivantes pour construire les images :


ADD : Copie les fichiers d'une source sur l'hôte vers le système de fichiers du conteneur à la
destination définie.
CMD : Exécute une commande spécifique dans le conteneur.
ENTRYPOINT : Définir une application par défaut à utiliser chaque fois qu'un conteneur est
créé avec l'image.
ENV : Définir des variables d'environnement.
EXPOSE : Exposer un port spécifique pour permettre la mise en réseau du conteneur avec le
monde extérieur.
FROM : Définit l'image de base utilisée pour démarrer le processus de construction.
MAINTAINER : Définit le nom complet et l'adresse électronique du créateur de l'image.
RUN : directive d'exécution centrale pour les fichiers Docker.
USER : Définit l'UID (le nom d'utilisateur) qui exécutera le conteneur.
VOLUME : Permet l'accès du conteneur à un répertoire sur la machine hôte.
WORKDIR : Définit le chemin où la commande, définie avec CMD, doit être exécutée.
102
Conteneurisation avec Docker
Dockerfile

103
Conteneurisation avec Docker
Networking dans Docker
Il existe 3 modes réseaux en docker :
Bridge : Par défaut : $ docker run nginx
Host: $ docker run --network=host nginx
none: $ docker run --network=none nginx
Bridge est le mode réseau par défaut qui est utilisé par conteneur exécuté.
C’est le réseau privé interne créé par docker dans le Host.
Tous les conteneurs sont attachés par défaut à ce réseau
Chaque conteneur a une adresse souvent 172.17.0.x
Chaque conteneur peut accéder à l'autre par cette adresse.
Pour accéder à l'un des ces conteneur de I'extérieur, il faut mapper le port de
ces conteneurs aux ports du docker host.
Une autre manière pour accéder aux conteneurs de l'extérieur sans mapper les ports
c'est de les attacher au réseau de type host.
Dans ce cas le port de chaque conteneur est mappé automatiquement au
même port au niveau du host.
Ce qui fait qu'on ne pourra pas démarrer plusieurs instances du même
conteneur, car on ne peut pas exposer plusieurs services avec le même port au
niveau du host.
Le troisième type de réseaux est none, signifie que le conteneur n'est attaché à 104
aucun réseau. Il ne sera donc pas accessible ni localement ni de l'extérieur.
Conteneurisation avec Docker
Networking dans Docker

Dans le cas du réseau de type Bridge, il est possible de connecter les


conteneurs dans des réseaux internes différents :
Pour cela créer un nouveau réseau :
$ docker network create --driver bridge –subnet 182.18.0.0/16 custom-
isolated-net
Pour lister les réseaux disponibles :
$ docker network ls
Pour consulter la configuration réseau d'un conteneur
$ docker inspect <<container_id or container name>>

105
Conteneurisation avec Docker
Networking dans Docker

106
Conteneurisation avec Docker
Networking dans Docker

107
Conteneurisation avec Docker
Docker Name Spaces (DNS)

Un conteneur peut atteindre un autre conteneur par


son nom
Docker utiliser DNS (Docker Name Spaces ) pour
associer I'adresse IP au nom du conteneur.
DNS est un serveur qui est démarré par défaut en
utilisant I'adresse IP 172.17.0.11
Il est plus pratique de connecter les conteneurs en
utilisant leurs noms, car les adresses IP peuvent
changer au démarrage.

108
Conteneurisation avec Docker
Stockage dans Docker

Quand vous installer Docker dans un systéme de fichier, il y


crée son dossier dans :
/var/lib/docker
aufs
containers
image
Volumes
C'est dans ces dossiers où docker stocke, par défaut,
toutes ses données. C'est a dire les fichiers relatifs aux
images, conteneurs, volumes.

109
Conteneurisation avec Docker
Architecture en couches

Pour comprendre comment docker gère ses données, considérant les deux
exemples suivants de fichier docker.

110
Conteneurisation avec Docker
Docker Compose

Compose est un outil permettant de définir et


d'exécuter des applications Docker à conteneurs
multiples.
Avec Compose, vous utilisez un fichier au
format YAML (docker-compose.yml) pour
configurer les services de votre application.
Ensuite, avec une seule commande, vous
créez et démarrez tous les services de votre
configuration.
$ docker-compose up

111
Conteneurisation avec Docker
Docker Compose: exemple d’application

Considérons un exemple fourni


dans la documentation de Docker
Cette application permet de voter
chats ou chiens et d‘afficher les
résultats du vote.
L’appli se compose de 5 services :
Voting-app : web application
développée en python
Redis : Cache mémoire
Worker : développé en Java
Postgresq| : pour stocker les
données du vote
Result-app : pour présenter
les résultats.

112
Conteneurisation avec Docker
Docker Compose: exemple d’application

On peut tenter de démarrer


manuellement les services avec la
commande run
En utilisant l’option --link pour lier
les services
Cette manière est trop lourde
Il est plus simple de faire la même
chose avec docker-compose

113
Conteneurisation avec Docker
Docker Compose: déploiement de l’application

Dans la version 2 de docker-compose


L’option links n’est pas obligatoire
Docker crée automatiquement un lien
entre tous les services déclarés dans
docker-compose

114
Conteneurisation avec Docker
Docker Compose: si les images ne sont pas crées

115
Conteneurisation avec Docker
Docker Compose: si les images ne sont pas crées

116
Conteneurisation avec Docker
Docker Compose: si les images ne sont pas crées

117
Conteneurisation avec Docker
Docker Compose: Networking

118
Conteneurisation avec Docker
Docker Registry

Les images docker publiques sont stockées dans le cloud :


Docker Hub (docker.io)
Quand vous exécuter un conteneur nginx avec la commande :
$ docker run nginx
Nginx représente le nom de l'image dans un repository.
Ici le repository est nginx qui représente le nom de l'utilisateur
docker hub.
$ docker run nginx/nginx
$ docker run user_name/image_name

119
Conteneurisation avec Docker
Docker Registry

Docker registry est lui-même une application exposée dans image


docker disponible sur docker hub.
Vous pouvez installer dans le host du docker un annuaire privé de
docker :
$ docker run -d -p 5000:5000 --name my-registry registry:2
Pour pousser et récupérer une image docker dans ce nouveau
registre interne
$ docker image tag my-image localhost:5000/my-image
$ docker push localhost:5000/my-image
$ docker pull localhost:5000/my-image

120
Conteneurisation avec Docker
Docker Registry

Les organisations peuvent créer leur annuaire interne


Dans ce cas là, l’accès passe une opération d’authentification avec:
$ docker login private-registry.io
Pour accéder à une image:
$ docker run private-registry.io/apps/internal-app

121
Conteneurisation avec Docker
Restriction des ressources avec cgroups

Par défaut un conteneur peut utiliser toutes les ressources


disponibles (CPUs et RAM) dans le host Linux
Pour restreindre l’utilisation des ressources pour un conteneur:
$ docker run --cpus=0.5 ngninx
$ docker run --memory=100m mysql

122
Conteneurisation avec Docker
Orchestration des conteneurs

Besoin de démarrer plusieurs instances pour des raisons de


scalabilité, de tolérance en pannes, disponibilité et de monté en
charge
Si une instance tombe en panne, il faut la remplacer
Si Docker Engine tombe en panne, tous les conteneurs vont
cracher.
L’orchestration des conteneurs est une solution pour ce problème

123
Conteneurisation avec Docker
Orchestration des conteneurs

Consiste en un ensemble d’outils et de scripts qui permettent l’automatisation des opérations:


Scalabilité des conteneurs (capacité d'adapter la taille d'un ensemble de conteneurs en
fonction des besoins), réplication des conteneurs, haute disponibilité, bilan de santé des
conteneurs etc.
Exemples d’outils:
Docker Swarm
Kubernetes
MESOS

124
Conteneurisation avec Docker
Docker Swarm

Docker Swarm permet de combiner plusieurs machines ensemble pour former un cluster.
Il prend en charge la distribution et la réplication des instances de services des applications
dans des hosts distribués pour la haute disponibilité et I'équilibrage de charges à travers différents
systèmes et hardwares.

125
Conteneurisation avec Docker
Configuration de Docker Swarm

Pour configurer Swarm il faut:


Démarrer plusieurs hosts docker
Désigner un host en tant que manager et les autres en tant que workers
Par la suite exécuter les commandes "docker service" sur le swarm manager node
$ docker service create --replicate=4 -p 8080:80 may-app

126
Conteneurisation avec Docker
Exemple d’application Swarm

Démarrer 3 VM ubuntu avec Docker engine installé:


Host 1 avec l’adresse IP 192.168.57.3
Host 2 avec l’adresse IP 192.168.57.4
Host 3 avec l’adresse IP 192.168.57.5
Ensuite dans une machine (Machine Physique), connecter 3 terminaux avec SSH au 3 hosts

127
Conteneurisation avec Docker
Démarrer un Swarm Manager

Advertise-addr: adresse où swarm manager accepte les connexions à partir des autres nœuds
Listen-addr: adresse d’écoute pour accéder au cluster swarm depuis l’extérieur
Le port par défaut de Swarm est 2377

128
Conteneurisation avec Docker
Démarrer un nœud Swarm Worker

129
Conteneurisation avec Docker
Démarrer un nœud Swarm Worker

On refait la même chose sur une autre machine

130
Conteneurisation avec Docker
Lister les nœuds du cluster Swarm

131
Conteneurisation avec Docker
Créer et démarrer un service Swarm

132
Conteneurisation avec Docker
Lister les services démarrés

133
Conteneurisation avec Docker
Détails des services démarrés dans Swarm

134
Conteneurisation avec Docker
Consulter le fichier logs d’un service

135
Conteneurisation avec Docker
Créer un service: exemple d’application web

136
Conteneurisation avec Docker
Supprimer le service web créé

137
Conteneurisation avec Docker
Déployer une application avec trois services mongo, back et front: network sécurisé

--driver overlay : Les réseaux overlay sont utilisés dans des environnements distribués comme Docker
Swarm pour permettre la communication entre les conteneurs sur différents hôtes.

138
Conteneurisation avec Docker
Déployer une application avec trois services mongo, back et front: network sécurisé

139
Conteneurisation avec Docker
Déployer une application avec trois services mongo, back et front: network sécurisé

140
Conteneurisation avec Docker
Déployer une application avec trois services mongo, back et front: network sécurisé

141
Conteneurisation avec Docker
Déployer une application avec trois services mongo, back et front: network sécurisé

142
Conteneurisation avec Docker
Mise à l’échelle d’un service (scaling back service: 15 instances)

144
Conteneurisation avec Docker
Mise à l’échelle d’un service (scaling back service: 15 instances)

145
Conteneurisation avec Docker
Mise à l’échelle d’un service (scaling front service: 2 instances)

146
Conteneurisation avec Docker
Mise à l’échelle d’un service (scaling front service: 2 instances)

147
Conteneurisation avec Docker
Déployer la mise à jour du service back

148
Conteneurisation avec Docker
Déployer la mise à jour du service back

149
Conteneurisation avec Docker
Déployer la mise à jour du service back

150
Conteneurisation avec Docker
Déployer la mise à jour du service front

151
Conteneurisation avec Docker
Déployer la mise à jour du service front

152
Conteneurisation avec Docker
Déployer la mise à jour du service front: Rollback

153
Conteneurisation avec Docker
Suspendre un nœud worker

Toutes les instances des services déployées dans le nœud Host 3 vont migrer vers les
autres nœuds du cluster

154
Conteneurisation avec Docker
Conditionner le démarrage de services

155
Cloud Computing
Cloud Computing
Découvrir le Cloud: Définition du Cloud selon NIST

Le Cloud Computing, abrégé en Cloud (Nuage), ou l’informatique en


nuage (ou nuagique) ou encore l’infonuagique, se définit d’après l’Institut
National des normes et de la technologie (NIST), comme étant un accès via
un réseau de télécommunications, à la demande et en libre-service, à des
ressources informatiques partagées configurables. Il s'agit donc d'une
délocalisation de l'infrastructure informatique.
Le Cloud Computing englobe trois caractéristiques clés :
La mutualisation (partager ou d'utiliser des ressources de manière
collective), de la part du fournisseur, de ressources éclatées
Des ressources accessibles en réseau
Des ressources accessibles, rapidement à la demande et de façon
souple 157
Cloud Computing
Découvrir le Cloud: Autres défintions

Le Cloud Computing est un modèle qui permet un accès réseau à la


demande et pratique à un pool partagé des ressources informatiques
configurables (telles que réseaux, serveurs, stockage, applications et
services) qui peuvent être provisionnées rapidement et distribuées avec un
minimum de gestion ou d’interaction avec le fournisseur de services.
Le Cloud Computing est une plateforme de mutualisation informatique
fournissant aux entreprises des services à la demande avec l'illusion d'une
infinité des ressources.

158
Cloud Computing
Historique

159
Cloud Computing
Historique: cloud 3.0

Avec le Cloud 3.0, les développeurs créent des applications de haute disponibilité (HA) et avec
un traitement massif et parallèle , en décomposant le logiciel en modules faiblement connectés
appelés microservices.
Pour des fonctionnalités qui doivent être créées rapidement, les développeurs peuvent
utiliser FaaS (Function as a Service) qui exécute un code fournit par le développeur dans une
plateforme prédéfinie sans serveur préalablement installé.
Dans le Cloud 3.0, les librairies de code sont dépassées. Au lieu de ces librairies, les
développeurs invoquent des web services qui sont des bibliothèques de code avec
l'infrastructure nécessaire pour traiter et stocker des données.

160
Cloud Computing
Fonctionnement du cloud

En utilisant le Cloud, l’entreprise n’est plus le propriétaire du serveur informatique


utilisé puisqu’il est mis à disposition par un fournisseur de service.
Dan le Cloud, on peut accéder de manière évolutive à de nombreux services sans
avoir à gérer l’infrastructure sous-jacente, souvent complexe (entretien de la base de
données, sauvegarde des données, mise à jour des logiciels, entretien des serveurs,
…) qui nécessite des compétences informatique de plus en plus importantes au fur
et à mesure du développement des besoins informatiques de l’entreprise.

161
Cloud Computing
Fonctionnement du cloud

Les applications et les données ne se trouvent plus sur l’ordinateur local, mais
sur le Cloud qui est un ensemble de serveurs distants interconnectés au moyen de
liaisons internet de haute performance.
L’accès au service se fait par une application standard installée sur un ordinateur,
tablette, ou un téléphone.

162
Cloud Computing
Rentabilité du Cloud et ses avantages économiques

La rentabilité du Cloud consiste à étudier les coûts et les avantages du Cloud


Computing et des principes économiques qui les sous-tendent.
En tant que discipline, elle explore les questions clés pour les entreprises :
Quel est le retour sur investissement (ROI) de la migration vers le Cloud ou
du changement de fournisseur de Cloud ?
Quel est le coût total de possession (TCO) d’une solution Cloud par rapport à
une solution on-premise traditionnelle ?

163
Cloud Computing
Rentabilité du Cloud et ses avantages économiques

Le Cloud Computing, avec sa portée mondiale, offre des possibilités


d'économies significatives.
En éliminant la nécessité d'héberger des serveurs sur site, les entreprises
peuvent réduire considérablement les coûts liés à la main-d'œuvre. Les équipes
informatiques n'ont plus à consacrer de temps au déploiement et à la maintenance
de matériel complexe sur place, car les serveurs peuvent être localisés et
accessibles de n'importe où dans le monde.
Agilité: les entreprises peuvent déployer des applications plus rapidement et
ajuster la capacité de stockage et la puissance de calcul selon les besoins. Cette
agilité permet aux entreprises de s'adapter rapidement aux évolutions du marché
et aux demandes des clients, favorisant ainsi une croissance plus rapide des
revenus.
164
Cloud Computing
Rentabilité du Cloud et ses avantages économiques

Avant de passer au Cloud, les entreprises doivent analyser en profondeur les avantages et les
inconvénients économiques pour bénéficier d’une vision détaillée des coûts et des économies
spécifiques.
Lorsqu'ils évaluent la rentabilité du Cloud pour leur entreprise, les responsables informatiques
et financiers peuvent suivre un processus de base pour déterminer le ROI (Retour sur
Investissement) et le TCO (Coût Total de Possession) du Cloud. Ils peuvent utiliser ces estimations
pour convaincre les dirigeants. Ce processus doit inclure trois éléments clés.

165
Cloud Computing
Histoires de réussite d’entreprises reconnues dans le monde entier

Le New York Times (sur GCP), à travers le système Aristo pour l’abonnement numérique
Ce journal, fondé en 1851, est l’un des plus lus et des plus influents au monde.
Depuis 1979, l’entreprise livre des journaux à domicile, mais en raison du système obsolète
qu’elle utilisait, les coûts augmentaient. Un ordinateur central, appelé CIS, a été chargé
d’exécuter toutes les fonctions critiques du NY Times: facturation, comptes clients,
logistique, catalogue de produits, tarification et rapports financiers.
Entre 2006 et 2009, le journal a échoué dans sa tentative de numériser la livraison à
domicile, mais en 2017, le système CIS a été complètement migré vers le Cloud Computing
mondial, et le système a été rebaptisé Aristo.
Aujourd’hui, Aristo fait partie de la plate-forme d’abonnement numérique du New York
Times, générant plus de 500 millions de dollars par abonnement et traitant environ 6,5
millions de transactions au cours de la première année.

166
Cloud Computing
Histoires de réussite d’entreprises reconnues dans le monde entier

Netflix (sur AWS), qui, grâce à sa migration vers le Cloud, a réussi à connaître un succès
mondial.
Une entreprise leader dans le streaming de contenu audiovisuel et présent dans plus de
190 pays et avec plus de 193 millions d’abonnés.
En 1997, la société a loué et vendu des DVD aux États-Unis via sa plate-forme
numérique. Suite à des problèmes d’expéditions, en 2008 la décision a été prise de faire
le saut vers le Cloud, une transition qui a pris 7 ans. Cependant, et malgré l’attente, c’est
grâce à sa migration vers le Cloud Computing que Netflix a pu lancer sa plateforme de
streaming dans le monde entier, qui est aujourd’hui utilisée par des millions de
personnes.

167
Cloud Computing
Histoires de réussite d’entreprises reconnues dans le monde entier

Animoto Productions (AWS), qui a utilisé des services de Cloud Computing pour faire
évoluer ses serveurs, parvenant à passer de 50 à 3 500 en seulement trois jours
est un service de création vidéo basé sur le Cloud qui produit des vidéos à partir de
photos, de clips vidéo et de musique dans des diaporamas vidéo et des présentations
Web personnalisées.
L'utilisation de services Cloud lui a permis de faire face à la hausse de la demande, mais
également de réduire les services facilement et de manière rentable lorsque la
demande s'est ralentie.
En janvier 2013, la société avait atteint 6 millions d'utilisateurs et a reçu un brevet pour
sa technologie d'intelligence artificielle cinématographique.

168
Cloud Computing
Histoires de réussite d’entreprises reconnues dans le monde entier

General Electric (sur AWS)


Est une entreprise présente dans 180 pays et leader de la production
industrielle depuis plus d'un siècle. En combinant des solutions d'ingénierie
de classe mondiale et divers logiciels et outils d'analyse, GE permet au monde
entier de travailler plus efficacement, de façon fiable et en toute sécurité.
emploie plus de 2 000 applications Cloud et 55 services AWS afin de profiter
d'une évolutivité et de performances sans pareilles au sein de ces activités
liées à l'aviation, à l'énergie, à la santé et aux énergies renouvelables.

169
Cloud Computing
Histoires de réussite d’entreprises reconnues dans le monde entier

Pearson (sur AWS), la multinationale du contenu éducatif, qui grâce à une infrastructure de
Cloud hybride a réussi à rediriger les ressources et à les concentrer sur le développement de
nouveaux projets éducatifs.
Pearson fournit des services numériques, de contenu et d'évaluation aux apprenants, aux
établissements scolaires, aux employeurs, aux gouvernements et à des partenaires à travers le
monde. L'entreprise œuvre à doter les apprenants des compétences nécessaires pour
améliorer les perspectives d'emploi et réussir.

170
Cloud Computing
Histoires de réussite d’entreprises reconnues dans le monde entier

Airbnb (sur AWS), une entreprise qui, après un an de lancement a décidé de migrer tous ses
services et fonctions vers AWS, marquant le début du succès dont elle jouit actuellement.
l'entreprise a créé une communauté mondiale qui facilite la location de logements,
allant des chambres privées et des appartements aux maisons entières.
Grâce au soutien d'AWS et à plusieurs services AWS, Airbnb a élaboré des stratégies
pour gérer ses capacités, optimiser le stockage et la capacité de calcul, et développer un
outil personnalisé de données sur les coûts et l'utilisation.

171
Cloud Computing
Types de service Cloud

Définition : XaaS
L’acronyme XaaS fait référence à l’expression "everything as a service" c-à-d "tout en
tant que Service" dans lequel quelque chose est présenté à un utilisateur, interne ou
externe, en tant que service. Cette expression désigne aussi les différents modèles du
Cloud computing "en tant que service" qui sont mis à la disposition des utilisateurs sur
Internet.
Ce terme est né suite à l’apparition de nombreux services Cloud computing tels que les
SaaS (logiciels en tant que service), les PaaS (plateformes en tant que service) ou les IaaS
(infrastructures en tant que service).

172
Cloud Computing
Types de service Cloud: Infrastructure as a service (IaaS)

L'IaaS, ou Infrastructure-as-a-Service, est l'un des trois types


de service Cloud. Pour ce type de service le fournisseur de
solution fournit les fonctions de virtualisation, le système de
stockage, les réseaux et les serveurs, et vous y donne accès en
fonction de vos besoins.
Ainsi, l’utilisateur ne gère ni ne contrôle l'infrastructure Cloud
sous-jacente et n'a pas à s'inquiéter des mises à jour physiques
ou de la maintenance de ces composants.
Par contre et autant qu’utilisateur, vous êtes responsable du
système d'exploitation ainsi que des données, applications,
solutions de middleware et environnements d'exécution.

173
Cloud Computing
Types de service Cloud: Infrastructure as a service (IaaS)

L'IaaS est le modèle Cloud « as-a-Service » le plus flexible et libre, il apporte aux utilisateurs
tous les avantages des ressources informatiques sur site, sans les actions et frais de gestion de
l’infrastructure.
En effet, il facilite la mise à l'échelle, la mise à niveau et permet d'ajouter des ressources, par
exemple le stockage dans le Cloud.
Exemples:

174
Cloud Computing
Types de service Cloud: Infrastructure as a service (IaaS)

Avantages et les inconvénients


Avantages Inconvénients
• Un budget maîtrisé : L’abonnement est en fonction de la • Modifications de processus : Peut nécessiter des
consommation ainsi le tarif est calculé par heure, par modifications au niveau du workflow et des processus de
semaine ou par mois. Certains fournisseurs facturent en travail de l’entreprise.
fonction de la quantité d’espace de machine virtuelle • Risques de sécurité : Les fournisseurs Cloud sécurisent
utilisée ou à l’unité d’œuvre (CPU, RAM, disque, bande l'infrastructure, les entreprises sont responsables de tout
passante…). ce qu'elles hébergent.
• Une très grande agilité : Les ressources matérielles sont • Un accès à internet : L’accès à internet est Indispensable
ajustables à la demande et en fonction du besoin. Celles-ci avec une connexion satisfaisante pour pouvoir se
peuvent être extensibles en quelques clics et connecter convenablement à votre plateforme.
immédiatement disponibles ce qui assure une très grande • Dépendance vis-à-vis du fournisseur : passer d'un
réactivité dans l’ajustement de la solution. fournisseur Cloud à un autre peut être complexe.
• Une meilleure sécurité : les fournisseurs Cloud investissent • Contrainte réglementaire : l'évolution des lois étatiques
massivement dans la technologie et l'expertise en matière peut avoir un impact sur l'utilisation de l'IaaS par certaines
de sécurité. entreprises, en particulier au-delà des frontières nationales
• Réaffecter les ressources informatiques : libérez du
personnel informatique pour des projets à plus forte valeur
ajoutée. 175
Cloud Computing
Types de service Cloud: Platform as a service (PaaS)

Le type de service PaaS, ou Platform-as-a-Service est


semblable à du IaaS, sauf que votre fournisseur de services
Cloud fournit également le système d'exploitation et les
environnements d’exécutions.
Ainsi, l’utilisateur ne gère ni ne contrôle l'infrastructure Cloud
sous-jacente et n'a pas à s'inquiéter des mises à jour physiques
ou de la maintenance de ces composants y compris le réseaux,
les serveurs, les systèmes d’exploitations ou de stockage.
Par contre et autant qu’utilisateur, vous avez le contrôle pour
le déploiement et configuration d’applications crées à l’aide de
langages de programmation, de bibliothèques, de services et
d'outils pris en charge par le fournisseur.

176
Cloud Computing
Types de service Cloud: Platform as a service (PaaS)

Idéalement destiné aux développeurs et aux programmeurs, le PaaS fournit une plateforme
simple et évolutive permettant aux utilisateurs d’exécuter et gérer leurs propres applications,
sans avoir à créer ni entretenir l'infrastructure ou la plateforme généralement associée au
processus.
Exemples:

Un service de gestion base de données géré par le fournisseur et accessible via le Cloud est
considéré comme du PaaS. Exemple : Azure SQL DB, Azure Cosmos DB, …
177
Cloud Computing
Types de service Cloud: Platform as a service (PaaS)

Avantages et inconvénients
Avantages Inconvénients
• Rentable : Pas besoin d'acheter du matériel ou de payer • Dépendance vis-à-vis du fournisseur : Très dépendant des
des dépenses pendant les temps d'arrêt. capacités et services offert par le fournisseur.
• Solutions personnalisées : Couches Middleware et • Sécurité des données : Des limitations peuvent surgir
Runtimes disponibles permettant de simplifier le quant à la sécurité et la politique d’hébergement des
développement et le déploiement d’applications. données sur le Cloud.
• Speed to Market : accélérez la création d'applications • Compatibilité : Les solutions PaaS peuvent ne pas être
Évolutive. optimisées pour le langage de votre choix et des versions
• Augmente la sécurité : les fournisseurs de PaaS investissent de Framework spécifiques peuvent ne pas être disponibles
massivement dans la technologie et l'expertise en matière ou fonctionner de manière optimale.
de sécurité. • Modifications de processus : Peut nécessiter des
• Flexible : ajoutez rapidement de la capacité aux heures de modifications au niveau du workflow et des processus de
pointe et réduisez-la si nécessaire. travail de l’entreprise.

178
Cloud Computing
Types de service Cloud: Software as a service (SaaS)

Le SaaS (Software-as-a-Service), ou services d'applications


Cloud, est le type le plus complet et utilisé des services sur le
marché du Cloud.
Pour ce type de service le fournisseur fournit et gère une
application complète accessible par les utilisateurs via un
navigateur Web ou un client lourd.
Ainsi, l’utilisateur ne gère ni ne contrôle la plateforme Cloud
sous-jacente et n'a pas à s'inquiéter des mises à jour logicielles
ou l'application des correctifs et les autres tâches de
maintenance logicielle.

179
Cloud Computing
Types de service Cloud: Software as a service (SaaS)

Le SaaS constitue une option intéressante pour les petites et moyennes entreprises (PME)
qui n'ont pas les ressources humaines pour gérer l'installation et le suivi de l’installation des
mises à jour de sécurité et logiciels.
Par ailleurs, il est à noter que le modèle SaaS réduit le niveau de contrôle et peut nuire à la
sécurité et aux performances. Il convient donc de choisir soigneusement votre fournisseur
Cloud.
Exemples

180
Cloud Computing
Types de service Cloud: Software as a service (SaaS)

Avantages et inconvénients
Avantages Inconvénients
• Accessibilité : 24h/24 et 7j/7 à partir de n'importe quel • Dépendance vis-à-vis du fournisseur : Dépendance totale
appareil. au service offert par le fournisseur. Ce qui rend la migration
• Gestion opérationnelle : Pas d'installation, de mise à jour vers un fournisseur très délicate.
des équipements ou de gestion traditionnelle des licences. • Personnalisation limitée : La plupart des applications SaaS
• Speed to Market : Accès rapide et facile à l’application avec offrent des capacités de personnalisation minimales de la
un minimum d’effort pour répondre à l’évolution du part du fournisseur.
besoin. • Sécurité des données : Des limitations peuvent surgir
• Augmente la sécurité : les fournisseurs de SaaS quant à la sécurité et la politique d’hébergement des
investissent massivement dans la technologie et l'expertise données sur le Cloud.
en matière de sécurité. • Limitations des fonctionnalités : Étant donné que les
• Synchronisation & Stockage des données : Les données applications SaaS sont fréquemment proposées dans un
sont synchronisées entre vos appareils et accessibles format standardisé, la sélection des fonctionnalités peut
partout et à n’importe quel moment. De plus, les données souvent constituer un compromis délicat entre la sécurité,
sont régulièrement enregistrées dans le Cloud. le coût, les performances et d'autres politiques
organisationnelles. 181
Cloud Computing
Modèles de déploiement
Les modèles de déploiement Cloud décrivent comment le Cloud est exploité et qui a accès aux
ressources des services Cloud.
Les trois modèles de déploiement sont définis comme suit :
Cloud public : L'infrastructure Cloud est provisionnée pour une utilisation ouverte par le
grand public. Il peut être détenu, géré et exploité par une entreprise, une université ou une
organisation gouvernementale, ou une combinaison d'entre eux. Il existe dans les locaux du
fournisseur de Cloud.
Cloud privé : L'infrastructure Cloud est provisionnée pour une utilisation exclusive par une
seule organisation comprenant plusieurs clients. Il peut être détenu, géré et exploité par
l'organisation, un tiers ou une combinaison d'entre eux, et il peut exister sur place ou à
l'extérieur.
Cloud hybride : L'infrastructure Cloud est une composition de deux ou plusieurs Cloud
distincts d’infrastructures (privées, communautaires ou publiques) qui restent des entités
uniques, mais qui sont liées ensemble par une technologie standardisée ou exclusive qui
permet la portabilité des données et des applications. 182
Cloud Computing
Modèles de déploiement: Cloud public
Un Cloud public consiste en des ressources virtuelles issues du matériel d'un fournisseur Cloud,
allouées aux clients via une interface en libre-service sur Internet.
Il fait partie d'un environnement diversifié offrant sécurité renforcée, performances
optimisées, coûts réduits et disponibilité accrue pour l'infrastructure, les services et les
applications.
Les services d'un Cloud public constituent une option idéale pour les entreprises nécessitant
un accès rapide aux ressources informatiques sans coût initial important.

183
Cloud Computing
Modèles de déploiement: Cloud public
Avec un Cloud public, votre entreprise achète des services de calcul, de stockage et de réseau
virtualisés sur l'Internet public d'un fournisseur de services Cloud. Cela peut vous aider à avancer
les délais de mise sur le marché, à évoluer rapidement et à profiter de l'agilité permettant
d'essayer rapidement de nouvelles applications et services.
Caractéristiques d’un Cloud public :
Allocations des ressources Coût d’utilisation Élasticité
L’ensemble des ressources virtuelles Les ressources sont distribuées en Redimensionnement rapide et
sont mises à la disposition du client fonction des besoins, et le paiement flexible des ressources suivant les
par le fournisseur du services Cloud. est effectué à la consommation. pics d’utilisation.

Cependant, il existe des charges de travail qui ne sont pas adaptées au traitement dans un
Cloud public, telles que les applications existantes difficiles ou risquées à migrer. Par
conséquent, l'intégration d'un Cloud privé demeure un élément crucial de votre approche
stratégique du Cloud.
184
Cloud Computing
Modèles de déploiement: Cloud public
Avantages et inconvénients

Avantages Inconvénients
• Allocation rapide et efficace des ressources en fonction des • La sécurité et la confidentialité des données présentes une
besoins de l'utilisateur ; grande préoccupation pour les entreprises ;
• Coût maitrisé, le paiement est réalisé selon la • Partage de l’infrastructure avec d’autres clients ;
consommation ; • La personnalisation des ressources ou des services est
• Pas de maintenance, l’utilisateur se concentre sur presque impossible dans un service de Cloud public ;
l’innovation ;
• Résilience de l’environnement, cela signifie qu'il y a très
peu de risques de panne interrompant votre service ;
• Redondance des infrastructures permettant la mise en
place d’une politique de reprise d’activité efficace ;
• Evolution continue des services offerts par le fournisseur.

185
Cloud Computing
Modèles de déploiement: Cloud public
Fournisseurs
Fournisseurs cloud public Description
Alibaba Cloud, également connu sous Aliyun, est une société chinoise de Cloud
Alibaba Cloud computing, filiale de Alibaba Group. Alibaba Cloud fournit des services
d'informatique en nuage aux entreprises en ligne et à l'écosystème d'Alibaba de
commerce électronique.
Amazon Web Services est une division du groupe américain de commerce
Amazon Web Services (AWS) électronique Amazon, spécialisée dans les services de Cloud computing à la
demande pour les entreprises et particuliers.
Google Cloud Platform est une plateforme de Cloud computing fournie par Google,
Google Cloud proposant un hébergement sur la même infrastructure que celle que Google utilise
en interne pour des produits tels que son moteur de recherche.
IBM Cloud IBM Cloud computing est un ensemble de services de Cloud computing pour les
entreprises proposés par la société de technologie de l'information IBM.
Microsoft Azure Microsoft Azure est la plate-forme applicative en nuage de Microsoft.

186
Cloud Computing
Modèles de déploiement: Cloud privé
Un Cloud privé est un environnement Cloud réservé à un client final, la plupart du temps
hébergé dans votre centre de données et mis à jour par votre équipe informatique. Même si le
Cloud privé était jusqu'à présent habituellement exécuté sur site, les entreprises construisent
désormais des Cloud privés dans des datacenters hors site qu'elles louent auprès de fournisseurs.
Tous les Cloud deviennent des Cloud privés lorsque l'infrastructure informatique sous-jacente
est spécifique à un client unique, avec un accès entièrement isolé.

187
Cloud Computing
Modèles de déploiement: Cloud privé
Quand choisir un Cloud privé ?
Un Cloud privé convient particulièrement aux entreprises qui souhaitent que les ressources
soient disponibles à la demande, mais qui ne peuvent pas passer à un Cloud Public, que ce soit à
cause des politiques de sécurité, des budgets, des exigences de conformité ou des
réglementations.
Ainsi, les entreprises qui évoluent dans les secteurs critiques ou manipules des données
sensibles utilisent des protocoles de chiffrement et des pare-feu pour protéger leurs systèmes
informatiques. La limitation de l'accès renforce la sécurité du Cloud privé par rapport aux Cloud
public.
Exemple :
Une application exploitée uniquement par les utilisateurs interne d’une entreprise pendant
les horaires de travail sera déployée sur le Cloud privé sur site de l’entreprise.
Par ailleurs, une application utilisée par plusieurs intervenants interne et externe à
l’entreprise et pour laquelle les données sont à caractères non sensible peut être déployée sur
le Cloud public. 188
Cloud Computing
Modèles de déploiement: Cloud privé

Avantages et inconvénients

Avantages Inconvénients
• Infrastructure de capacité supérieure avec des • Coût d’investissement initiale élevé ;
performances élevées en matière de calcul et de stockage ; • Montée en compétence des ressources humaines IT
• Sécurité élevée sur les données dans un environnement qualifiées ;
isolé avec un contrôle sur la politique de stockage et de • Limitation des fonctionnalités pour certains services ;
traitement des données ; • Maintenance continue de l’environnement.
• Allocation efficace des ressources en fonction des besoins
de l'utilisateur ;

189
Cloud Computing
Modèles de déploiement: Cloud privé
Fournisseurs
Fournisseurs cloud privé Description
Hors site
N+ONE propose la solution « oneCloud » qui se base sur une architecture virtualisée hébergée
dans un centre de données national certifié et qui fournit aux clients des serveurs, du
stockage et des services de sauvegarde dans du Cloud privé ou public.
Amazon Virtual Private Cloud est un service commercial de Cloud qui fournit aux utilisateurs une section de réseau au
sein d'Amazon Web Services isolée du réseau traditionnel et des réseaux des autres
clients d'AWS.
Sur site
Microsoft Azure Stack Hub est une plateforme Cloud privé\hybride qui vous permet de fournir des services à partir
de votre centre de données. Les services incluent des machines virtuelles (VM), des
bases de données SQL Server et même des services à partir d’Azure Marketplace.
AWS Outposts vous permet d'exécuter certains services AWS en local et de vous connecter à un large
éventail de services disponibles dans la région AWS locale
OpenStack \ VMware VCF sont deux solutions qui comprennent un ensemble de logiciels permettant de déployer
des infrastructures de Cloud sur site. 190
Cloud Computing
Modèles de déploiement: Cloud hybride
Le Cloud hybride est la combinaison de plusieurs infrastructures Cloud distinctes (privé et
public) qui sont liées entre elles par des technologies standardisées ou propriétaires qui
permettent la portabilité des données et des applications.
Ainsi un Cloud hybride peut avoir l'une des compositions suivantes :
Au moins un Cloud privé et au moins un Cloud public ;
Au moins deux Cloud privés ;
Au moins deux Cloud publics ;
Un environnement bare métal ou virtuel connecté à au moins un Cloud privé ou public.

191
Cloud Computing
Modèles de déploiement: Cloud hybride

Caractéristiques d’un Cloud hybride:


Tous modèles de déploiement de Cloud hybride doivent permettre de :
Connecter plusieurs ordinateurs via un réseau local (LAN), un réseau étendu (WAN), un
réseau privé virtuel (VPN) et/ou des API ;
Centraliser des ressources informatiques ;
Réagir de manière agile et mettre en place rapidement de nouvelles ressources;
Pouvoir transférer des charges de travail d'un environnement à un autre ;
Inclure un outil de gestion unique (avoir une interface centralisée pour la surveillance,
la configuration, la gestion des performances, la sécurité et d'autres aspects liés aux
ressources informatiques)

192
Cloud Computing
Modèles de déploiement: Cloud hybride

Cas d’usage:
Une entreprise exécute toutes ses charges de travail sur un cluster virtuel, qui fonctionne au
maximum de sa capacité. Par conséquent, les temps de réponse sont longs et les
utilisateurs des applications sont insatisfaits.
La solution consiste à déployer un autre cluster virtuel et à automatiser l'équilibrage des
charges de travail entre les deux clusters. Cette opération correspond à la première étape
de création d'un environnement hybride. L'entreprise peut étendre sa gamme
d'infrastructures et y inclure un Cloud privé de type IaaS (Infrastructure-as-a-Service).
Les charges de travail qui n'ont pas besoin d'être exécutées sur l'infrastructure virtuelle
peuvent être migrées vers le Cloud privé IaaS, ce qui permet d'augmenter leur disponibilité
et de réaliser des économies.

193
Cloud Computing
Modèles de déploiement: Cloud hybride

Avantages et inconvénients

Avantages Inconvénients
• Coût avantageux, signifie que vous pouvez facilement • La sécurité, en raison de la nature du Cloud hybride, de
acquérir les avantages des solutions de Cloud public tout nombreuses vulnérabilités de sécurité y sont présentes. Par
en utilisant le Cloud privé; conséquent, assurer une sécurité adéquate est un
• Résilience accrue car ils réduisent les temps d'arrêt processus difficile. Des mesures de précaution appropriées
potentiels. Cela signifie qu'en cas de panne ou de doivent être prises pour s'assurer que les données sont
catastrophe, les entreprises peuvent poursuivre leurs bien protégées .
activités avec un minimum d'interruptions ; • La connectivité réseau entre les différents Cloud peut
• Évolutivité et adaptation aux besoins. Cela signifie que les générer un goulots d'étranglement (ralentissement global
entreprises peuvent déplacer les opérations selon les pics des performances) ce qui affecte considérablement le
de charge et augmenter et réduire leurs ressources en niveau de performance de certains modèles Cloud hybride
fonction de leurs besoins ; • Maintenir la visibilité sur une infrastructure distribuée est
• Bénéficier des services du Cloud public et privé ; plus complexe;
• Grande agilité qui garantit que l’entreprise est
suffisamment agile pour répondre aux besoins métier.
194
Cloud Computing
Modèles de déploiement: Cloud hybride
Fournisseurs:le cloud hybride résulte de la fusion de plusieurs clouds publics et privés. En
conséquence, les fournisseurs de services de cloud public et privé deviennent également des
fournisseurs de cloud hybride en facilitant la connectivité pour interconnecter les divers clouds.
Exemple de services middleware ou VPN préconfiguré permettant l’interconnexion des Cloud:
Fournisseurs cloud public Description
Le service Cloud AWS Direct Connect représente le chemin le plus court vers vos
Direct Connect Amazon ressources AWS. Il permet une connexion direct vers les services AWS de façon
Web Services (AWS) sécurisé, tout en réduisant le cout de transfert des données.
L'interconnexion dédiée établit des connexions physiques directes entre votre réseau
Interconnexion dédiée Google Cloud sur site et le réseau Google. Cette solution permet de transférer de grandes quantités
de données entre les réseaux et peut s'avérer plus rentable que l'achat de bande
passante supplémentaire sur Internet.
Utilisez Azure ExpressRoute pour créer des connexions privées entre les centres de
ExpressRoute Microsoft Azure données Azure et l'infrastructure sur site de votre entreprise ou dans un
environnement de colocation. Les connexions ExpressRoute ne transitent pas par
l'Internet public et offrent plus de fiabilité, une vitesse plus rapide et une latence plus
faible que les connexions Internet classiques. 195
Cloud Computing
Modèles de déploiement: Cloud public, privé ou hybride
Un Cloud privé est idéal dans les cas d'utilisation où vous devez :
Protéger des informations sensibles, y compris la propriété intellectuelle ;
Respecter les exigences de souveraineté (lois sur la confidentialité, la sécurité et d'autres
réglementations liées à la gestion des données) ou de conformité des données ;
Assurer une haute disponibilité.
Le Cloud public est idéal dans les cas d'utilisation où vous devez :
Faire rapidement évoluer le système et accélérer la mise sur le marché ;
Traiter des charges de travail à court terme ;
Gérer les coûts initiaux ;
Réduire la charge sur les ressources informatiques.
NB: la plupart des organisations doivent de tirer parti à la fois du cloud public et
du cloud privé afin de répondre aux besoins spécifiques de chaque application
et d'optimiser la gestion des charges de travail.
196
Cloud Computing
Aperçu du marché du Cloud
Part de marché mondiale des principaux fournissuers de services cloud 2022

197
Cloud Computing
Les principaux métiers

198
Cloud Computing
Les principaux metiers
Cloud Solution Architect
Concevoir et planifier l'architecture d'une solution cloud.
Gérer et provisionner l'infrastructure de la solution cloud.
Concevoir des solutions sécurisées et conformes.
Analyser et optimiser les processus techniques et métier.
Gérer la mise en œuvre d'une architecture cloud. Garantir la fiabilité de la solution et des
opérations.
Cloud Developer
Conception d'applications cloud natives hautement évolutives, disponibles et fiables.
Création et test d'applications.
Déploiement d'applications.
Intégration de services cloud selon le fournisseur.
Gestion de la surveillance des performances d'application.

199
Cloud Computing
Les principaux metiers
Cloud SysOps
Mettre en œuvre et contrôler le flux de données depuis/vers le cloud.
Sélectionner le service cloud approprié en fonction des exigences client.
Connaître l’utilisation adéquate des bonnes pratiques de fonctionnement.
Estimer les coûts d’utilisation des services et identifier les mécanismes de contrôle des
coûts.
Migrer les charges de travail sur site vers le cloud.
Cloud Security Engeneer
Configuration des accès au sein d'un environnement de solution cloud
Configuration de la sécurité réseau
Protection des données
Gestion des opérations dans un environnement de solution cloud Capacité à assurer la
conformité

200

Vous aimerez peut-être aussi