Cours connexes :


Cloud & Edge Computing - Semestre 9

Annee academique : 2024-2025 Enseignant : Sami Yangui Categorie : Cloud, Virtualisation, Edge Computing


PART A - Presentation Generale

Vue d'ensemble

Le cours de Cloud & Edge Computing presente les systemes cloud centralises et les solutions edge decentralisees, preparant a repondre aux defis technologiques modernes. Enseigne par Sami Yangui, ce cours explore les technologies de virtualisation, les services cloud et les infrastructures edge. Il met l’accent sur la conception, le deploiement et la gestion d’architectures qui combinent les avantages de faible latence du edge computing avec la scalabilite des environnements cloud.

Cette formation est particulierement pertinente dans le contexte actuel, ou la montee de l’IoT, des applications temps reel et des reseaux necessite une expertise dans ces domaines.

Objectifs pedagogiques :

Position dans le cursus

Ce module s’appuie sur les bases acquises precedemment :

Il se connecte directement aux autres cours du semestre :


PART B - Experience et Contexte

Organisation et ressources

Le module combinait theorie et pratique intensive :

Cours magistraux :

Travaux pratiques :

Outils utilises :

Mon role

Dans le cadre de ce cours, j’etais responsable de :

Difficultes rencontrees

Configuration reseau VirtualBox : La mise en place des reseaux virtuels (NAT, bridge, host-only) et la comprehension de leur interaction a necessite du temps et de la methodologie.

Deploiement OpenStack : OpenStack est une plateforme complexe avec de nombreux composants interdependants. La configuration initiale et la resolution de problemes de connectivite entre services ont ete des defis formateurs.

Kubernetes en temps limite : La session sur Kubernetes a ete realisee rapidement avec mon binome. Nous avons du executer les commandes sans toujours avoir le temps de comprendre chaque etape en profondeur. Le rapport redige a posteriori nous a permis de mieux assimiler les concepts.


PART C - Aspects Techniques Detailles

1. Fondamentaux de la virtualisation

Sans virtualisation :

Dans un environnement sans virtualisation, une seule application s’execute directement sur le systeme d’exploitation hote qui gere le materiel physique. Cette approche presente des limitations en termes d’isolation, de scalabilite et d’utilisation des ressources.

Figure : Architecture sans virtualisation - une seule application sur l'OS hote

Avec virtualisation :

La virtualisation permet d’executer plusieurs systemes d’exploitation et applications sur un meme materiel physique grace a un hyperviseur. Chaque machine virtuelle (VM) dispose de ses propres ressources virtualisees (CPU, RAM, stockage, reseau).

Figure : Architecture avec virtualisation - plusieurs VMs sur un meme hote physique via un hyperviseur

Avantages de la virtualisation :

2. Hyperviseurs Type 1 et Type 2

L’hyperviseur est le composant logiciel qui permet la virtualisation. Il existe deux types principaux :

Hyperviseur de Type 1 (Bare Metal) :

L’hyperviseur s’execute directement sur le materiel physique, sans systeme d’exploitation hote intermediaire. Il offre de meilleures performances et une securite accrue car il a un acces direct au materiel.

Exemples : VMware ESXi, Microsoft Hyper-V, Citrix XenServer, KVM

Caracteristiques :

Hyperviseur de Type 2 (Hosted) :

L’hyperviseur s’execute comme une application sur un systeme d’exploitation hote existant. Il est plus simple a installer et a utiliser mais offre des performances legerement inferieures.

Exemples : Oracle VirtualBox, VMware Workstation, Parallels Desktop

Caracteristiques :

Figure : Hyperviseur Type 1 (Bare Metal)

Figure : Hyperviseur Type 2 (Hosted)

Critere Type 1 (Bare Metal) Type 2 (Hosted)
Installation Directement sur le materiel Sur un OS existant
Performance Elevee Moderee
Usage principal Datacenters, production Developpement, tests
Securite Forte (acces direct) Dependante de l’OS hote
Exemples ESXi, KVM, Hyper-V VirtualBox, VMware Workstation

3. Paravirtualisation

La paravirtualisation est une technique ou le systeme d’exploitation invite est modifie pour communiquer directement avec l’hyperviseur via des “hypercalls”, au lieu de simuler completement le materiel. Cela ameliore les performances par rapport a la virtualisation complete, car les appels systeme sont optimises pour l’environnement virtualise.

Figure : Solutions de paravirtualisation - OpenNebula, OpenStack, Proxmox

Avantages de la paravirtualisation :

Inconvenients :

4. Conteneurs vs Machines Virtuelles

Les conteneurs representent une evolution majeure par rapport aux machines virtuelles traditionnelles. Contrairement aux VMs qui virtualisent le materiel complet, les conteneurs partagent le noyau du systeme d’exploitation hote et n’embarquent que les bibliotheques et dependances necessaires a l’application.

Figure : Ecosysteme conteneur - Container Linux, Solaris, Docker

Critere Machine Virtuelle Conteneur
Isolation Complete (OS separe) Au niveau processus
Taille Go (OS complet) Mo (bibliotheques seulement)
Demarrage Minutes Secondes
Performance Overhead (hyperviseur) Proche du natif
Portabilite Limitee Excellente
Densite ~10-20 VMs par serveur ~100+ conteneurs par serveur
Securite Forte (isolation materielle) Moderee (noyau partage)

Cas d’utilisation des VMs :

Cas d’utilisation des conteneurs :

5. Docker et conteneurisation

Docker est la plateforme de conteneurisation la plus populaire. Elle permet de creer, deployer et gerer des conteneurs de maniere efficace. Lors des travaux pratiques, j’ai appris a utiliser Docker pour virtualiser des applications dans des environnements isoles.

Figure : Logo Docker

Architecture Docker :

Commandes principales utilisees en TP :

# Telecharger une image depuis Docker Hub
docker pull ubuntu:20.04

# Lancer un conteneur en mode interactif
docker run -it --name mon_conteneur ubuntu:20.04 /bin/bash

# Lister les conteneurs actifs
docker ps

# Lister tous les conteneurs (actifs et arretes)
docker ps -a

# Construire une image a partir d'un Dockerfile
docker build -t mon_image .

# Exposer un port et lancer un conteneur en arriere-plan
docker run -d -p 8080:80 --name serveur_web nginx

# Gerer les volumes pour la persistance
docker run -v /host/data:/container/data mon_image

Exemple de Dockerfile :

FROM ubuntu:20.04
RUN apt-get update && apt-get install -y python3 pip
COPY app.py /app/
WORKDIR /app
EXPOSE 5000
CMD ["python3", "app.py"]

Avantages de Docker :

6. Modeles de service Cloud : IaaS, PaaS, SaaS

Le Cloud Computing propose differents niveaux d’abstraction pour les services, representes par trois modeles principaux :

Figure : Modeles de service Cloud - IaaS, SaaS, PaaS et leurs niveaux d'abstraction

IaaS (Infrastructure as a Service) :

Fournit les ressources d’infrastructure virtualisees (serveurs, stockage, reseau). L’utilisateur gere l’OS, les middlewares et les applications.

PaaS (Platform as a Service) :

Fournit une plateforme de developpement et de deploiement. L’utilisateur se concentre sur le code applicatif sans gerer l’infrastructure sous-jacente.

SaaS (Software as a Service) :

Applications logicielles accessibles via le navigateur, entierement gerees par le fournisseur.

Aspect IaaS PaaS SaaS
Controle Total Partiel Minimal
Complexite Elevee Moyenne Faible
Scalabilite Manuelle/Semi-auto Automatique Automatique
Cout Pay-per-use Pay-per-use Abonnement
Public cible Admins systeme Developpeurs Utilisateurs finaux

Caracteristiques essentielles du Cloud (NIST) :

Figure : Les caracteristiques essentielles du Cloud Computing selon le NIST

Les cinq caracteristiques essentielles definies par le NIST :

Modeles de deploiement Cloud :

7. OpenStack - Plateforme Cloud Open-Source

OpenStack est une plateforme open-source de cloud computing, principalement deployee comme IaaS. Elle permet la gestion de grands pools de ressources de calcul, de stockage et de reseau, le tout administrable via un tableau de bord (Horizon) ou via l’API OpenStack.

Figure : Architecture d'OpenStack et ses composants principaux

Composants principaux d’OpenStack :

Composant Nom du projet Fonction
Compute Nova Gestion des instances de machines virtuelles
Networking Neutron Reseaux virtuels, sous-reseaux, routeurs, firewalls
Image Glance Stockage et gestion des images de VMs
Identity Keystone Authentification, autorisation, catalogue de services
Dashboard Horizon Interface web d’administration
Block Storage Cinder Volumes de stockage persistants
Object Storage Swift Stockage objet distribue
Orchestration Heat Templates d’infrastructure (Infrastructure as Code)

Architecture OpenStack :

L’architecture OpenStack suit un modele de services distribues communiquant via des APIs REST. Keystone fournit l’authentification centralisee. Nova gere le cycle de vie des VMs en s’appuyant sur Glance pour les images, Neutron pour le reseau et Cinder pour le stockage.

Manipulations realisees en TP :

8. Configuration reseau avec VirtualBox

Les travaux pratiques m’ont permis de configurer des reseaux virtuels avec VirtualBox. J’ai appris a creer et configurer des machines virtuelles, tester leur connectivite, et mettre en place des regles de redirection de ports pour permettre la communication entre les VMs et l’hote.

Figure : Configuration reseau avec VirtualBox

Types de reseau VirtualBox configures :

Mode reseau Acces Internet Communication inter-VM Acces depuis l’hote
NAT Oui Non Via port forwarding
Bridged Oui Oui Oui
Host-Only Non Oui Oui
Internal Non Oui (meme reseau) Non

Manipulations realisees :

9. Paradigme Edge Computing

Le Edge Computing est un paradigme qui consiste a traiter les donnees au plus pres de leur source de generation, plutot que de les envoyer systematiquement vers un datacenter cloud centralise. Ce concept est fondamental pour les applications necessitant une faible latence, une bande passante reduite ou une souverainete des donnees.

Motivations du Edge Computing :

Caracteristiques cles :

10. Fog Computing

Le Fog Computing, introduit par Cisco, est une extension du cloud computing qui rapproche les services de calcul, de stockage et de reseau des peripheriques edge. Il se situe comme une couche intermediaire entre les dispositifs IoT (edge) et le cloud centralise.

Differences Fog vs Edge :

Aspect Edge Computing Fog Computing
Localisation Sur le dispositif ou tres proche Entre edge et cloud
Capacite de calcul Limitee Moderee
Latence Tres faible Faible
Exemples Capteurs, gateways IoT Serveurs locaux, routeurs intelligents
Scope Traitement immediat Aggregation, pre-traitement

Architecture Fog Computing :

  1. Couche Edge : capteurs et actionneurs (collecte de donnees brutes)
  2. Couche Fog : passerelles, serveurs locaux (pre-traitement, filtrage, decisions rapides)
  3. Couche Cloud : datacenters (analyse approfondie, stockage long terme, machine learning)

11. MEC - Multi-access Edge Computing

Le MEC (Multi-access Edge Computing), standardise par l’ETSI, est un concept qui integre les capacites de calcul au niveau de l’infrastructure des operateurs de telecommunications, typiquement dans les stations de base ou les points d’acces du reseau.

Caracteristiques du MEC :

Cas d’utilisation MEC :

12. Continuum Cloud-Edge

Le continuum cloud-edge represente une vision unifiee ou les ressources de calcul sont distribuees de maniere continue depuis les dispositifs edge jusqu’au cloud centralise. L’objectif est d’offrir une orchestration transparente qui place automatiquement les traitements la ou ils sont le plus pertinents.

Principes du continuum :

Gestion autonomique :

Figure : Boucle autonomique MAPE-K (Monitor, Analyze, Plan, Execute) pour la gestion du continuum cloud-edge

Le modele MAPE-K (Monitor, Analyze, Plan, Execute - Knowledge) permet une gestion autonomique des ressources du continuum :

13. Orchestration de conteneurs avec Kubernetes

Kubernetes (K8s) est la plateforme standard pour l’orchestration de conteneurs a grande echelle. Elle automatise le deploiement, la mise a l’echelle et la gestion des applications conteneurisees.

Architecture Kubernetes :

Plan de controle (Control Plane) :

Noeuds Worker :

Concepts fondamentaux :

Concept Description
Pod Unite de deploiement minimale (1+ conteneurs)
Deployment Gestion declarative des pods (replicas, mises a jour)
Service Exposition reseau stable pour un ensemble de pods
Namespace Isolation logique au sein d’un cluster
ConfigMap/Secret Configuration et donnees sensibles
PersistentVolume Stockage persistant pour les pods

Exemple de deploiement YAML utilise en TP :

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  type: LoadBalancer

Commandes Kubernetes utilisees en TP :

# Deployer une application
kubectl apply -f deployment.yaml

# Voir les pods en cours d'execution
kubectl get pods

# Voir les services
kubectl get services

# Mettre a l'echelle un deploiement
kubectl scale deployment nginx-deployment --replicas=5

# Voir les logs d'un pod
kubectl logs <nom-du-pod>

# Description detaillee d'un pod
kubectl describe pod <nom-du-pod>

PART D - Analyse et Reflexion

Competences acquises

Virtualisation et conteneurisation : Maitrise des differences fondamentales entre VMs et conteneurs, des hyperviseurs Type 1 et Type 2, et des outils Docker et VirtualBox. Capacite a choisir la technologie adaptee selon le cas d’usage.

Cloud Computing : Comprehension des modeles de service (IaaS, PaaS, SaaS) et de deploiement (public, prive, hybride). Experience pratique avec OpenStack pour le deploiement d’une infrastructure cloud.

Edge Computing : Apprehension du paradigme edge et de ses variantes (Fog Computing, MEC). Comprehension du continuum cloud-edge et des enjeux d’orchestration dans un environnement distribue.

Orchestration : Competence initiale avec Kubernetes pour le deploiement et la gestion de services conteneurises. Comprehension de l’architecture cluster et des fichiers de configuration YAML.

Points cles a retenir

1. La virtualisation est le socle du cloud : Sans virtualisation (VMs ou conteneurs), le cloud computing n’existerait pas. Comprendre ces mecanismes est fondamental pour tout ingenieur cloud.

2. Conteneurs et VMs sont complementaires : Les conteneurs ne remplacent pas les VMs. Chaque technologie a ses cas d’usage. En production, on utilise souvent des conteneurs deployes sur des VMs pour combiner les avantages des deux.

3. Le edge computing repond a des besoins reels : L’IoT, la 5G et les applications temps reel rendent le edge computing indispensable. Le cloud seul ne suffit plus pour toutes les charges de travail.

4. L’orchestration est essentielle a grande echelle : Kubernetes est devenu le standard de facto pour gerer des centaines de conteneurs. Maitriser cet outil est une competence tres demandee.

5. Le continuum cloud-edge est l’avenir : La tendance est a l’integration transparente de toutes les couches (edge, fog, cloud) avec une orchestration unifiee.

Retour d'experience

J’ai developpe de nouvelles competences en architectures hybrides et leurs applications dans les environnements informatiques modernes. J’ai pu comprendre et utiliser l’ensemble des concepts abordes. Cependant, j’ai realise qu’il me faudra pratiquer ces outils a l’avenir pour ne pas les oublier, car je n’ai pas actuellement l’opportunite de les utiliser dans mon entreprise d’apprentissage.

La session sur Kubernetes ayant ete realisee rapidement avec mon binome, nous avons du passer vite et simplement lancer les commandes. Grace au rapport que nous avons redige, il a ete plus simple de comprendre les concepts dans un second temps.

Mon avis

Ce cours etait tres interessant. J’ai eu la chance d’apprendre de nombreux concepts que j’entends dans la vie courante pour certains metiers. Ce cours sera reellement utile pour mon parcours professionnel ou ces concepts pourraient etre appliques.

Le contenu du cours etait bien structure, partant des bases de la virtualisation et progressant graduellement vers des sujets plus complexes. Cette progression m’a aide a mieux comprendre puis a elargir mes connaissances vers des concepts plus avances.

Je me sens desormais plus confiant pour concevoir, deployer et gerer des solutions cloud-edge scalables.

Applications professionnelles :

Liens avec les autres cours :


Documents de Cours

Cours Complet Cloud & Edge Computing

Cours complet sur le Cloud & Edge Computing : virtualisation, modeles de service, OpenStack, Edge Computing, Fog Computing, MEC, continuum cloud-edge.

Telecharger le cours


Rapports et Projets

Rapport de Projet Cloud Computing

Ouvrir le rapport complet

Ouvrir le sujet de TP


Cours suivi en 2024-2025 a l’INSA Toulouse, Departement Genie Electrique et Informatique, specialite ISS.