Une introduction à l'hébergement cloud
Introduction
L'hébergement cloud est une méthode d'utilisation de serveurs virtuels en ligne qui peuvent être créés, modifiés et détruits à la demande. Les serveurs cloud se voient allouer des ressources telles que les cœurs de processeur et la mémoire en fonction du physique sur lequel ils sont hébergés, et peuvent être configurés avec n'importe quel système d'exploitation et logiciel associé. L'hébergement cloud peut être utilisé pour héberger des sites Web, distribuer des applications Web ou d'autres services.
Dans ce guide, nous passerons en revue certains des concepts de base impliqués dans l'hébergement cloud, y compris le fonctionnement de la virtualisation, les composants d'un environnement virtuel et des comparaisons avec d'autres méthodes d'hébergement courantes.
Qu'est-ce que "le Cloud" ?
« Le Cloud » est un terme courant qui fait référence aux serveurs accessibles par Internet qui sont disponibles pour un usage public, soit par le biais d'une location payante, soit dans le cadre d'un logiciel ou d'un service de plate-forme. Un service basé sur le cloud peut prendre de nombreuses formes, notamment l'hébergement Web, l'hébergement et le partage de fichiers et la distribution de logiciels. « Le Cloud » peut également faire référence au cloud computing, c'est-à-dire à la répartition transparente d'une tâche sur plusieurs serveurs. Au lieu d'exécuter un processus complexe sur une seule machine puissante, le cloud computing répartit la tâche sur de nombreux nœuds plus petits.
Comment fonctionne la virtualisation
Les environnements d'hébergement cloud sont divisés en deux parties principales : les serveurs virtuels sur lesquels les applications et les sites Web peuvent être hébergés, et les hôtes physiques qui gèrent les serveurs virtuels. La virtualisation rend l'hébergement cloud possible : la relation entre l'hôte et le serveur virtuel offre une flexibilité et une évolutivité qui ne sont pas disponibles via d'autres méthodes d'hébergement.
Serveurs virtuels
La forme la plus courante d'hébergement cloud aujourd'hui est l'utilisation d'un serveur privé virtuel, ou VPS. Un VPS est un serveur virtuel qui agit comme un véritable ordinateur avec son propre système d'exploitation. Alors que les serveurs virtuels partagent les ressources qui leur sont allouées par l'hébergeur, ils sont totalement isolés en pratique, de sorte que les opérations sur un VPS n'affecteront pas les autres.
Les serveurs virtuels sont déployés et gérés par l'hyperviseur d'un hôte physique. Chaque serveur virtuel dispose d'un système d'exploitation installé par l'hyperviseur, qui est disponible pour l'utilisateur. Pour des raisons pratiques, un serveur virtuel est identique à un serveur physique dédié, bien qu'un serveur virtuel doive partager des ressources matérielles physiques avec d'autres serveurs sur le même hôte.
Hôtes
Les ressources sont allouées à un serveur virtuel par le serveur physique sur lequel il est hébergé. Cet hôte utilise une couche logicielle appelée hyperviseur pour déployer, gérer et accorder des ressources aux serveurs virtuels qui sont sous son contrôle. Le terme « hyperviseur » est également souvent utilisé pour désigner les hôtes physiques sur lesquels les hyperviseurs (et leurs serveurs virtuels) sont installés.
L'hôte est chargé d'allouer de la mémoire, des cœurs de processeur et une connexion réseau à un serveur virtuel lorsqu'il est lancé. Une tâche permanente de l'hyperviseur est de planifier les processus entre les cœurs de processeur virtuels et les cœurs physiques, car plusieurs serveurs virtuels peuvent utiliser les mêmes cœurs physiques. Les hyperviseurs diffèrent les uns des autres dans les nuances de la planification des processus et du partage des ressources.
Hyperviseurs
Il existe aujourd'hui quelques hyperviseurs courants pour les hôtes cloud. Ces différentes méthodes de virtualisation présentent des différences essentielles, mais elles fournissent toutes les outils dont un hôte a besoin pour déployer, maintenir, déplacer et détruire des serveurs virtuels selon les besoins.
KVM, abréviation de "Kernel-Based Virtual Machine", est une infrastructure de virtualisation intégrée au noyau Linux. Lorsqu'il est activé, ce module du noyau transforme la machine Linux en un hyperviseur, lui permettant de commencer à héberger des serveurs virtuels. Cette méthode contraste avec le fonctionnement habituel des autres hyperviseurs, car KVM n'a pas besoin de créer ou d'émuler les composants du noyau utilisés pour l'hébergement virtuel.
Xen est l'un des hyperviseurs les plus courants. Contrairement à KVM, Xen utilise son propre micro-noyau, qui fournit les outils nécessaires pour prendre en charge les serveurs virtuels sans modifier le noyau de l'hôte. Xen prend en charge deux méthodes distinctes de virtualisation : la paravirtualisation, qui évite d'avoir à émuler le matériel mais nécessite des modifications spéciales apportées au système d'exploitation des serveurs virtuels, et la virtualisation assistée par matériel (ou HVM), qui utilise des fonctionnalités matérielles spéciales pour émuler efficacement un serveur virtuel. serveur afin qu'ils puissent utiliser des systèmes d'exploitation non modifiés. HVM s'est répandu sur les processeurs grand public vers 2006, permettant à la plupart des ordinateurs de bureau et des ordinateurs portables d'atteindre des performances similaires lors de l'exécution de machines virtuelles ou de conteneurs basés sur un micro-noyau (par exemple via Docker).
ESXi est un hyperviseur de niveau entreprise proposé par VMware. ESXi est unique en ce sens qu'il n'exige pas que l'hôte ait un système d'exploitation sous-jacent. C'est ce qu'on appelle un hyperviseur de « type 1 » et il est extrêmement efficace en raison de l'absence d'un « intermédiaire » entre le matériel et les serveurs virtuels. Avec les hyperviseurs de type 1 comme ESXi, aucun système d'exploitation n'a besoin d'être chargé sur l'hôte car l'hyperviseur lui-même agit comme système d'exploitation.
Hyper-V est l'une des méthodes les plus populaires de virtualisation des serveurs Windows et est disponible en tant que service système dans Windows Server. Cela fait d'Hyper-V un choix courant pour les développeurs travaillant dans un environnement logiciel Windows. Hyper-V est inclus dans les versions modernes de Windows et est également disponible en tant que serveur autonome sans installation existante de Windows Server. WSL2, le sous-système Windows pour Linux, est implémenté via Hyper-V.
Pourquoi l'hébergement cloud ?
Les fonctionnalités offertes par la virtualisation se prêtent bien à un environnement d'hébergement cloud. Les serveurs virtuels peuvent être configurés avec un large éventail d'allocations de ressources matérielles et peuvent souvent avoir des ressources ajoutées ou supprimées en fonction de l'évolution des besoins au fil du temps. Certains hôtes cloud peuvent déplacer un serveur virtuel d'un hyperviseur à un autre avec peu ou pas de temps d'arrêt, ou dupliquer le serveur pour la redondance en cas de défaillance d'un nœud.
Personnalisation
Les développeurs préfèrent souvent travailler dans un VPS en raison du contrôle qu'ils ont sur l'environnement virtuel. La plupart des serveurs virtuels exécutant Linux offrent un accès au compte root (administrateur) ou sudo
privilèges par défaut, donnant à un développeur la possibilité d'installer et de modifier tout logiciel dont il a besoin.
Cette liberté de choix commence par le système d'exploitation. La plupart des hyperviseurs sont capables d'héberger presque tous les systèmes d'exploitation invités, des logiciels open source comme Linux et BSD aux systèmes propriétaires comme Windows. À partir de là, les développeurs peuvent commencer à installer et à configurer les blocs de construction nécessaires à tout ce sur quoi ils travaillent. Les configurations d'un serveur cloud peuvent inclure un serveur Web, une base de données ou une application qui a été développée et est prête à être distribuée.
Évolutivité
Les serveurs cloud sont très flexibles dans leur capacité à évoluer. Les méthodes de mise à l'échelle se répartissent en deux grandes catégories : la mise à l'échelle horizontale et la mise à l'échelle verticale. La plupart des méthodes d'hébergement peuvent évoluer d'une manière ou d'une autre, mais l'hébergement cloud est unique dans sa capacité à évoluer à la fois horizontalement et verticalement. Cela est dû à l'environnement virtuel sur lequel un serveur cloud est construit : comme ses ressources sont une partie allouée d'un pool physique plus grand, ces ressources peuvent être ajustées ou dupliquées sur d'autres hyperviseurs.
La mise à l'échelle horizontale, souvent appelée « mise à l'échelle », est le processus d'ajout de nœuds supplémentaires à un système en cluster. Cela peut impliquer l'ajout de serveurs Web supplémentaires pour mieux gérer le trafic, l'ajout de nouveaux serveurs à une région pour réduire la latence ou l'ajout de davantage de travailleurs de base de données pour augmenter la vitesse de transfert des données.
La mise à l'échelle verticale, ou « mise à l'échelle », se produit lorsqu'un seul serveur est mis à niveau avec des ressources supplémentaires. Il peut s'agir d'une extension de la mémoire disponible, d'une allocation de plus de cœurs de processeur ou d'une autre mise à niveau qui augmente la capacité de ce serveur. Ces mises à niveau ouvrent généralement la voie à des instances logicielles supplémentaires, telles que des agents de base de données, pour fonctionner sur ce serveur. Avant que la mise à l'échelle horizontale ne devienne rentable, la mise à l'échelle verticale était le moyen de facto de répondre à la demande croissante.
Avec l'hébergement cloud, les développeurs peuvent évoluer en fonction des besoins de leur application - ils peuvent évoluer en déployant des nœuds VPS supplémentaires, évoluer en mettant à niveau les serveurs existants, ou faire les deux lorsque les besoins des serveurs ont considérablement augmenté.
Conclusion
À présent, vous devriez comprendre le fonctionnement de l'hébergement cloud, y compris la relation entre les hyperviseurs et les serveurs virtuels dont ils sont responsables, ainsi que la comparaison de l'hébergement cloud avec d'autres méthodes d'hébergement courantes. Avec ces informations à l'esprit, vous pouvez choisir le meilleur hébergement pour vos besoins.
Pour une vue plus large du paysage global du cloud computing, vous pouvez lire A General Introduction to Cloud Computing.