Menschen von oben fotografiert, die an einem Tisch sitzen.

adesso Blog

Heutzutage sind Cloud-Anwendungen kaum mehr wegzudenken, denn sie sind nützlich und erleichtern euer Leben als User – egal ob privat oder beruflich. Aber wie sieht es mit der Überführung von bestehenden Applikationen in die Cloud aus? Welche Technologien eigenen sich, was sind die Vor- und Nachteile von verschiedenen Cloud-Plattformen und welches Vorgehen hat sich bewährt, wenn es darum geht, Kundenprojekte erfolgreich umzusetzen? Diese und weitere Fragen werde ich in meiner Blog-Serie beantworten.

Um mit euch in das Thema einzusteigen, werde ich euch im ersten Teil meiner Blog-Serie „Konzeption zur Überführung von bestehenden Applikationen in die Cloud“ den Begriff „Cloud Computing“ näher erklären und den Unterschied zwischen organisatorischen und technischen Cloud-Architekturen zeigen.

Cloud Computing und die Herausforderungen für Unternehmen

Der Begriff „Cloud Computing“ bedeutet übersetzt so viel wie „Datenwolke“ und beschreibt zunächst einmal die Bereitstellung von IT-Infrastruktur – etwa Speicherplatz oder auch Software – die nicht vor Ort auf eurem PC vorhanden, sondern über ein Netzwerk verfügbar ist.

Ein Cloud-Dienst, den ihr sicherlich alle kennt und schon genutzt habt, ist Dropbox. Dieser Dienst bietet euch als Nutzern die Möglichkeit, eure Daten in der Cloud abzulegen und diese sehr komfortabel durch die Nutzung eines Clients transparent zu verwalten. In Deutschland setzt Dropbox übrigens auf den bereitgestellten Webspeicher von Amazon Web Services (AWS). Die Nutzung solcher Clouds für private Zwecke ist allerdings nur eine Seite der Medaille. Eine weitaus größere Bedeutung hat die Nutzung von Cloud-Diensten für Unternehmen, denn es steckt viel Potenzial und Geld in dieser Technologie.

Viele Unternehmen stehen vor der Entscheidung, Cloud-Dienste in Anspruch zu nehmen oder sogar ihre gesamte IT-Struktur in die Cloud zu verlagern. Allerdings ist den meisten Unternehmen bei der Entscheidung, ihre Applikationen in die Cloud zu überführen, nicht bewusst, dass ein Wechsel in die Cloud mit einem sehr großen Aufwand verbunden und die Umstellung langwierig ist. Ihr könnt euch das Ganze wie bei einer größeren Softwareumstellung vorstellen: Es müssen im Vorfeld nämlich sämtliche Verfahrensweisen und Vorgänge analysiert und im Neusystem berücksichtigt werden. Weitere Faktoren, die einen einfachen Wechsel der gesamten Unternehmens-IT in die Cloud beeinflussen, wären das Fehlen von Anleitungen (Best Practices) oder Bewertungstabellen sowie der Mangel an Experten auf diesem Gebiet. Allerdings ist die Überführung von Applikationen in die Cloud und die Nutzung von Cloud-Diensten einer der nächsten wichtigen Schritte in der Informationstechnik – nach der Einrichtung des Mobilfunknetzes und der Erschließung des flächendeckenden Internets. In den nächsten Beiträgen meiner Blog-Serie erfahrt ihr mehr dazu.

Arten der Cloud-Architekturen

Wie die Überschrift schon verrät, gibt es unterschiedliche Arten von Cloud-Architekturen. Diese lassen sich in organisatorische und technische Arten unterteilen. Der Unterschied ist auch recht schnell erklärt.

Bei organisatorischen Cloud-Architekturen wird nach dem Verhältnis zwischen Benutzer und Anbieter unterschieden. Ein Beispiel: Ihr als Nutzer nehmt einen Cloud-Dienst – beispielsweise Dropbox – in Anspruch, den der Anbieter zur Verfügung stellt. Hier müssen die Begriffe „Public Cloud“, „Private Cloud“ und „Hybrid Cloud“ differenziert betrachtet werden:

Public Cloud

Bei einer Public Cloud gehören Benutzer und Anbieter nicht derselben organisatorischen Einheit an. Das bedeutet, dass es sich hierbei um das Angebot eines frei zugänglichen Providers handelt, der seinen Cloud-Dienst potenziellen Nutzern über das Internet zur Verfügung stellt. Die User haben die Möglichkeit, den Dienst über ein Web-Portal (in machen Fällen zahlungspflichtig) in Anspruch zu nehmen.

Private Cloud

Eine Private Cloud kann auch als interne oder Unternehmens-Cloud bezeichnet werden, die nach On-Premise (in den eigenen Räumlichkeiten) und Off-Premise (entfernter Standort) unterscheiden wird.

Hier können Unternehmen ihre IT-Dienste den eigenen Mitarbeitern zur Verfügung stellen. Diese können so angeboten werden, dass die Mitarbeiter eines Unternehmens auch die typische Mehrwerte einer Cloud nutzen können – etwa eine skalierbare IT-Infrastruktur oder installations- und wartungsfreie IT-Anwendungen.

Hybrid Clouds

Eine Hybrid Cloud ist eine Mischform von Public und Private Cloud. Hier können beispielsweise bestimmte Services bei öffentlichen Anbietern über das Internet laufen (Public) und datenschutzkritische Anwendungen werden im Unternehmen betrieben (Private).

Die Architektur des Cloud Bursting – damit ist eine eingerichtete Konfiguration im Sinne einer Hybrid Cloud gemeint – ermöglicht es euch, erhöhte Auslastungen zu erkennen und entsprechende Maßnahmen zu ergreifen. Werden eure Ressourcen in der Private Cloud also knapp, könnt ihr einzelne Applikation oder auch komplette virtuelle Maschinen in eine Public Cloud verschieben.

Im Gegensatz zu den organisatorischen Cloud-Architekturen, orientieren sich die technischen Cloud-Architekturen an funktionalen Eigenschaften. An dem folgenden Schichtenmodell könnt ihr den hierarchischen Aufbau der technischen Cloud-Architekturen genau erkennen:


Darstellung der Schichten bei technischen Cloud-Architekturen

Die Grafik sieht zwar zunächst kompliziert aus, aber ich erkläre euch den Aufbau „Schicht für Schicht“.

Die unterste Schicht bildet den sogenannten Infrastructure as a Service (IaaS). Hierbei erhaltet ihr als Nutzer eine abstrahierte Sicht auf die verfügbaren Ressourcen eines Anbieters – beispielsweise den Massenspeicher oder die Netzwerke. Ihr habt somit die Möglichkeit, die Menge an bereitgestellten Ressourcen zu verwalten und euch Ressourcen für die eigene Verwendung zu sichern.

Die zweite Schicht wird als Platform as a Service (PaaS) bezeichnet. Dieser Layer richtet sich an die Entwickler, da es sich hierbei um eine in die Cloud verlagerte Entwicklungs- und Laufzeitenumgebung handelt. Je nach Plattform können unterschiedliche Programmiersprachen zur Softwareentwicklung genutzt werden. Des Weiteren besteht in dieser Schicht die Möglichkeit, eine eigene und anbieterunabhängige Software zu entwickeln. Diese Option führt übrigens zu technischen Alternativen und mindert die Gefahr einer zu starken Bindung an einen kommerziellen Cloud-Anbieter (Vendor Lock-In). Ein Beispiel für das Zusammenspiel zwischen den beiden genannten Schichten wäre die Bereitstellung von Speicherressourcen durch die IaaS-Schicht und die Nutzung dieser Speicherressourcen in der PaaS-Schicht für Entwicklungsvorhaben.

Die oberste Schicht im dargestellten Modell stellt den Software-as-a-Service-Layer (SaaS-Layer) dar. SaaS-Anwendungen richten sich direkt an den Endnutzer, also etwa Mitarbeiter im Unternehmen oder private Nutzer. Für diese User entfällt die lokale Installation der benötigten Software sowie die Bereitstellung von nötigen Ressourcen, um die Software zu betreiben. Stattdessen nehmen die Endkunden die kostenpflichtige Leistung (im Falle der privaten Nutzung) des jeweiligen Cloud-Anbieters in Anspruch, der die gewünschte Software bereitstellt.

Ausblick

Ich hoffe, dass ich euch verständlich erklären konnte, worum es sich bei Cloud Computing handelt und dass euch die Unterschiede zwischen den verschiedenen Arten der Cloud-Architekturen klar geworden sind.

Im zweiten Teil meiner Blog-Serie beschreibe ich dann die Unterschiede zwischen lokaler Hardware und Cloud-Diensten, erkläre die Möglichkeiten zur Virtualisierung und zeige euch, was es mit Docker auf sich hat. Es bleibt also auch weiterhin interessant.

Ihr möchtet mehr zum Thema Softwareentwicklung erfahren? Dann werft auch einen Blick auf unsere weiteren Blog-Beiträge.

Bild Oliver Richter

Autor Oliver Richter

Oliver Richter zwar zunächst Werkstudent und ist nun Software Engineer bei adesso. Er interessiert sich für DevOps-Themen (etwa Docker, Vagrant und OpenShift) sowie für leichtgewichtige Softwareentwicklung in Java. Seine Kenntnisse konnte Oliver in Themen wie Unittesting sowie Buildmanagement und Platform as a Service vertiefen.

Diese Seite speichern. Diese Seite entfernen.