Einführung
Cloud-Hosting ist eine Methode zur Verwendung von Online-Virtual-Servern, die bei Bedarf erstellt, geändert und gelöscht werden können. Cloud-Server werden Ressourcen wie CPU-Kerne und Speicher von der physischen Infrastruktur zugewiesen, auf der sie gehostet sind, und können mit einem beliebigen Betriebssystem und entsprechender Software konfiguriert werden. Cloud-Hosting kann zum Hosten von Websites, zur Verteilung webbasierter Anwendungen oder anderer Dienste verwendet werden.
In diesem Leitfaden werden einige grundlegende Konzepte des Cloud-Hostings erläutert, darunter wie Virtualisierung funktioniert, die Komponenten in einer virtuellen Umgebung und Vergleiche mit anderen gängigen Hosting-Methoden.
Was ist „die Cloud“?
„Die Cloud“ ist ein gängiger Begriff, der sich auf internetzugängliche Server bezieht, die öffentlich genutzt werden können, entweder durch kostenpflichtiges Leasing oder als Teil eines Software- oder Plattformdienstes. Ein cloudbasierter Dienst kann viele Formen annehmen, darunter Webhosting, Dateihosting und -freigabe sowie Softwareverteilung. „Die Cloud“ kann auch auf Cloud-Computing verweisen, d.h. transparentes Spannen einer Aufgabe über mehrere Server hinweg. Anstatt einen komplexen Prozess auf einer einzelnen leistungsstarken Maschine auszuführen, verteilt Cloud-Computing die Aufgabe auf viele kleinere Knoten.
Wie Virtualisierung funktioniert
Cloud-Hosting-Umgebungen bestehen aus zwei Hauptkomponenten: den virtuellen Servern, auf denen Apps und Websites gehostet werden können, und den physischen Hosts, die die virtuellen Server verwalten. Virtualisierung macht Cloud-Hosting möglich: Die Beziehung zwischen Host und virtuellem Server bietet Flexibilität und Skalierbarkeit, die durch andere Hosting-Methoden nicht verfügbar sind.
Virtuelle Server
Die heute am häufigsten verwendete Form des Cloud-Hostings ist die Verwendung eines virtuellen privaten Servers oder VPS. Ein VPS ist ein virtueller Server, der wie ein echter Computer mit seinem eigenen Betriebssystem fungiert. Obwohl virtuelle Server Ressourcen teilen, die ihnen vom Host zugewiesen werden, sind sie in der Praxis vollständig isoliert, sodass Operationen auf einem VPS die anderen nicht beeinträchtigen.
Virtuelle Server werden von einem Hypervisor eines physischen Hosts bereitgestellt und verwaltet. Jeder virtuelle Server verfügt über ein vom Hypervisor installiertes Betriebssystem, das dem Benutzer zur Verfügung steht. Praktisch gesehen ist ein virtueller Server in der Nutzung identisch mit einem dedizierten physischen Server, obwohl ein virtueller Server physische Hardwareressourcen mit anderen Servern auf demselben Host teilen muss.
Hosts
Ressourcen werden einem virtuellen Server von dem physischen Server zugewiesen, auf dem er gehostet ist. Dieser Host verwendet eine Softwareebene namens Hypervisor, um virtuelle Server zu implementieren, zu verwalten und Ressourcen an die virtuellen Server zu gewähren, die unter seiner Kontrolle stehen. Der Begriff „Hypervisor“ wird auch oft verwendet, um sich auf die physischen Hosts zu beziehen, auf denen Hypervisoren (und ihre virtuellen Server) installiert sind.
Der Host ist dafür zuständig, Speicher, CPU-Kerne und eine Netzwerkverbindung einem virtuellen Server zuzuweisen, wenn einer gestartet wird. Eine fortlaufende Aufgabe des Hypervisors besteht darin, Prozesse zwischen den virtuellen CPU-Kernen und den physischen zu planen, da mehrere virtuelle Server möglicherweise dieselben physischen Kerne nutzen. Hypervisoren unterscheiden sich voneinander in den Nuancen der Prozessplanung und Ressourcenfreigabe.
Hypervisoren
Heutzutage stehen Cloud-Hosts einige gängige Hypervisoren zur Verfügung. Diese unterschiedlichen Virtualisierungsmethoden weisen einige wesentliche Unterschiede auf, bieten jedoch alle Tools, die ein Host benötigt, um virtuelle Server bei Bedarf bereitzustellen, zu warten, zu verschieben und zu zerstören.
KVM, kurz für „Kernel-basierte virtuelle Maschine“, ist eine Virtualisierungsinfrastruktur, die in den Linux-Kernel integriert ist. Wenn aktiviert, verwandelt dieses Kernelmodul die Linux-Maschine in einen Hypervisor, der es ermöglicht, virtuelle Server zu hosten. Diese Methode steht im Gegensatz zu der üblichen Arbeitsweise anderer Hypervisoren, da KVM keine Kernelkomponenten erstellen oder emulieren muss, die für das virtuelle Hosting verwendet werden.
Xen ist einer der häufigsten Hypervisoren. Im Gegensatz zu KVM verwendet Xen seinen eigenen Mikrokernel, der die Tools bereitstellt, die benötigt werden, um virtuelle Server ohne Modifikation des Kernels des Hosts zu unterstützen. Xen unterstützt zwei verschiedene Methoden der Virtualisierung: Paravirtualisierung, bei der die Emulation von Hardware vermieden wird, jedoch spezielle Modifikationen am Betriebssystem der virtuellen Server erforderlich sind, und hardwareunterstützte Virtualisierung (oder HVM), die spezielle Hardwarefunktionen verwendet, um einen virtuellen Server effizient zu emulieren, sodass unmodifizierte Betriebssysteme verwendet werden können. HVM wurde um 2006 auf Consumer-CPUs weit verbreitet, sodass die meisten Desktops und Laptops ähnliche Leistungen erzielen können, wenn virtuelle Maschinen oder Mikrokernel-basierte Container (z. B. über Docker) ausgeführt werden.
ESXi ist ein Hypervisor auf Enterprise-Ebene, der von VMware angeboten wird. ESXi ist einzigartig, da es keinen zugrunde liegenden Betriebssystem auf dem Host erfordert. Dies wird als „Typ-1“-Hypervisor bezeichnet und ist aufgrund des Fehlens eines „Mittelsmanns“ zwischen der Hardware und den virtuellen Servern äußerst effizient. Bei Typ-1-Hypervisoren wie ESXi muss kein Betriebssystem auf dem Host geladen werden, da der Hypervisor selbst als Betriebssystem fungiert.
Hyper-V ist eine der beliebtesten Methoden zur Virtualisierung von Windows-Servern und steht als Systemdienst in Windows Server zur Verfügung. Dies macht Hyper-V zu einer häufigen Wahl für Entwickler, die in einer Windows-Softwareumgebung arbeiten. Hyper-V ist in modernen Versionen von Windows enthalten und steht auch als eigenständiger Server ohne vorhandene Installation von Windows Server zur Verfügung. WSL2, das Windows-Subsystem für Linux, wird über Hyper-V implementiert.
Warum Cloud-Hosting?
Die Funktionen, die die Virtualisierung bietet, eignen sich gut für eine Cloud-Hosting-Umgebung. Virtuelle Server können mit einer breiten Palette von Hardware-Ressourcenzuweisungen konfiguriert werden und können oft Ressourcen hinzugefügt oder entfernt bekommen, wenn sich die Anforderungen im Laufe der Zeit ändern. Einige Cloud-Hosts können einen virtuellen Server von einem Hypervisor auf einen anderen verschieben, mit wenig oder keiner Ausfallzeit, oder den Server zur Redundanz im Falle eines Knotenausfalls duplizieren.
Anpassung
Entwickler bevorzugen oft die Arbeit in einem VPS aufgrund der Kontrolle, die sie über die virtuelle Umgebung haben. Die meisten virtuellen Server, die unter Linux laufen, bieten standardmäßig Zugriff auf das Root (Administrator) Konto oder sudo
Berechtigungen, was einem Entwickler die Möglichkeit gibt, die benötigte Software zu installieren und zu ändern.
Diese Wahlfreiheit beginnt mit dem Betriebssystem. Die meisten Hypervisoren können nahezu jedes Gastbetriebssystem hosten, von Open-Source-Software wie Linux und BSD bis hin zu proprietären Systemen wie Windows. Von dort aus können Entwickler beginnen, die benötigten Bausteine zu installieren und zu konfigurieren, die für ihre Arbeit erforderlich sind. Die Konfigurationen eines Cloud-Servers könnten beispielsweise einen Webserver, eine Datenbank oder eine App umfassen, die entwickelt wurde und für die Verteilung bereit ist.
Skalierbarkeit
Cloud-Server sind sehr flexibel in ihrer Skalierbarkeit. Skalierungsmethoden lassen sich in zwei Hauptkategorien einteilen: horizontale Skalierung und vertikale Skalierung. Die meisten Hosting-Methoden können auf die eine oder andere Weise skalieren, aber Cloud-Hosting ist einzigartig in seiner Fähigkeit, sowohl horizontal als auch vertikal zu skalieren. Dies liegt an der virtuellen Umgebung, auf der ein Cloud-Server basiert: Da seine Ressourcen einen zugeteilten Teil eines größeren physischen Pools darstellen, können diese Ressourcen angepasst oder auf andere Hypervisoren dupliziert werden.
Horizontales Skalieren, oft als „Skalieren nach außen“ bezeichnet, ist der Prozess, bei dem mehr Knoten zu einem geclusterten System hinzugefügt werden. Dies könnte das Hinzufügen weiterer Webserver sein, um den Traffic besser zu verwalten, das Hinzufügen neuer Server in einer Region, um die Latenz zu reduzieren, oder das Hinzufügen weiterer Datenbankarbeiter, um die Datenübertragungsgeschwindigkeit zu erhöhen.
Vertikales Skalieren, oder „Skalieren nach oben“, ist, wenn ein einzelner Server mit zusätzlichen Ressourcen aufgerüstet wird. Dies könnte eine Erweiterung des verfügbaren Speichers, eine Zuweisung von mehr CPU-Kernen oder ein anderer Upgrade sein, der die Kapazität dieses Servers erhöht. Diese Upgrades bereiten in der Regel den Weg für zusätzliche Softwareinstanzen wie Datenbankarbeiter vor, die auf diesem Server betrieben werden. Bevor horizontales Skalieren kosteneffektiv wurde, war vertikales Skalieren die gängige Methode, um auf steigende Nachfrage zu reagieren.
Mit Cloud-Hosting können Entwickler je nach Bedarf ihrer Anwendung skalieren – sie können durch Bereitstellung zusätzlicher VPS-Knoten skalieren, indem sie vorhandene Server aufrüsten oder beides tun, wenn der Bedarf an Servern dramatisch gestiegen ist.
Fazit
Zu diesem Zeitpunkt sollten Sie ein Verständnis dafür haben, wie Cloud-Hosting funktioniert, einschließlich der Beziehung zwischen Hypervisoren und den virtuellen Servern, für die sie verantwortlich sind, sowie wie Cloud-Hosting im Vergleich zu anderen gängigen Hosting-Methoden steht. Mit diesen Informationen können Sie das beste Hosting für Ihre Bedürfnisse auswählen.
Für einen umfassenderen Überblick über die gesamte Landschaft des Cloud Computing können Sie Eine allgemeine Einführung in das Cloud Computing lesen.
Source:
https://www.digitalocean.com/community/tutorials/an-introduction-to-cloud-hosting