Eine Einführung in Cloud Hosting

Einführung

Cloud-Hosting ist eine Methode zur Verwendung virtueller Online-Server, die bei Bedarf erstellt, geändert und zerstört werden können. Cloud-Server erhalten Ressourcen wie CPU-Kerne und Arbeitsspeicher vom physischen Server, auf dem sie gehostet werden, und können mit dem Betriebssystem und der zugehörigen Software des Entwicklers konfiguriert werden. Cloud-Hosting kann zum Hosten von Websites, zum Senden und Speichern von E-Mails sowie zum Verteilen von webbasierten Anwendungen und anderen Diensten verwendet werden.

In diesem Handbuch werden einige grundlegende Konzepte für das Cloud-Hosting erläutert, darunter die Funktionsweise der Virtualisierung, die Komponenten in einer virtuellen Umgebung und Vergleiche mit anderen gängigen Hostingmethoden.

Was ist die Cloud?

„The Cloud“ ist ein gebräuchlicher Begriff, der sich auf Server bezieht, die mit dem Internet verbunden sind und für die öffentliche Nutzung verfügbar sind, entweder durch kostenpflichtiges Leasing oder als Teil einer Software oder eines Plattformdienstes. Ein Cloud-basierter Dienst kann viele Formen annehmen, einschließlich Webhosting, Datei-Hosting und -Freigabe sowie Softwareverteilung. „The Cloud“ kann auch als Cloud-Computing bezeichnet werden. Dabei werden mehrere Server verwendet, die miteinander verbunden sind, um die Arbeitslast einer Aufgabe zu teilen. Anstatt einen komplexen Prozess auf einem einzigen leistungsstarken Computer auszuführen, verteilt Cloud Computing die Aufgabe auf viele kleinere Computer.

Andere Hosting-Methoden

Cloud-Hosting ist nur eine von vielen verschiedenen Arten von Hosting, die Kunden und Entwicklern heutzutage zur Verfügung stehen, obwohl es einige wesentliche Unterschiede zwischen ihnen gibt. Herkömmlicherweise werden Websites und Apps mit geringem Budget und geringem Datenverkehr gemeinsam gehostet, während anspruchsvollere Workloads auf dedizierten Servern gehostet werden.

  • Shared Hosting * ist die häufigste und kostengünstigste Möglichkeit, eine kleine und einfache Website zum Laufen zu bringen. In diesem Szenario teilen sich Hunderte oder Tausende von Standorten einen gemeinsamen Pool von Serverressourcen, z. B. Arbeitsspeicher und CPU. Shared Hosting bietet in der Regel die grundlegendsten und unflexibelsten Funktions- und Preisstrukturen, da der Zugriff auf die zugrunde liegende Software der Site aufgrund der gemeinsamen Nutzung des Servers sehr eingeschränkt ist.

  • Dedicated Hosting * ist, wenn ein physischer Server an einen einzelnen Client verkauft oder geleast wird. Dies ist flexibler als Shared Hosting, da ein Entwickler die vollständige Kontrolle über die Hardware-, Betriebssystem- und Softwarekonfiguration des Servers hat. Dedizierte Server sind bei anspruchsvolleren Anwendungen wie Unternehmenssoftware und kommerziellen Diensten wie Social Media, Online-Spielen und Entwicklungsplattformen weit verbreitet.

So funktioniert Virtualisierung

Cloud-Hosting-Umgebungen sind in zwei Hauptteile unterteilt: die virtuellen Server, auf denen Apps und Websites gehostet werden können, und die physischen Hosts, die die virtuellen Server verwalten. Diese Virtualisierung ist der Grund für die Funktionen und Vorteile des Cloud-Hostings: Die Beziehung zwischen Host und virtuellem Server bietet Flexibilität und Skalierung, die bei anderen Hosting-Methoden nicht verfügbar sind.

Virtuelle Server

Die häufigste Form des Cloud-Hostings ist heute die Verwendung eines virtuellen privaten Servers (VPS). Ein VPS ist ein virtueller Server, der sich wie ein realer Computer mit einem eigenen Betriebssystem verhält. Während virtuelle Server Ressourcen gemeinsam nutzen, die ihnen vom Host zugewiesen wurden, ist ihre Software gut isoliert, sodass sich Vorgänge auf einem VPS nicht auf die anderen auswirken.

Virtuelle Server werden vom Hypervisor eines physischen Hosts bereitgestellt und verwaltet. Auf jedem virtuellen Server ist ein Betriebssystem vom Hypervisor installiert, auf dem der Benutzer Software hinzufügen kann. Für viele praktische Zwecke ist ein virtueller Server mit einem dedizierten physischen Server identisch, obwohl die Leistung in einigen Fällen geringer sein kann, da der virtuelle Server physische Hardwareressourcen mit anderen Servern auf demselben Host teilt.

Gastgeber

Ressourcen werden einem virtuellen Server von dem physischen Server zugewiesen, auf dem er gehostet wird. Dieser Host verwendet eine als Hypervisor bezeichnete Softwareschicht, um die von ihm kontrollierten virtuellen Server bereitzustellen, zu verwalten und Ressourcen zuzuweisen. Der Begriff "Hypervisor" bezieht sich häufig auf die physischen Hosts, auf denen Hypervisoren (und ihre virtuellen Server) installiert sind.

Der Host ist verantwortlich für die Zuweisung von Speicher, CPU-Kernen und einer Netzwerkverbindung zu einem virtuellen Server, wenn einer gestartet wird. Eine ständige Aufgabe des Hypervisors besteht darin, Prozesse zwischen den virtuellen und den physischen CPU-Kernen zu planen, da möglicherweise mehrere virtuelle Server dieselben physischen Kerne verwenden. Die Methode der Wahl für die Prozessplanung ist einer der Hauptunterschiede zwischen verschiedenen Hypervisoren.

Hypervisoren

Heutzutage gibt es einige gängige Hypervisor-Software für Cloud-Hosts. Diese verschiedenen Virtualisierungsmethoden weisen einige wesentliche Unterschiede auf, bieten jedoch alle Tools, die ein Host benötigt, um virtuelle Server nach Bedarf bereitzustellen, zu warten, zu verschieben und zu zerstören.

  • KVM *, kurz für "Kernel-Based Virtual Machine", ist eine Virtualisierungsinfrastruktur, die in den Linux-Kernel integriert ist. Wenn dieses Kernelmodul aktiviert ist, verwandelt es den Linux-Computer in einen Hypervisor, sodass er mit dem Hosten virtueller Server beginnen kann. Diese Methode unterscheidet sich von der Arbeitsweise anderer Hypervisoren, da KVM keine Kernelkomponenten erstellen oder emulieren muss, die für das virtuelle Hosting verwendet werden.

  • Xen * ist einer der am häufigsten verwendeten Hypervisoren. Im Gegensatz zu KVM verwendet Xen einen Mikrokernel, der die Tools zur Unterstützung virtueller Server bereitstellt, ohne den Kernel des Hosts zu ändern. Xen unterstützt zwei unterschiedliche Virtualisierungsmethoden: Paravirtualisierung, bei der keine Hardware emuliert werden muss, sondern spezielle Änderungen am Betriebssystem der virtuellen Server erforderlich sind, und hardwaregestützte Virtualisierung, bei der mithilfe spezieller Hardwarefunktionen ein virtueller Server effizient emuliert wird kann unveränderte Betriebssysteme verwenden.

  • ESXi * ist ein Hypervisor auf Unternehmensebene, der von VMware angeboten wird. ESXi ist insofern einzigartig, als es nicht erforderlich ist, dass der Host über ein zugrunde liegendes Betriebssystem verfügt. 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 Hypervisoren vom Typ 1 wie ESXi muss kein Betriebssystem auf den Host geladen werden, da der Hypervisor selbst als Betriebssystem fungiert.

  • Hyper-V * ist eine der beliebtesten Methoden zur Virtualisierung von Windows-Servern und als Systemdienst in Windows Server verfügbar. Dies macht Hyper-V zu einer häufigen Wahl für Entwickler, die in einer Windows-Softwareumgebung arbeiten. Hyper-V ist in Windows Server 2008 und 2012 enthalten und ist auch als eigenständiger Server ohne eine vorhandene Installation von Windows Server verfügbar.

Warum Cloud-Hosting?

Die durch die Virtualisierung gebotenen Funktionen eignen sich gut für eine Cloud-Hosting-Umgebung. Virtuelle Server können mit einer Vielzahl von Hardwareressourcenzuweisungen konfiguriert werden. Oft werden Ressourcen hinzugefügt oder entfernt, wenn sich die Anforderungen im Laufe der Zeit ändern. Einige Cloud-Hosts können einen virtuellen Server mit geringen oder keinen Ausfallzeiten von einem Hypervisor auf einen anderen verschieben oder den Server aus Redundanzgründen für den Fall eines Knotenausfalls duplizieren.

Anpassung

Entwickler bevorzugen aufgrund der Kontrolle über die virtuelle Umgebung häufig die Arbeit in einem VPS. Die meisten virtuellen Server, auf denen Linux ausgeführt wird, bieten standardmäßig Zugriff auf das Root-Konto (Administrator) oder die Berechtigungen "+ sudo +", sodass Entwickler die Möglichkeit haben, die von ihnen benötigte Software zu installieren und zu ändern.

Diese Wahlfreiheit beginnt mit dem Betriebssystem. Die meisten Hypervisoren sind in der Lage, nahezu jedes Gastbetriebssystem zu hosten, von Open-Source-Software wie Linux und BSD bis hin zu proprietären Systemen wie Windows. Von dort aus können Entwickler die Bausteine ​​installieren und konfigurieren, die für die jeweilige Arbeit benötigt werden. Die Konfigurationen eines Cloud-Servers können einen Webserver, eine Datenbank, einen E-Mail-Dienst oder eine App umfassen, die entwickelt wurden und zur Verteilung bereit sind.

Skalierbarkeit

Cloud-Server können sehr flexibel skaliert werden. Skalierungsmethoden lassen sich in zwei große Kategorien einteilen: horizontale Skalierung und vertikale Skalierung. Die meisten Hosting-Methoden können auf die eine oder andere Weise skaliert werden, Cloud-Hosting ist jedoch in seiner Fähigkeit, sowohl horizontal als auch vertikal zu skalieren, einzigartig. Dies liegt an der virtuellen Umgebung, auf der ein Cloud-Server aufgebaut ist: Da seine Ressourcen einen zugewiesenen Teil eines größeren physischen Pools darstellen, ist es einfach, diese Ressourcen anzupassen oder das virtuelle Image auf andere Hypervisoren zu duplizieren.

  • Horizontale Skalierung *, oft als "Skalierung" bezeichnet, ist der Prozess des Hinzufügens weiterer Knoten zu einem Cluster-System. Dies kann bedeuten, dass mehr Webserver hinzugefügt werden, um den Datenverkehr besser zu verwalten, einer Region neue Server hinzugefügt werden, um die Latenz zu verringern, oder dass mehr Datenbank-Worker hinzugefügt werden, um die Datenübertragungsgeschwindigkeit zu erhöhen. Viele neuere Webdienstprogramme, wie CoreOS, Docker und Couchbase, basieren auf einer effizienten horizontalen Skalierung.

  • Vertikale Skalierung * oder "Hochskalierung" bedeutet, dass ein einzelner Server mit zusätzlichen Ressourcen aktualisiert wird. Dies kann eine Erweiterung des verfügbaren Arbeitsspeichers, eine Zuweisung von mehr CPU-Kernen oder ein anderes Upgrade sein, das die Kapazität dieses Servers erhöht. Diese Upgrades ebnen normalerweise den Weg für zusätzliche Software-Instanzen, wie Datenbank-Worker, auf diesem Server. Bevor die horizontale Skalierung wirtschaftlich wurde, war die vertikale Skalierung die Methode der Wahl, um auf die steigende Nachfrage zu reagieren.

Mit dem Cloud-Hosting können Entwickler abhängig von den Anforderungen ihrer Anwendung skalieren. Sie können skalieren, indem Sie zusätzliche VPS-Knoten bereitstellen, indem Sie vorhandene Server aktualisieren oder beides tun, wenn der Serverbedarf dramatisch gestiegen ist.

Fazit

Inzwischen sollten Sie ein gutes Verständnis für die Funktionsweise von Cloud-Hosting haben, einschließlich der Beziehung zwischen Hypervisoren und den virtuellen Servern, für die sie verantwortlich sind, sowie für den Vergleich von Cloud-Hosting mit anderen gängigen Hosting-Methoden. Unter Berücksichtigung dieser Informationen können Sie das beste Hosting für Ihre Anforderungen auswählen.