Scheda di revisione: Hébergement d'applications et virtualisation

📋 Plan du Cours

  1. Hébergement applications
  2. Disponibilité 99%
  3. Évolution demande
  4. Machines virtuelles
  5. Isolation VM
  6. Hyperviseurs
  7. Conteneurs
  8. Orchestration
  9. Répartition charge
  10. Équilibrage serveurs

📖 1. Hébergement applications

🔑 Notions clés & Définitions

  • Hébergement d'applications : processus de déploiement et de gestion d'applications (sites web, bases de données) sur une infrastructure informatique pour assurer leur disponibilité et leur accessibilité.
  • Architecture classique : configuration où une machine physique héberge une seule application, ce qui entraîne une sous-exploitation matérielle et limite la capacité de mise à l’échelle (scaling).
  • Machines virtuelles (VM) : environnement virtuel simulant une machine physique, permettant d'héberger plusieurs applications sur une seule machine physique, avec une propriété d'isolation et de scalabilité (selon AUTEUR (date)).
  • Conteneurs : unité d'exécution légère qui partage le système d'exploitation de l'hôte, permettant d'héberger plusieurs applications avec une isolation, une scalabilité accrue et de meilleures performances comparées aux VM (selon AUTEUR (date)).

📝 Points essentiels

  • La problématique principale de l’hébergement d’applications est d’assurer une disponibilité de 100%, tout en étant capable de s’adapter à l’évolution de la demande.
  • L’architecture classique, où une machine = une application, pose des problèmes de sous-exploitation matérielle et empêche la mise à l’échelle efficace (problème de scaling) avec une machine par application.
  • L’utilisation de machines virtuelles permet de faire héberger plusieurs applications sur une seule machine physique, en offrant une isolation et une scalabilité, mais peut dégrader les performances (problème de performance).
  • Les hyperviseurs, qu’ils soient de type 1 (Proxmox, VMware ESXi) ou de type 2 (VirtualBox, Qemu), gèrent la création et la gestion des VM, en se plaçant entre le matériel et le système d’exploitation.
  • Les conteneurs, gérés par un moteur de conteneur, offrent une alternative plus performante que les VM, en hébergeant plusieurs applications sur une seule machine avec une isolation, une scalabilité et de meilleures performances.
  • La disponibilité et la répartition de la charge peuvent être assurées par l’orchestration, qui gère automatiquement le déploiement, la scalabilité et la résilience des applications (voir section 8).

💡 À retenir

L’hébergement d’applications évolue d’une architecture classique à des solutions utilisant machines virtuelles ou conteneurs, permettant d’optimiser l’utilisation des ressources, d’assurer une haute disponibilité, et de s’adapter à la demande grâce à l’orchestration.

📖 2. Disponibilité 99%

🔑 Notions clés & Définitions

  • Disponibilité 99% : Niveau de service garantissant que l'application sera accessible et fonctionnelle 99% du temps, ce qui implique une tolérance limitée aux pannes et interruptions.
  • Gestion des pannes : Ensemble des mécanismes et stratégies visant à détecter, isoler et réparer rapidement les défaillances pour maintenir la disponibilité, notamment via l'orchestration.
  • Rôle de l'orchestration : Outil automatisé qui gère le déploiement, la répartition de charge et la reprise après panne pour assurer une haute disponibilité des applications (ex : K3S, Kubernetes).

📝 Points essentiels

  • La disponibilité 99% nécessite une gestion proactive des pannes et une orchestration efficace pour répartir la charge et assurer la continuité du service.
  • La mise en œuvre de l'orchestration permet d'automatiser la répartition de la charge, la détection des défaillances et la relocalisation des applications en cas de panne, contribuant ainsi à la haute disponibilité.
  • La gestion des pannes est essentielle pour limiter l’impact des défaillances matérielles ou logicielles, en permettant une reprise rapide et automatisée.
  • La disponibilité à 99% ne garantit pas une absence totale d’interruption, mais limite fortement la durée et la fréquence des interruptions, en s’appuyant sur des stratégies d’orchestration et de gestion des pannes.

💡 À retenir

La disponibilité 99% repose sur une orchestration automatisée et une gestion efficace des pannes pour assurer une application accessible presque en permanence, même en cas de défaillance.

📖 3. Évolution demande

🔑 Notions clés & Définitions

  • Évolution de la demande : nécessité d’adapter dynamiquement les ressources informatiques en fonction des fluctuations de la charge pour garantir la disponibilité et la performance des applications.
  • Scaling (mise à l’échelle) : processus d’ajustement des ressources informatiques pour faire face à l’évolution de la demande, souvent par ajout ou retrait de ressources.
  • Scaling vertical (scale-up) : augmentation des ressources d’une seule machine (ex. ajouter de la RAM ou des CPU).
  • Scaling horizontal (scale-out) : ajout de machines ou d’instances pour répartir la charge, permettant une meilleure scalabilité.
  • Scalabilité : capacité d’un système à gérer une croissance de la demande en augmentant ses ressources ou en s’adaptant efficacement, notamment grâce aux machines virtuelles et conteneurs (voir section 4 et 7).
  • Machines virtuelles (VM) : technologie permettant d’héberger plusieurs environnements isolés sur une seule machine physique, offrant isolation et scalabilité (voir section 4).

📝 Points essentiels

  • Historiquement, chaque application était hébergée sur une machine dédiée, ce qui entraînait une sous-exploitation matérielle et une impossibilité de scaling efficace.
  • La nécessité d’adapter rapidement les ressources face à l’évolution de la demande a conduit à l’introduction des machines virtuelles et des conteneurs, qui offrent une scalabilité flexible et efficace.
  • Le scaling vertical est limité par la capacité matérielle d’une machine, tandis que le scaling horizontal permet d’ajouter des ressources via plusieurs machines ou instances.
  • La scalabilité est essentielle pour garantir une disponibilité de 100% et une adaptation fluide à l’évolution de la demande, en évitant la surcharge ou sous-utilisation des ressources.
  • La scalabilité offerte par les machines virtuelles et conteneurs permet de répondre à ces enjeux en facilitant la mise à l’échelle dynamique et la gestion efficace des ressources.

💡 À retenir

L’évolution de la demande impose une adaptation continue des ressources, principalement via le scaling horizontal et la scalabilité offerte par les machines virtuelles et conteneurs, pour garantir disponibilité et performance.

📖 4. Machines virtuelles

🔑 Notions clés & Définitions

  • Machines virtuelles (VM) : une machine physique héberge plusieurs VM, chaque VM correspondant à une application, permettant ainsi de partager les ressources matérielles tout en isolant chaque environnement.
  • Propriétés des VM : isolation (séparation sécurisée entre applications) et scalabilité (capacité à augmenter ou diminuer les ressources selon la demande).
  • Problème des VM : dégradation des performances, notamment en raison de la surcharge ou de la gestion des ressources partagées, pouvant entraîner une baisse de la qualité de service.

📝 Points essentiels

  • La virtualisation par VM permet de dépasser le problème historique d'une machine = une application, qui engendre sous-exploitation matérielle et impossibilité de scaling.
  • Chaque VM fonctionne comme une machine indépendante, avec ses propres ressources virtuelles, facilitant l'isolation et la sécurité.
  • La gestion des VM repose sur un hyperviseur, qui peut être de type 1 (directement sur le matériel, ex. Proxmox, VMware ESXi) ou de type 2 (sur un OS hôte, ex. VirtualBox, Qemu).
  • La propriété d'isolation est essentielle pour éviter les failles de sécurité et incompatibilités entre applications hébergées sur la même machine physique.
  • La scalabilité des VM permet d'adapter dynamiquement les ressources, mais la performance peut être impactée, ce qui constitue un problème majeur.
  • La virtualisation est souvent comparée aux conteneurs, qui offrent de meilleures performances tout en conservant l'isolation et la scalabilité, mais avec des différences fondamentales (voir section 7).

💡 À retenir

Les machines virtuelles offrent une solution efficace pour isoler et faire évoluer les applications sur une infrastructure partagée, mais leur gestion doit prendre en compte le risque de dégradation des performances.

📖 5. Isolation VM

🔑 Notions clés & Définitions

  • Isolation : propriété essentielle des machines virtuelles (VM) et des conteneurs, permettant de séparer les environnements pour garantir la sécurité et éviter les interférences entre applications.
  • Propriétés des VM : incluent l'isolation et la scalabilité, permettant d'exécuter plusieurs applications sur une même machine physique tout en maintenant leur indépendance.
  • Problème d'isolation sans VM : lorsque plusieurs applications sont hébergées sur un même OS sans VM ou conteneurs, il y a un manque d'isolation, ce qui peut entraîner des failles de sécurité et des incompatibilités entre dépendances.
  • Isolation comme propriété clé : dans le contexte des VM et des conteneurs, cette propriété garantit que chaque environnement fonctionne indépendamment, limitant ainsi les risques de propagation de défaillance ou d'attaque.

📝 Points essentiels

  • La virtualisation permet de répondre à la problématique d'hébergement d'applications tout en assurant une disponibilité de 100% et une adaptation à l'évolution de la demande, en évitant le problème de sous-exploitation matérielle et de scalabilité impossible avec une architecture classique.
  • La séparation des environnements via l'isolation est fondamentale pour la sécurité, notamment pour éviter qu'une faille dans une application ne compromette les autres.
  • Les VM offrent une isolation forte grâce à leur architecture, mais peuvent entraîner une dégradation des performances, notamment en raison de la surcharge liée à la gestion de plusieurs VM sur une même machine physique.
  • Les conteneurs, tout en étant plus performants, assurent également une isolation, mais à un niveau différent, partageant le noyau de l'OS hôte. Leur propriété d'isolation, combinée à leur scalabilité, en fait une solution efficace pour déployer rapidement des applications isolées.
  • La distinction entre hyperviseurs de type 1 (Proxmox, VMware ESXi) et de type 2 (VirtualBox, Qemu) influence la manière dont l'isolation est assurée et la performance globale du système.

💡 À retenir

L'isolation est la propriété clé qui permet aux VM et aux conteneurs de garantir la sécurité et la stabilité des environnements applicatifs, tout en facilitant la scalabilité et la gestion efficace des ressources matérielles.

📖 6. Hyperviseurs

🔑 Notions clés & Définitions

  • Hyperviseur : logiciel permettant la création et la gestion de machines virtuelles (VM), en isolant chaque VM du matériel physique et des autres VM.
  • Hyperviseur de type 1 : s’installe directement sur le matériel, offrant une meilleure performance et sécurité. Exemples : Proxmox, VMware ESXi.
  • Hyperviseur de type 2 : s’exécute au-dessus d’un système d’exploitation hôte, généralement moins performant mais plus simple à déployer. Exemples : VirtualBox, Qemu.
  • Architecture de déploiement avec hyperviseur : schéma où l’hyperviseur se situe entre le matériel physique et le système d’exploitation, permettant la virtualisation (voir "architecture de déploiement").

📝 Points essentiels

  • Rôle des hyperviseurs : créer et gérer des VM pour optimiser l’utilisation du matériel, tout en assurant l’isolation des environnements.
  • Types d'hyperviseurs :
    • Type 1 : s’installe directement sur le matériel, offrant une meilleure performance et sécurité (exemples : Proxmox, VMware ESXi).
    • Type 2 : s’installe sur un OS existant, plus facile à déployer mais avec des performances moindres (exemples : VirtualBox, Qemu).
  • Architecture de déploiement : l’hyperviseur se positionne entre le matériel et le système d’exploitation, permettant la virtualisation et la gestion simultanée de plusieurs VM.
  • La virtualisation via hyperviseur permet de résoudre le problème de sous-exploitation matérielle et facilite la mise à l’échelle, contrairement à l’architecture traditionnelle "une machine = une application" (voir "hébergement d’applications" et "architecture du déploiement").
  • La distinction entre hyperviseurs de type 1 et 2 est essentielle pour choisir la solution adaptée à un contexte donné, notamment en termes de performance, sécurité et simplicité de déploiement.

💡 À retenir

Les hyperviseurs, en particulier de type 1, sont des outils clés pour optimiser l’utilisation du matériel en permettant la virtualisation, tout en assurant l’isolation et la scalabilité des environnements.

📖 7. Conteneurs

🔑 Notions clés & Définitions

  • Conteneur : unité d’isolation légère permettant d’exécuter une application avec ses dépendances sur un même système d’exploitation, une machine peut héberger plusieurs conteneurs, chacun correspondant à une application.
  • Propriétés des conteneurs : isolation, scalabilité, et meilleures performances comparées aux machines virtuelles (VM) (voir section 4VM).
  • Moteur de conteneur : logiciel qui gère, orchestre et exécute les conteneurs, assurant leur déploiement et leur gestion efficace.

📝 Points essentiels

  • Les conteneurs offrent une solution efficace pour héberger plusieurs applications sur une seule machine, en partageant le système d’exploitation tout en maintenant une isolation suffisante pour la sécurité (propriétés clés).
  • La scalabilité des conteneurs permet d’adapter rapidement la capacité en fonction de la demande, ce qui est un avantage majeur par rapport à l’architecture traditionnelle avec une machine par application.
  • La performance des conteneurs est généralement supérieure à celle des VM, car ils évitent la surcharge liée à l’émulation complète d’un système d’exploitation.
  • La gestion des conteneurs se fait via un moteur spécifique, qui peut aussi assurer leur orchestration pour garantir la disponibilité (voir section 8).
  • L’architecture de déploiement avec conteneurs repose sur leur compatibilité avec le système d’exploitation hôte, permettant une intégration fluide et une gestion simplifiée.

💡 À retenir

Les conteneurs sont une solution moderne, performante et scalable pour héberger plusieurs applications sur une même machine, tout en assurant une isolation efficace grâce à un moteur dédié.

📖 8. Orchestration

🔑 Notions clés & Définitions

  • Orchestration : gestion automatisée des déploiements, de la scalabilité et de la disponibilité des applications, permettant d'assurer une gestion efficace des ressources et une résilience face aux pannes.
  • Utilisation d'outils comme K3S : K3S est une version légère de Kubernetes conçue pour simplifier l'orchestration dans des environnements à ressources limitées, tout en offrant des fonctionnalités avancées pour la gestion des déploiements, la répartition de la charge et la résilience.
  • Rôle dans la gestion des pannes et répartition de la charge : l'orchestration automatise la redistribution des applications en cas de panne ou de surcharge, garantissant ainsi une haute disponibilité et une performance optimale (voir aussi "Répartition de charge" en section 9).

📝 Points essentiels

  • L'orchestration permet d'automatiser la gestion des déploiements, la scalabilité et la disponibilité des applications, évitant ainsi la nécessité d'interventions manuelles répétées.
  • Des outils comme K3S facilitent la mise en œuvre de l'orchestration en proposant une version allégée de Kubernetes adaptée aux environnements avec des ressources limitées.
  • Elle joue un rôle crucial dans la gestion des pannes en réaffectant automatiquement les ressources ou en relançant les applications défaillantes, ce qui contribue à garantir une disponibilité de 99% ou plus (voir "Comment s’assurer que notre application soit disponible 99% du temps ?").
  • La répartition de la charge et l’équilibrage des ressources sont intégrés dans l’orchestration, permettant une gestion dynamique et efficace des requêtes et des défaillances.

💡 À retenir

L’orchestration automatise la gestion des déploiements, la scalabilité et la disponibilité des applications, assurant une haute résilience et une performance optimale grâce à des outils comme K3S, tout en simplifiant la gestion dans des environnements complexes.

📖 9. Répartition charge

🔑 Notions clés & Définitions

  • Répartition de charge : distribution des requêtes ou des demandes entre plusieurs serveurs ou applications pour optimiser la performance et la disponibilité, permettant une utilisation équilibrée des ressources.
  • Gestion de la charge en cas de panne : mécanisme permettant de rediriger ou redistribuer automatiquement les requêtes lorsqu’un serveur ou une application tombe en panne, afin d’assurer une disponibilité continue.
  • Orchestration : ensemble d’outils et de processus automatisés pour gérer la répartition dynamique de la charge, la mise à l’échelle, et la résilience du système (voir section 8).

📝 Points essentiels

  • La répartition de charge vise à éviter la surcharge d’un seul serveur ou application en répartissant équitablement les requêtes, ce qui améliore la performance et la disponibilité globale.
  • La gestion de la charge en cas de panne est essentielle pour garantir une disponibilité de 99% (voir section 2), en permettant une redirection automatique des requêtes vers d’autres ressources disponibles.
  • L’orchestration joue un rôle clé dans la gestion dynamique de la charge, notamment pour équilibrer la charge entre plusieurs serveurs ou conteneurs, et pour assurer la résilience face aux défaillances (voir section 8).
  • La répartition de charge est complémentaire à d’autres mécanismes comme l’équilibrage des serveurs (voir section 10) et la gestion de la disponibilité, permettant une architecture flexible et scalable.

💡 À retenir

La répartition de charge, couplée à l’orchestration, garantit la performance, la scalabilité et la résilience des systèmes en répartissant efficacement les requêtes et en assurant la continuité en cas de panne.

📖 10. Équilibrage serveurs

🔑 Notions clés & Définitions

  • Équilibrage des serveurs : technique visant à répartir la charge entre plusieurs serveurs physiques pour optimiser la performance et la disponibilité du service, en assurant une meilleure utilisation des ressources matérielles.
  • Répartition de charge : processus de distribution des requêtes ou des tâches entre plusieurs serveurs ou applications, permettant d’éviter la surcharge d’un seul serveur (voir section 9).
  • Orchestration : gestion automatisée des déploiements, de la scalabilité et de la disponibilité, notamment par des outils comme K3S (version légère de Kubernetes) (voir section 8).

📝 Points essentiels

  • L’équilibrage des serveurs est une technique complémentaire à la répartition de charge et à l’orchestration, visant à améliorer la performance globale en répartissant efficacement la charge entre serveurs physiques.
  • Il permet d’assurer une meilleure disponibilité en évitant la surcharge ou la panne d’un serveur unique, en répartissant dynamiquement les requêtes selon la charge et la capacité.
  • La technique est essentielle pour garantir une disponibilité proche de 100% (voir problématique) et pour s’adapter à l’évolution de la demande, notamment lors de pics ou de défaillances.
  • L’équilibrage des serveurs peut être réalisé en coordination avec l’orchestration, qui automatise la gestion des ressources, la mise à l’échelle et la répartition en cas de panne (voir section 8).
  • La performance est optimisée par une utilisation équilibrée des ressources matérielles, évitant la sous-exploitation ou la surcharge d’un serveur.

💡 À retenir

L’équilibrage des serveurs est une technique clé pour assurer la disponibilité et la performance des services, en répartissant intelligemment la charge entre plusieurs serveurs physiques, en complément de la répartition de charge et de l’orchestration.

📅 Repères chronologiques

DateÉvénement
Année non préciséeIntroduction des machines virtuelles (VM) comme solution d'hébergement d'applications
Année non préciséeDéveloppement des hyperviseurs de type 1 (Proxmox, VMware ESXi) et de type 2 (VirtualBox, Qemu)
Année non préciséeÉmergence des conteneurs comme alternative performante aux VM
Année non préciséeAdoption croissante de l'orchestration (Kubernetes, K3S) pour la haute disponibilité et la gestion de la charge

📊 Tableaux de Synthèse

ThèmeNotions clésAvantagesInconvénientsAuteur / Référence
Hébergement d'applicationsArchitecture classique, VM, ConteneursOptimisation ressources, scalabilité, haute disponibilitéPerformance dégradée avec VM, complexité de gestion-
Machines virtuellesIsolation, scalabilité, hyperviseurs (Type 1 & 2)Sécurité, flexibilitéPerformance, surcharge de gestion-
ConteneursPartage OS, légèreté, rapiditéPerformance, déploiement rapide, scalabilitéIsolation moindre, sécurité-
OrchestrationKubernetes, K3SAutomatisation, résilience, répartition chargeComplexité d'implémentation-

⚠️ Pièges & Confusions Fréquentes

  1. Confondre machines virtuelles (VM) et conteneurs : VM isolent au niveau OS, conteneurs partagent le noyau.
  2. Croire que la virtualisation garantit une disponibilité de 100% : elle augmente la disponibilité mais ne l'assure pas totalement.
  3. Confondre hyperviseur de type 1 (direct sur hardware) et type 2 (sur OS hôte) : différence essentielle pour la performance.
  4. Sous-estimer l’impact de la surcharge des VM sur les performances globales.
  5. Confondre scaling vertical (scale-up) et horizontal (scale-out) : leurs usages et limites.
  6. Omettre que la scalabilité des conteneurs est souvent plus rapide que celle des VM.
  7. Confondre orchestration (gestion automatique) et simple déploiement manuel.

✅ Checklist Examen

  • Connaître la définition de Perroux sur la croissance et son application à l’évolution des ressources informatiques.
  • Identifier les différences entre architecture classique, VM et conteneurs.
  • Expliquer le rôle et le fonctionnement d’un hyperviseur de type 1 et de type 2.
  • Savoir comment les conteneurs partagent le système d’exploitation et leurs avantages par rapport aux VM.
  • Comprendre le principe de scalabilité verticale et horizontale, et leurs limites.
  • Décrire le fonctionnement de l’orchestration (ex : Kubernetes, K3S) pour la haute disponibilité.
  • Connaître les enjeux de disponibilité 99% et les mécanismes pour y parvenir.
  • Expliquer comment l’évolution de la demande influence le choix entre scaling vertical et horizontal.
  • Identifier les principaux avantages et inconvénients des VM et des conteneurs.
  • Maîtriser les concepts clés liés à l’isolation, la scalabilité, et la gestion des ressources.
  • Savoir comment la virtualisation et la conteneurisation contribuent à l’optimisation des ressources.
  • Comprendre le rôle des hyperviseurs dans la gestion des VM.
  • Vérifier la maîtrise du vocabulaire spécifique aux hébergements d’applications, VM, conteneurs, orchestration.

Metti alla prova le tue conoscenze

Metti alla prova le tue conoscenze su Hébergement d'applications et virtualisation con 10 domande a scelta multipla con correzioni dettagliate.

1. Quel est le rôle principal de l'évolution de la demande dans l'hébergement d'applications ?

2. Qu'est-ce que l'équilibrage serveurs ?

Fai il quiz →

Ripassa con le flashcard

Memorizza i concetti chiave di Hébergement d'applications et virtualisation con 20 flashcard interattive.

Hébergement applications — définition ?

Déploiement et gestion d’applications sur une infrastructure.

Architecture classique — problème ?

Sous-exploitation matérielle et faible scalabilité.

VM — propriété clé ?

Isolation et scalabilité.

Vedi le flashcard →

Similar courses

Crea le tue schede di revisione

Importa il tuo corso e l'AI genera schede, quiz e flashcard in 30 secondi.

Generatore di schede