Virtualisation & Cloud Computing PDF
Document Details
Uploaded by BountifulUvarovite9473
Institut Supérieur d'Informatique et de Mathématiques de Monastir
Tags
Summary
This document provides a comprehensive overview of virtualization and cloud computing. It details the fundamental concepts, different types of virtualization, and explores numerous practical aspects and its benefits. The document also highlights the challenges and software solutions within the field.
Full Transcript
Virtualisation & Cloud Computing la virtualisation est une méthode faisant fonctionner un ou des systèmes d'exploitation invités dans des machines virtuelles, au-dessus d'un système d'exploitation hôte La virtualisation repose sur trois éléments importants : L'abstraction des ressources info...
Virtualisation & Cloud Computing la virtualisation est une méthode faisant fonctionner un ou des systèmes d'exploitation invités dans des machines virtuelles, au-dessus d'un système d'exploitation hôte La virtualisation repose sur trois éléments importants : L'abstraction des ressources informatiques La répartition des ressources par l'intermédiaire de différents outils, de manière à ce que celles-ci puissent être utilisées par plusieurs environnements virtuels La création d'environnements virtuels. Plusieurs types de virtualisation existent, mais toutes fonctionnent selon un même principe : Un système d'exploitation principal (appelé système d'exploitation hôte) est installé dans l'ordinateur et sert de système d'accueil à d'autres systèmes d'exploitation ; Dans le système d'exploitation hôte, un logiciel de virtualisation (appelé hyperviseur) est installé. Celui-ci crée de environnements clos(machines virtuelles), isolés, avec des ressources bien précises D'autres systèmes d'exploitation (appelés systèmes d'exploitation invités) peuvent alors être installés sur des machines virtuelles. Leur instance est totalement isolée du système hôte et des autres systèmes invités. La virtualisation permettant d'exécuter simultanément plusieurs systèmes d'exploitation et plusieurs applications sur le même ordinateur, ce qui accroît l'utilisation et la flexibilité du matériel. VDI pour Virtual Desktop Infrastructure, a pour objectif de relocaliser le poste de travail au sein du data center de l'entreprise, sur une infrastructure virtuelle Chaque outil de virtualisation met en œuvre une ou plusieurs de ces notions : Une couche d'abstraction matérielle et/ou logicielle Un système d'exploitation hôte (installé directement sur le matériel) Un système d'exploitation (ou application, ou encore un ensemble d'applications) « virtualisé(s) » ou « invité(s) Un partitionnement, isolation et/ou partage des ressources physiques et/ou logicielles Des images manipulables : démarrage, arrêt, clonage, sauvegarde et restauration, sauvegarde de contexte, migration d'une machine physique à une autre Un réseau virtuel : réseau purement logiciel, interne à la machine hôte, entre hôte et/ou invités L'émulation:Consiste à utiliser un système d'exploitation(ou un programme) sur un système qui n'utilise pas la même architecture container ou isolation: Un isolateur est un logiciel permettant d'isoler l'exécution des applications dans ce que l'on appelle des contextes ou bien zones d'exécution. Noyau en espace utilisateur : Tourne comme une application en espace utilisateur de l'OS hôte. Le noyau user- space a donc son propre espace utilisateur dans lequel il contrôle ses applications. Un hyperviseur de « type 1 » est un hyperviseur s'exécutant directement sur une plateforme matérielle. Il implémente la plupart des services que fournissent les noyaux de systèmes d'exploitation courants, entre autres : la gestion mémoire complète des machines virtuelles ainsi que leur ordonnancement.Il peut être assimilé à un noyau allégé et optimisé, il n'est donc pas dépendant d'un système d'exploitation classique pour fonctionner. Un hyperviseur de « type 2 » est un émulateur s'exécutant au dessus d'un système d'exploitation classique (hôte) comme n'importe quel autre programme.Il utilise les services fournis par le système d'exploitation hôte pour gérer la mémoire et l'ordonnancement des machines virtuelles. Les systèmes d'exploitation invités n'ont pas conscience d'être virtualisés. ces derniers croient dialoguer directement avec le matériel les bénéfices: Optimisation de la charge de travail des serveurs physiques Amélioration de la prévention et la gestion des pannes ainsi que le plan de reprise de l'activité du système Réduction des dépenses en matière d'administration Réduction des coûts d'hébergements en data center Réduction des coûts de licences , des frais de structure, des coûts énergétiques. Optimisation du taux d'utilisation des ressources en virtualisation Augmentation de la qualité de service assurant la santé des applications et processus associés. Augmentation de la disponibilité des applications Amélioration de la maintenance et de la gestion de la performance via un monitoring en temps réel Déploiement rapide des nouvelles applications , services et données Amélioration du management et de la réponse au demande imprévue (80%) Les défis: -l'OS invité suppose qu'il a accès à la totalité de la mémoire de la machine. Or ce n'est pas le cas puisqu'il la partage avec les autres OS et l'hyperviseur. L'hyperviseur doit donc surveiller et intercepter les tentatives d'accès de l'OS invité à des adresses mémoires non disponibles, et les détourner. Un processeur n'est capable d'exécuter qu'un nombre réduit d'instructions élémentaires, ensemble appelé ISA -(Instruction Set Architecture), codé dans le processeur et non modifiable. Principales solutions logiciels: -Virtualbox: solution de virtualisation qui permet sous Windows, Mac OS X, Linux, OpenSolaris de faire fonctionner un système d'exploitation via une machine virtuelle - kernel virtual machine:est une machine libre pour linux. - Citrix-XEN: permet d'exécuter plusieurs systèmes d'exploitation (et leurs applications) de manière isolée sur une même machine physique sur plate-forme x86, x86-64, IA-64. - VirtualPC: Permet d'émuler un système d'exploitation sur une architecture matérielle différente de celle à laquelle il était initialement destiné. Le cloud computing (littéralement « le calcul sur/avec le nuage ») est un modèle informatique qui vous permet d'accéder des ressources logicielles, des serveurs et du stockage sur Internet, en libre-service, normalement payant à la demande (sauf exception). Le « cloud computing » est une technologie informatique émergente qui utilise l'Internet et des serveurs centraux, utilisés à distance, pour gérer des données et des applications. Cloud-Modèles: Modèles de services Modèles de déploiement Modèle de Développement Modèle de Déploiement Modèle de Consommation Les Services du Cloud peuvent être divisés en3 couches (pile) : 1. Infrastructure as a Service: IaaS 2. Platform as a Service: PaaS 3. Software as a Service: SaaS Infrastructure as a Service (IaaS):C'est le service de plus bas niveau. Il consiste à offrir un accès à un parc informatique virtualisé. C'est le service de plus bas niveau. Il consiste à offrir un accès à un parc informatique virtualisé. Platform as a Service (PaaS): Dans ce type de service, situé juste au-dessus du précédent, le système d'exploitation et les outils d'infrastructure sont sous la responsabilité du fournisseur. Couches du PaaS: -OS du Cloud -Middleware (logiciel tiers créant un réseau d'échange d'informations entre différentes applications informatiques) du Cloud. Software as a Service (SaaS):Ceci est le plus haut niveau de la couche de la pile du Cloud - directement utilisé (consommé) par l'utilisateur final. SaaS (Software as a Service /Logiciels comme service). La prochaine génération de SaaS promet que tout peut devenir un service sur Internet. Un nuage (Cloud) peut être public, privé, hybride ou communautaire : Nuage public : Accessible au grand public, avec des services fournis par une entreprise propriétaire de l'infrastructure. Nuage privé : Réservé à une organisation, autogéré ou administré par des tiers. Nuage communautaire : Partagé par des membres ayant un intérêt commun, souvent utilisé dans les milieux académiques. Nuage hybride : Combine des prestataires internes et externes pour un environnement mixte. Buts d'OpenStack : Établir un standard pour créer des Clouds hybrides adaptés aux grandes entreprises et concurrencer les solutions propriétaires comme Microsoft et VMware. Simplifier la mise en œuvre du Cloud et assurer une extensibilité maximale. OpenStack : Architecture Compute Infrastructure (Nova) : Gère le cycle de vie des VM, le réseau et les authentifications. Implémente le scheduling des VM via nova-Scheduler et le dispatching des requêtes avec Queue Server. Storage Infrastructure (Swift) : Assure un stockage de données redondant et tolérant aux pannes, avec une capacité évolutive et un basculement entre objets. Imaging Service (Glance) : Gère le stockage des images des VM. Implémentation : Chaque sous-projet est composé de plusieurs services. Communication : Assurée par RabbitMQ. Base de données : Utilisation de MySQL. Multi-tenant : Permet un travail dans des environnements isolés où les instances, réseaux et images sont associés à un tenant. Glance : Registre d'images et de snapshots utilisé par Nova pour démarrer des instances. Propriétés définissables : Type d'image, architecture, espace disque minimum, RAM minimum. Images cloud : Images disques contenant un OS préinstallé, instables sans erreur sur plusieurs machines. Disponibilité : La plupart des distributions fournissent des images cloud prêtes à l'emploi. Nova : Gère les instances, les flavors (types d'instance), les groupes de sécurité (Security Groups) et les adresses IP flottantes (Floating IPs). Nova API : Manipulation des instances via une API utilisateur. API de metadata fournissant des configurations personnalisées aux instances. Nova Compute : Exécute les machines virtuelles via des drivers comme libvirt, XenAPI, VMWare ESX, Hyper-V. Fournit des logs de console et une console VNC. Nova Scheduler : Détermine sur quel serveur de calcul exécuter une instance. Utilise des algorithmes pour une allocation optimale. Choix d'ordonnancement : ○ Simple : sélectionne l’hôte le moins chargé. ○ Chance : choisit un hôte au hasard. ○ Filtrage : utilise des filtres par défaut (AvailabilityZoneFilter, RamFilter, ComputeFilter). Neutron : Anciennement Quantum et nova-network. Cinder :Fournit des volumes attachables aux instances. Gère différents types de volumes, snapshots et backups. Permet le stockage persistant et le démarrage depuis un volume. Horizon :Utilise les APIs existantes pour fournir une interface. Module Django, avec OpenStack Dashboard comme implémentation officielle. Les services apparaissent s'ils sont répertoriés dans le catalogue de services de Keystone. Swift (Stockage objet):Pousser et retirer des objets dans un container Pas de hiérarchie des données, pas de système de fichiers Accès par les APIs Ceilometer :Index les métriques d’utilisation des services cloud. Fournit des APIs pour récupérer ces données. Base pour les outils de facturation. Heat :Ordonne les ressources (compute, storage, network, etc.). Se couple avec cloud-init. Implémente l’autoscaling. API (Application Programming Interface) : Sens logiciel : Interface permettant à un logiciel d'utiliser une bibliothèque. Sens cloud : Interface permettant d'utiliser un service Accès aux APIs : Directement via HTTP avec des outils comme curl. Implémentations officielles en Python et d'autres langages (ex : jclouds). Outils officiels en ligne de commande et avec Horizon (API HTTP REST). Haute Disponibilité (HA) : ○ Les clusters HA répartissent la charge entre plusieurs serveurs et garantissent l'exécution des tâches même en cas de défaillance d'un nœud. Catégories HA : ○ Actif / Passif avec failover : Un serveur actif, l'autre passif. En cas de défaillance, le serveur passif prend la relève. Chaque serveur doit être assez puissant pour maintenir des temps de réponse acceptables. ○ Actif / Actif avec load balancing : L'application s'exécute sur tous les serveurs et la charge est répartie. Si un serveur échoue, les autres prennent toute la charge. Avantages du Cloud : Réduction des coûts : Réduction du coût total de possession des systèmes informatiques et flexibilité d'ajustement des ressources. Économies : Grâce à la mutualisation des services, des économies de 20 à 25 % pourraient être réalisées, notamment pour les gouvernements. Accès pour les petites entreprises : Permet aux petites entreprises d'accéder à des services coûteux réservés aux grandes entreprises. Abonnement sans acquisition d'actifs : L'entreprise peut éviter l'achat d'actifs informatiques, comptabilisés dans le bilan, et leurs amortissements. Comptabilisation en dépenses de fonctionnement : Les dépenses informatiques peuvent être comptabilisées comme des dépenses de fonctionnement. Inconvénients du Cloud : Perte de maîtrise : L'informatique est confiée à des tiers, ce qui limite le contrôle direct. Réversibilité difficile : L'exportation des données peut être complexe, et les coûts de sortie ne sont pas toujours pris en compte. Enfermement propriétaire (vendor lock-in) : Le client peut être piégé par son prestataire, notamment en cas de changement de contrat, hausse de prix ou besoin d'accéder à ses données en local. Critiques : Richard Stallman considère le cloud comme un "piège" où les utilisateurs perdent le contrôle de leurs applications, et Larry Ellison le voit comme un phénomène de mode sans véritable valeur. Sécurité et Confidentialité du Cloud : Gestion des identifiants : Sécurisation des identités et de l'accès. Confidentialité des données : Protection des données et maintien de leur confidentialité. Sécurité physique et personnelle : Protection des infrastructures et des utilisateurs. Dépendance au prestataire : Risque de perte de contrôle en raison de la confiance accordée au fournisseur tiers. Disponibilité : Garantie de disponibilité (souvent 99 % ou plus), dépend des contrats. Maturité des applications : Certaines applications sont mal adaptées à l'interface web. Sécurité des applications : Risques accrus face aux cyberattaques. Contrôle des applications : Le client peut perdre le contrôle sur certaines applications hébergées. Questions juridiques : Localisation des données et des data centers, soumise aux législations locales. Aspects contractuels : Les contrats cloud abordent la disponibilité, la sécurité, la confidentialité et le support. Deux attitudes face au Cloud : Pro-cloud : ○ Entreprises comme Google, Amazon, Microsoft, VMware, Adobe, SAP, Oracle, et la communauté Open Cloud. ○ Favorisent les services Cloud hybride, avec des tests pour évaluer chaque modèle (dédié, clouds) et ses limites. Cloud-prudent : ○ Préoccupation sur la stabilité financière du prestataire pour acquérir et exploiter l'infrastructure. ○ Importance de la fiabilité, de la technologie éprouvée et de la capacité à gérer les incidents. ○ Question de confiance et d'attentes réalistes vis-à-vis du service Cloud. Cloud Computing L’essentiel Le constat aujourd'hui : Les coûts informatiques (humains et financiers) représentent une part importante du budget d'une entreprise. Réponse : Le Cloud Computing émerge comme solution. ○ Externalisation de l’informatique (logiciel et/ou matériel). ○ Utilisation de serveurs répartis mondialement, facilitée par Internet. Avantages et questionnements : Le Cloud Computing offre de nombreux avantages, mais reste à évaluer dans sa réalité. La tendance actuelle : Installation des logiciels sur chaque poste avec des coûts de licence. Sauvegarde locale des documents, risquant une perte en cas de panne. Documents sur serveur centralisé mais difficilement accessibles en dehors du réseau de l'entreprise. Mise à jour constante du réseau par l'administrateur (patchs, versions, antivirus). Le Cloud Computing : Concept récent qui fait référence à l'utilisation des serveurs répartis dans le monde entier et reliés par Internet. C'est un principe de grille informatique où les utilisateurs n'ont plus à gérer les serveurs. Ils accèdent de manière évolutive à des services en ligne via un navigateur web, sans se soucier de l'infrastructure sous-jacente. Les inconvénients précédents n’existent plus : Plus de logiciels à installer sur le PC, donc moins de maintenance. Applications externalisées, réduisant les coûts de licence et de développement. Moins de maintenance serveur pour l'administrateur réseau. Accessibilité mondiale des documents et applications via Internet, même en dehors du réseau de l'entreprise. Avantages selon les accords de niveaux de services (SLA) : Disponibilité 24h/24, 7j/7 des applications et des données. Mise à jour continue des applications. Sécurité accrue des données SaaS (Software as a Service) SaaS offre des logiciels accessibles via Internet, éliminant la nécessité d'installation locale. Il utilise des technologies comme Web Services et SOA. Exemples : Salesforce CRM, Google Apps, BaseCamp. Avantages : Réduction des coûts et risques. Accès à des outils collaboratifs. Inconvénients : Problèmes de confidentialité. Dépendance à la connexion Internet et au prestataire. PaaS (Platform as a Service) PaaS propose une plateforme de développement complète, gérée par un prestataire, accessible via un navigateur web. Exemples : Force.Com, Microsoft Dynamics CRM. Avantages : Maintenance gérée, développement rapide. Accès en temps réel aux modules. Inconvénients : L'application n'appartient pas à l'entreprise. Autres acteurs : Google App Engine, Amazon, Heroku. IaaS (Infrastructure as a Service) IaaS permet aux entreprises de se défaire de leur infrastructure informatique en dématérialisant les ressources dans le cloud, réduisant ainsi les coûts (électricité, climatisation, serveurs, etc.). Exemples : Microsoft Azure, IBM Blue Cloud, Amazon EC2, S3. Avantages : Réduction des contraintes liées à l'achat, la maintenance, et l'évolutivité des infrastructures. Responsabilité du prestataire pour la gestion des ressources. Flexibilité pour passer à un serveur plus puissant en cas de besoin. Moins coûteux (location de serveurs virtuels plutôt que d'achat). Gestion de gros volumes de données. Inconvénients : Confidentialité des données. Risque de perte d'accès aux données en cas de défaillance de la liaison. Résistance au changement, impact sur les métiers internes. conclusion: Le Cloud Computing connaît une forte croissance, notamment avec le SaaS pour les ERP, offrant des avantages comme la facturation à l'usage. Cependant, la confidentialité des données reste un obstacle. Des exemples comme CARRE BLANC montrent son potentiel. À l'avenir, les directions métiers pourraient se passer de DSI internes, et une compétition sur les SLA se développera entre prestataires.