Der große Mehrwert einer Cloud-Umgebung ist die Flexibilität, die man dadurch gewinnt. Umsetzbar ist das aber nur, wenn die Prozesse des Unternehmens diese neue Flexibilität zulassen. Der Rahmen dafür muss meistens erst geschaffen werden. Gleichzeitig muss er aber auch ausschließen können, dass der Ressourcenbedarf plötzlich explodiert. Es ist daher ratsam, die folgenden Prozesse genauer zu prüfen:
Beschaffungsprozesse: Die Beschaffung neuer Ressourcen muss pragmatisch, aber trotzdem kostenoptimiert vor sich gehen können.
Freigabeprozesse: Die Freigabe von Ressourcen innerhalb der Cloud sollte an einer zentralen Stelle passieren, welche die Relevanz der Anfragen und die daraus entstehenden Kosten objektiv beurteilen kann. Das ist nicht in jedem Fall die IT-Abteilung. Auch Berechnungsmodelle (z.B. abteilungsübergreifende Leistungsverrechnung) können für ausreichende Selbstregulierung sorgen.
Ressourcenrückgabe: Nichts ist teurer als reservierte, aber ungenutzte Ressourcen. Deshalb ist auch die Rückgabe von Kapazitäten sehr wichtig. Umsetzen lässt sich das durch definierte Ablaufzeitpunkte bei Anfragen oder eine zentrale Stelle. Auch hiermacht eine interne Leistungsverrechnung Sinn.
Gezielte Standardisierung
Eine Cloud lebt von Automatisierung und Automatisierung setzt Standardisierung voraus. Das bedeutet: Sonderwünsche sind teuer. Sie erhöhen den Aufwand bereits bei den Anfrage- und Freigabeprozessen, sind umfangreicher bei der Ausführung, müssen anders gewartet werden und machen Desaster-Recovery-Pläne und Backup-Konzepte aufwändiger. Deshalb ist es oft günstiger, eine Software-Lizenz auf einen Server auszurollen, (auch wenn diese nicht benötigt wird), als dafür eine Ausnahme zu definieren. Es lohnt sich deshalb, Anforderungsgruppen und Standards durchgängig zu definieren. Zu beachten sind dabei:
Server-Installationen (Betriebssystemdistributionen, Versionen, Installationsumfänge etc.)
Benutzerrollen und -berechtigungen
Client-Installationen/virtuelle Desktops
Von welchem Ressourcenbedarf und Wachstum ist auszugehen?
Cloud-Umgebungen sind flexibel. Trotzdem ist es unerlässlich, den Ressourcenbedarf möglichst genau abzuschätzen und Kapazitätenmanagement zu betreiben, um Engpässe auszuschließen. Die benötigte Größe der Umgebung findet man über folgende Fragen heraus:
Wie viele Ressourcen werden im Normalbetrieb benötigt?
Gibt es saisonale Anforderungsspitzen, die berücksichtigt werden müssen, wie zum Beisiel das Weihnachtsgeschäft?
Wie schnell muss ein neuer Ressourcenbedarf abgedeckt werden können?
Wie groß ist das normale Wachstum des Bedarfs?
Der Bedarf lässt sich insbesondere aus den zwei letzten Fragen ableiten. Die Faustregel lautet: Je schneller neue Anforderungen abgedeckt werden müssen, desto größer sollte die Reserve ausgelegt sein.
Nebenkriegsschauplätze der Cloud
Als ob die eigentliche Cloud-Bereitstellung nicht schon reichen würde, muss sich die IT-Abteilung daneben mit weiteren Anforderungen beschäftigen. Nicht nur die unternehmensweiten Prozesse müssen an das neue Arbeitskonzept angepasst werden, sondern auch die Prozesse innerhalb der IT. In der Planungsphase können deshalb die folgenden Fragen hilfreich sein:
Wie kann ich Integrität und Sicherheit der Systeme garantieren?
Welche Dienste muss ich bereitstellen?
Wie dokumentiere ich Abhängigkeiten und Zusammenhänge?
Wie überwache ich die Umgebung?
Wie kann ich alle Abhängigkeiten automatisieren?
Abheben in die Cloud
Bei der Bereitstellung von Ressourcen geht es um drei zentrale Bereiche:
Computing
Im Bereich Computing werden die eigentlichen Rechenkapazitäten (CPU-Leistung und Arbeitsspeicher) zusammengefasst, zum Beispiel in einer virtualisierten Umgebung. Im Regelfall ist eine vollständige Virtualisierung die flexibelste und kostengünstigste Variante. Virtualisierungen gehören seit Jahren zum Standard, deshalb erfüllen sie die meisten Anforderungen an eine Cloud von Haus aus.
Bei der Wahl des Managements, also dem Bindeglied zwischen Cloud-Orchestration und Virtualisierung, sollte man auf Integrationsmöglichkeiten achten. So unterstützt zum Beispiel OpenStack durch die Bereitstellung mehrerer Treiber KVM, VMware, XEN, Microsoft Hyper-V oder libvirt. Dadurch können mehrere Plattformen nahtlos miteinander integriert werden oder geschäftskritische Applikationen parallel zu Entwicklungsumgebungen auf einem kostengünstigen KVM betreiben.
Dahinter steht das Konzept Software-Defined-Computing, kurz SDC. Abstrahiert werden sowohl die zur Verfügung stehenden Ressourcen von der Hardware als auch die eingesetzte Virtualisierung vom Hersteller. Die Software-Schicht schafft damit ein in alle Richtungen flexibles Framework. Virtualisierungslösungen sind schon seit vielen Jahren am Markt und ausgereift. Außerdem stammt das heute "Cloud" genannte Konzept ursprünglich aus der Virtualisierung. Viel herausfordernder als das Computing sind daher die beiden anderen Ressourcenbereiche.
Networking
Networking, also die Verwaltung von unterschiedlichen Netzwerken und zur Verfügung stehender Bandbreite, kann in der Cloud sehr komplex sein. Der Umgang mit vielen, voneinander getrennt zu behandelnden Netzwerken muss im automatisierten Management der Cloud berücksichtigt werden. So zum Beispiel bei der Konfiguration der Server-Instanzen oder den auf den Switches hinterlegten Port- und VLAN-Konfigurationen. Software-Defined-Networking, kurz SDN, verfolgt das Ziel, diese Aufgaben von den dezentralen, meist auf proprietären Betriebssystemen basierenden Netzwerkgeräten zentral auf eine Softwareschicht zu übertragen.
OpenFlow bietet einen offenen Standard, der die Hardware-Infrastruktur des Netzes durch die Auslagerung der Intelligenz der Switch-Infrastruktur in ein zentrales System abstrahiert. OpenFlow wird bereits von einigen Herstellern wie Cisco, HP, Brocade, Extreme Networks, Juniper und Dell eingesetzt, weil der software-basierte Ansatz viel flexibler ist und unabhängiger macht.
Storage
Auch bei der Verwaltung von Speicherressourcen müssen die Grundsätze der Cloud angewendet werden, sprich das Management und die technischen Funktionalitäten müssen von der Hardware getrennt werden, um ein Framework zu schaffen, das so flexibel ist, wie es der Aufbau einer Cloud vorgibt. Die Lösung sind auch hier software-basierte Frameworks, für die sich die Bezeichnung Software-Defined-Storage (SDS) eingebürgert hat. Bei der Wahl eines SDS-Frameworks stehen die folgenden Fragen im Vordergrund:
Wird neben den Anforderungen des Cloud Storage auch die Bereitstellung von Speicher auf anderer Protokollbasis unterstützt?
Wie kann eine Hochverfügbarkeit sichergestellt werden und ist dies bei Bedarf auch standortübergreifend möglich?
Wie effizient können Daten abgelegt werden, um die vorzuhaltenden Ressourcen zu reduzieren?
Besteht die Möglichkeit der Überbuchung von vorhandenen Speicherressourcen?
Wie effizient kann das Storage Framework skalieren?
Wie wird die Bereitstellung und Zuordnung von Speicher automatisiert?
Wie integriert sich das Framework in Datensicherungsprozesse?
"In a way, open source and the cloud are the same thing."
Dieses Zitat von John Roberts, Mitgründer und ehemaliger CEO von SugarCRM, mag etwas überspitzt klingen. Tatsächlich gibt es aber Parallelen zwischen dem Prinzip von Open Source-Software und dem Betrieb von Cloud-Lösungen. Allen voran steht die Flexibilität bei der Anpassung an spezielle Anforderungen. Kein Wunder also, dass Open Source-Lösungen wie OpenStack, openQRM, openATTIC, CloudStack, oder openNebula bei der Entwicklung aktueller Cloud Frameworks eine zentrale Rolle einnehmen. Bis zum heutigen Tag kann keine proprietäre Lösung mit dem Funktionsumfang und dem Reifegrad von Open Source-basierenden Frameworks mithalten.
Die Vorteile von Open Source-Projekten im Cloud-Bereich gelten auch für das Teilsegment von Software-Defined Storage. Zwar orientieren sich proprietäre Hersteller inzwischen ebenfalls am SDS-Konzept, mit den Vorteilen des offenen Quellcodes und dem bis heute vorhandenen Entwicklungsvorsprung können jedoch die meisten Anbieter nur schwer mithalten.
Wie steinig ist der Weg in die Cloud?
Dieser Artikel kann lediglich einen groben Überblick über Herausforderungen auf dem Weg in die Cloud geben. Kein Cloud-Projekt gleicht dem anderen, zu unterschiedlich sind die Anforderungen an die Bereitstellung, die technischen Abhängigkeiten durch Infrastruktur und Applikationen und den Ausbaugrad des Konzeptes. Vor allem dem Punkt "Anpassung der Unternehmensprozesse" sollte viel Aufmerksamkeit gewidmet werden, denn auch eine technisch ausgereifte Umgebung kann nur dann Mehrwerte bieten, wenn sie organisatorisch zugelassen werden.
Auch aus technischer Sicht kann eine Fehlentscheidung leicht in einer Sackgasse enden. Besonders in den Bereichen Storage und Networking ist es ratsam, eine Unabhängigkeit von einzelnen Herstellern anzustreben. Eine nachträgliche Migration auf einen anderen Hersteller oder ein Mischbetrieb unterschiedlicher Lösung kann zu einer Kostenexplosion führen und die ersehnte Kostenoptimierung ins Gegenteil verkehren. (bw)