© TAW4/Shutterstock.com
Überführung von bestehenden Applikationen in die Cloud

Bereit für die Cloud?


Aufgrund des ständig wachsenden Cloudangebotes werden viele Unternehmen vor der Entscheidung stehen, zukünftig Clouddienste in Anspruch zu nehmen oder sogar ihre gesamte IT-Struktur in die Cloud zu verlagern. Bei der Überführung von bestehenden Applikationen in die Cloud gibt es einiges zu berücksichtigen.

Den meisten Unternehmen ist bei einer möglichen Entscheidung, ihre Applikationen in die Cloud zu überführen, nicht bewusst, dass ein Wechsel mit einem sehr großen Aufwand verbunden und die Umstellung langwierig ist. Ähnlich wie bei einer größeren Softwareumstellung müssen Verfahrensweisen und Vorgänge analysiert und im Neusystem berücksichtigt werden. Noch vor Beginn der eigentlichen Entwicklung sollte geklärt werden, welche Anforderungen man an eine Cloudplattform hat und ob sich dort Teile der bereits vorhandenen IT-Infrastruktur schon in der Entwicklung integrieren lassen. Zudem sollte berücksichtigt werden, dass die Überführung von Applikationen in die Cloud und die Nutzung von Clouddiensten einer der nächsten wichtigen Schritte in der Informationstechnik nach der Einrichtung des Mobilfunknetzes und der Erschließung des flächendeckenden Internets ist.

Nutzen von Virtualisierung bereits in der Entwicklung

Die Stärken der Virtualisierung liegen im schnellen Zerstören und Neuaufsetzen von virtuellen Instanzen. Hierdurch lässt sich die Ausfallzeit von bestimmten Diensten geringhalten und es können unkontrollierte Veränderungen (Configuration Drifts) durch das Neuaufsetzen eliminiert werden. An dieser Stelle bietet sich die Phoenix-Server-Methode an, die beschreibt, dass Server in regelmäßigen Abständen zerstört und anschließend neu aufgesetzt werden sollten, auf Grundlage einer wiederherstellbaren Sicherung (Snapshot).

Ein Verfahren zur Virtualisierung ist die Nested Virtualization. Hierbei handelt es sich um eine verschachtelte Virtualisierung, bei der eine weitere virtuelle Instanz auf eine bereits vorhandene virtuelle Instanz aufgesetzt wird. Das bedeutet, dass Hypervisoren wie Hyper-V, ESXi und KVM innerhalb von virtuellen Maschinen installiert werden können, um auf ihnen weitere virtuelle Instanzen aufzusetzen [1]. Die virtuelle Verschachtelung führt aktuell noch zu deutlichen Performanceverlusten bei CPU-intensiven Anwendungen. Aus diesem Grund ist der Einsatz der Nested Virtualization nur teilweise zu empfehlen ([2], S. 37).

Eine weitere Möglichkeit ist die Nutzung von Containern. Im Gegensatz zu virtuellen Maschinen stellen Container keine eigene Instanz dar, sondern greifen auf den gleichen Kernel wie der Host zu. Das hat den Vorteil, dass die Container auch direkt auf die Hardware des Hosts zugreifen können. Des Weiteren entfällt hierdurch ein zusätzlicher Hypervisor und die verfügbare CPU kann direkt für die Containeranwendungen genutzt werden; der Quasistandard für diese ist Docker ([2], S. 38).

Im Folgenden schauen wir uns die benötigten Technologien zur Entwicklung verschiedener Containeranwendungen an.

Docker

Docker verfolgt den Single-Process-Ansatz, bei dem einzelne, gekapselte Prozesse abgearbeitet werden. Der Single-Process-Ansatz ist besonders für Service-orientierte Architekturen (SOA) geeignet, da so jeder Service in einen eigenen Docker-Container gepackt werden kann ([2], S. 38). Für den Aufbau der Images setzt Docker auf ein Layersystem, bei dem jeder einzelne Layer immutable (unveränderlich) ist. Der Vorteil an dem Immutable-Layer-System ist, dass für ein weiteres Image mit einer anderen Applikation die bereits erstellten Layer wiederverwendet werden können. Dadurch braucht der Layer nur einmal im System abgelegt zu werden, was Speicherplatz spart. Das ist ein weiterer Vorteil von Containern g...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang