« Alle Blog Einträge

Eine Einführung in Infrastructure-as-a-Service (IaaS)

IaaS, PaaS, SaaS – diese Abkürzungen haben Sie sicherlich schon einmal gehört. Aber was genau verbirgt sich dahinter? In diesem Artikel wollen wir uns IaaS, kurz für Infrastructure-as-a-Service, widmen und Ihnen nicht nur das Prinzip erklären, sondern auch, welche Vorteile IaaS-Lösungen für Ihr Unternehmen bieten können. 

Was ist IaaS? Definition

IaaS steht für Infrastructure-as-a-Service und bezeichnet Dienstleistungen im IT-Bereich, bei denen IT-Anbieter ihre Infrastruktur Unternehmen zur Verfügung stellen. Dabei betreibt der Anbieter eigene Rechenzentren, in denen seine Hardware untergebracht ist. Per Cloud-Technologie können Kunden dann auf diese Ressourcen zugreifen und frei für ihre Zwecke nutzen. 

Dasselbe Prinzip gilt übrigens auch für Platform-as-a-Service (PaaS) und Software-as-a-Service (SaaS). Hier wird jedoch keine IT-Infrastruktur vermietet, sondern dementsprechend der Zugriff auf eine Plattform oder eine Software. Dies läuft ebenfalls über Cloud-Technologie. Zudem stellt IaaS auch die Grundlage für PaaS- und SaaS-Dienstleistungen dar. 

Warum IaaS? Die Vorteile der gemieteten IT-Infrastruktur

Viele Unternehmen setzen auf Infrastructure-as-a-Service-Lösungen, weil sie von der schnellen Skalierbarkeit profitieren. Außerdem ermöglicht es IaaS, die eigene IT-Abteilung klein zu halten und nicht von Grenzen innerhalb des Unternehmens ausgebremst zu werden. Der Platzbedarf für eigene Server entfällt und wenn der Bedarf an IT-Ressourcen steigt, können sie bei einer IaaS-Lösung flexibel hinzugebucht werden, ohne eine räumliche und personelle Vergrößerung nach sich zu ziehen. 

Des weiteren wird die Wartung der Hardware sowie Backups ausgelagert und das bedeutet, dass Ihr Unternehmen sich ganz auf sein Geschäft konzentrieren kann, anstatt viel Zeit darauf zu verwenden, die Arbeitsmittel und IT-Kapazitäten einsatzbereit zu halten. 

Public IaaS, Private IaaS oder Hybrid-IaaS?

Bei einer IaaS-Lösung übernimmt der Anbieter für Sie die Hardwarebeschaffung und Wartung. Anstatt jedoch einen dedizierten Server nur für Sie zu betreiben, bietet der Betreiber Ihnen Speicherkapazitäten und weitere Ressourcen in seiner Cloud an. Netzwerk, Speicher, Virtualisierung und Server liegen in der Verantwortung des Anbieters. 

Sie entscheiden über das Betriebssystem, die Daten, die Sie in der Cloud speichern möchten sowie die Anwendungen, die Sie über die Cloud laufen lassen möchten. Dabei gibt es bezüglich der Cloud drei verschiedene Möglichkeiten. Sie kann als Private Cloud, Public Cloud oder Hybridvariante betrieben werden. 

Bei einer Private Cloud gibt es eine unternehmensinterne Cloud, die von einer eigenen IT-Abteilung betrieben wird. Diese kümmert sich dann um die Zuteilung der Ressourcen für einzelne Abteilungen. Genau genommen wird hier die Hardware nicht ausgelagert, aber zentral für das gesamte Unternehmen verwaltet. Dies ist insbesondere dann attraktiv, wenn sensible Firmendaten ein hohes Maß an Sicherheit benötigen und daher im eigenen Netzwerk verbleiben sollen.

Die am meisten verbreitete IaaS-Variante ist allerdings die Public Cloud eines externen Anbieters. Dieser vermietet seine Cloud-Ressourcen an verschiedene Kunden, losgelöst von der physischen Infrastruktur. Hybrid-IaaS nutzt sowohl die Public Cloud als auch unternehmensinterne IT-Ressourcen, um die Vorteile beider Methoden anwenden zu können. 

Wie kann Infrastructure as a service aussehen? Beispiele

Nicht nur, wenn Ihr Unternehmen wächst, können Sie plötzlich mehr IT-Ressourcen wie Speicherplatz und Serverkapazitäten benötigen. Ein typisches Beispiel für ein Unternehmen oder eine Abteilung, die auf IaaS setzt, ist ein Online-Shop. Aufgrund von saisonal unterschiedlicher Nachfrage, Stichwort Oster- oder Weihnachtsgeschäft, aber auch Werbekampagnen oder weiteren Promotionen kann es zu Lastspitzen kommen.

Diese Lastspitzen müssen kurzfristig und flexibel abgefangen werden können, damit die Website nicht zusammenbricht und für die Kunden erreichbar bleibt. Außerhalb der Zeit werden die Ressourcen dafür aber nicht benötigt. Eine eigene Infrastruktur müsste, um die Verfügbarkeit zu gewährleisten, also auf diese Lastspitzen ausgelegt sein. Aber auch, wenn die Zugriffe niedrig sind, müsste die Hardware gewartet und gelagert werden. 

Eine IaaS-Lösung schafft hier Abhilfe. Eine Public Cloud bietet die nötigen Ressourcen, um Lastspitzen abzufangen, wenn die Ressourcen jedoch nicht benötigt werden, müssen sie nicht gemietet und somit auch nicht bezahlt werden. Der Anbieter kann diese dann einfach anderweitig verwenden.

Für wen eignet sich IaaS?

Ebenfalls kann IaaS genutzt werden, wenn Sie für ein zeitlich begrenztes Projekt oder bestimmte Projektphasen zusätzliche IT-Ressourcen benötigen. Dies ist zum Beispiel in der Softwareentwicklung der Fall, wenn Testumgebungen eingerichtet werden müssen, die nach erfolgreicher Entwicklung eines Features oder Beheben eines Bugs nicht mehr notwendig sind. 

Infrastructure-as-a-Service eignet sich nicht nur für größere Unternehmen, die ihre IT-Infrastruktur auslagern wollen. Auch kleinere Unternehmen und Startups profitieren von IaaS-Lösungen, gerade, wenn die Bedürfnisse an Ressourcen keine eigene IT-Abteilung rechtfertigen oder noch keine langfristigen Investitionen in eigene Hardware gemacht werden können. 

Warum der richtige IaaS-Anbieter so wichtig ist

Wenn Sie sich für IaaS für Ihr Unternehmen entscheiden, ist es wichtig, dass Sie bei der Auswahl des IaaS-Anbieters sorgfältig vorgehen. Sie möchten Ihre Daten schließlich in gute Hände geben und keine Abstriche bei der Verfügbarkeit Ihrer Daten und Dienste machen müssen. Eine Migration zu einem anderen Anbieter kann sich aufgrund der hohen Datenmenge und der Tatsache, dass Sie selbst nicht die notwendige Infrastruktur besitzen, aber auf diese angewiesen sind, etwas schwierig gestalten. 

Ihr IaaS-Anbieter sollte also neben flexiblen Skalierungsmöglichkeiten und der nötigen Hardware auch insbesondere auf Datenschutz und Disaster Recovery setzen. Obwohl das Potenzial, Kosten einzusparen, ein schlagendes Argument für IaaS ist, müssen Sie prüfen, ob Ihr Anbieter bestimmte Standards einhält. Bei einer nicht ausreichenden Backup-Strategie oder Verletzungen des Datenschutzes wird aus einem vermeintlich guten Deal schnell ein kostenintensiver Skandal. 

Datenschutz und Disaster Recovery sind das A und O

Darum sollte Ihr IaaS-Anbieter hohe Standards bezüglich Datenschutz setzen. Bei personenbezogenen Daten von Nutzern aus der EU gilt dabei die DSGVO, die beachtet werden muss. Aber auch weitere sensible Daten möchten Sie gut geschützt wissen. Deshalb ist eine gute Firewall und gegebenenfalls Verschlüsselung Pflicht. 

Vor Datenverlusten schützen regelmäßige Backups sowie Redundanz. Redundanz bedeutet dabei, dass Daten öfter vorhanden sind als notwendig. Wenn ein Datensatz beschädigt wird, kann problemlos auf eine zweite Kopie zurückgegriffen werden. Idealerweise wird dies als Geo-Redundanz umgesetzt, das heißt, die Kopien der Daten sind räumlich voneinander getrennt, auf verschiedenen physischen Servern oder sogar verschiedenen Rechenzentren. 

Selbst, wenn also ein Rechenzentrum komplett ausfallen sollte, sind Ihre Daten immer noch an anderer Stelle vorhanden und Sie merken womöglich gar nicht, dass Sie nicht mehr mit derselben Kopie arbeiten. 

IaaS von servinga – Cloud Services aus Deutschland

servinga bietet Ihnen eine flexible IaaS-Lösung aus Frankfurt am Main an. Damit garantieren wir nicht nur die Einhaltung aller deutschen Datenschutzbestimmungen, sondern sind auch bestens vernetzt. Ihre Daten sind in unserer OpenStack-IaaS-Umgebung in guten Händen und werden mit dreifacher Redundanz in Tier-3-Rechenzentren gesichert. Unsere erfahrenen Mitarbeiter sorgen dafür, dass Sie unsere Services komplett wartungsfrei genießen können. 

Zusammenfassung

IaaS bietet eine flexible Lösung mit schneller Skalierbarkeit für Unternehmen jeder Größe. Unabhängig von eigener Hardware können Lastspitzen abgefangen oder große Mengen an Daten gespeichert werden und auf Top-Leistung zurückgegriffen werden. Mit zunehmender Vernetzung setzen immer mehr Unternehmen auf IaaS-Lösungen. 

« Alle Blog Einträge

Die Architektur von Kubernetes – So ist die Anwendung zur Containerverwaltung aufgebaut

Eine kleine Einführung in die Kubernetes-Architektur haben wir bereits in einem früheren Artikel behandelt. In diesem Artikel möchten wir jedoch mehr in die Tiefe gehen und den Aufbau der beliebten Plattform zur Verwaltung von Anwendungscontainern detailliert vorstellen. Denn von der Komplexität von Kubernetes sollten Sie sich nicht abschrecken lassen – genau diese macht das Tool so leistungsstark. 

Was ist Kubernetes?

Kubernetes ist eine Open-Source-Plattform zur Verwaltung von Anwendungscontainern. Das Tool ist ein wahrer Allrounder, da er nicht an eine Software zur Containererstellung gebunden ist, sondern mit vielen Tools kompatibel ist. Mit Hilfe von Plattformen wie Kubernetes können Container schnell skaliert und flexibel gemanagt werden. 

Auch bei servinga setzen wir auf den Marktführer im Bereich Containerverwaltung und bieten Managed Kubernetes Hosting als IaaS-Lösung an.  

Wie ist sieht der Aufbau von Kubernetes aus?

Kubernetes ist hierarchisch aufgebaut und besteht aus mehreren Ebenen. Die kleinste Einheit in Kubernetes selbst sind dabei die Pods. Genau genommen geht es jedoch noch kleiner: In den Pods liegen die Container. Mehrere Pods fügen sich zu Nodes zusammen, die wiederum in Clustern, der größten Einheit in Kubernetes, organisiert sind. 

Auf jeder der Kubernetes-Ebenen bieten sich Ihnen Monitoring- und Orchestrierungsmöglichkeiten, sodass Sie selbst entscheiden können, wie umfassend oder spezifisch Sie Änderungen vornehmen möchten. 

Pods: Die kleinste Kubernetes-Einheit

In Kubernetes können Pods aus einem oder mehreren Container-Images bestehen. Mehrere Container werden beispielsweise in einem Pod untergebracht, wenn sie auf dieselben Ressourcen zugreifen müssen. Sie teilen sich sowohl den Speicherplatz als auch die Netzwerkressourcen sowie die Anweisungen zur Ausführung der Container. Innerhalb eines Pods können die Container ebenfalls untereinander kommunizieren. 

Am häufigsten wird die Variante verwendet, in der nur ein Container in einem Kubernetes-Pod liegt. Wenn die Container jedoch relativ eng miteinander zusammenhängen, können fortgeschrittene User mehrere Container in einem Pod versammeln. Ein Beispiel hierfür wären ein Web Server und ein Sidecar-Container, der die Daten auf dem Web Server aktualisiert. 

Kubernetes selbst hat die Pods so konzipiert, dass jeweils eine einzelne Instanz einer Anwendung in einem Pod laufen soll. Für die horizontale Skalierung empfiehlt Kubernetes daher, pro Pod eine Instanz zu nutzen. Auf diese Weise replizierte Pods lassen sich als Gruppe gemeinsam verwalten. 

Nodes: Die nächsthöhere Einheit in Kubernetes

Mehrere Pods werden auf der nächsthöheren Ebene in Nodes organisiert. Ein Node kann eine virtuelle Maschine oder auch ein physischer Server sein. Für die Skalierbarkeit eignen sich insbesondere virtuelle Maschinen, da sie nicht an physische Hardware gebunden sind und leicht erweitert werden können. Jeder Node kann mithilfe der Control Planes verwaltet werden. 

Zusätzlich zu den Pods befinden sich in einem Node auch ein Kubelet und ein Kube-proxy. Das Kubelet ist für die Kommunikation mit der Control Plane zuständig und führt die Container den Anweisungen entsprechend aus. Das Kube-proxy hingegen kümmert sich um die Netzwerkkommunikation 

Cluster in Kubernetes: Die höchste Ebene der Kubernetes-Architektur

Ein Cluster besteht in Kubernetes üblicherweise aus mehreren Nodes. Es ist jedoch auch möglich, nur einen Node in einem Cluster zu verwalten. Das ist in der Regel der Fall, wenn Sie den Umgang mit Kubernetes erlernen möchten oder Ihnen nur begrenzte Ressourcen zur Verfügung stehen. Cluster können sowohl als IaaS- als auch als On-Premise-Lösung realisiert werden – hybride Lösungen sind jedoch nicht möglich. In dem Fall müssen Sie verschiedene Cluster erstellen. 

Das Herzstück zur Verwaltung und Orchestrierung Ihrer Container in Kubernetes ist die Control Plane. Die Control Plane erlaubt den Zugriff auf die Schnittstellen, die für die Erstellung eines Containers sowie die Verwaltung während des Lebenszyklus’ der Container verantwortlich sind. Des weiteren ermöglicht sie ebenfalls, globale Entscheidungen für das gesamte Cluster zu treffen sowie Ihr Cluster mit dem API des Cloud-Anbieters zu verbinden.

Wie verhalten sich Cluster zu Nodes und Nodes zu Pods im Kubernetes-Aufbau?

Zumeist sind es mindestens drei Nodes, die einen Cluster ergeben: zwei Worker Nodes und ein Master Node. Innerhalb eines Clusters können auch die Nodes untereinander 

kommunizieren, nach außen stellt das Kubernetes-Cluster eine geschlossene Einheit dar. 

Der API-Server stellt die Masterkomponente dar, die Remote-Services zur Verfügung stellen kann. Mithilfe der API wird außerdem der gewünschte Zustand des Clusters definiert. Der gewünschte Zustand beschreibt, welche Anwendungen oder Workloads auf welchen Ressourcen laufen sollen und wird in Form von sogenannten Manifests, die zu Konfigurationsdateien zusammengefasst werden, kommuniziert. 

Wenn der gewünschte Zustand definiert wurde, ist Kubernetes so aufgebaut, dass es diesen automatisch umsetzt. Hier kommen auch die Selbstheilungskräfte von Kubernetes ins Spiel: Falls einzelne Container und Replikationen ausfallen, kann Kubernetes selbstständig neue Replikationen erstellen und so die geforderte Zahl der Container aufrechterhalten. 

Die Rolle der Control Plane im Aufbau von Kubernetes 

Die Control Plane besteht aus dem API Server, dem Scheduler, dem Controller sowie dem etcd-Backendspeicher. Im etcd werden die gesamten Daten über die Clusterkonfigurationen sowie seinen Zustand gespeichert. Kubernetes empfiehlt, für diese Daten einen Backupplan zu haben, da sie essentiell für den Betrieb Ihres Clusters sind.

Der Scheduler verteilt neue Pods auf Nodes und der Controller überwacht Tasks und Prozesse auf mehreren Kubernetes-Ebenen und führt notwendige Änderungen aus. Dazu zählen unter anderem die Nodes und die Replikationsprozesse, aber auch weitere Prozesse. 

Managed Kubernetes Hosting – Kubernetes made easy

Die Komplexität der Kubernetes-Architektur kann auf den ersten Blick einschüchternd wirken. Aber Sie müssen kein erfahrener Programmierer sein oder eine umfassende IT-Abteilung besitzen, um Kubernetes zu nutzen. Im Managed Kubernetes Hosting übernimmt der Hosting-Anbieter für Sie die Implementierung Ihrer Kubernetes-Cluster und vereinfacht Ihnen die Nutzung von Kubernetes. 

Bei servinga übernehmen wir das Management Ihrer Cluster, aber gewähren Ihnen gleichzeitig vollen Zugriff auf das Kubernetes-Dashboard. Auch Backup und Monitoring können Sie uns überlassen. Unsere Mitarbeiter stehen gerne für Ihre Fragen rund um Kubernetes zur Verfügung. 

Mithilfe des Managed Kubernetes Dashboards können Sie jederzeit die Performance und Auslastung Ihres Clusters einsehen. Auch Skalierung sowie Up- und Downgrades sind mit wenigen Klicks umsetzbar. Mehr über Managed Kubernetes und die Vorteile für Ihr Unternehmen erfahren Sie auch in unserer Übersicht im Blog

Zusammenfassung

Wenn Sie Kubernetes selbst hosten möchten, kann die Installation, Verwaltung und Überwachung einige Zeit zur Einarbeitung und Aufrechterhaltung benötigen. Mithilfe von Managed Kubernetes Services können Sie sich die Implementierung einer Kubernetes-Architektur sowie Verwaltung und Monitoring vereinfachen und dennoch von allen Vorteilen von Kubernetes profitieren. 

« Alle Blog Einträge

OpenStack Cloud Guide – Alles, was Sie wissen müssen

Was genau ist OpenStack und wie schneidet es im Vergleich zu Kubernetes und Openshift ab? Welche Vorteile bietet die OpenStack Cloud? Was hat es mit OpenStack Swift auf sich und lassen sich OpenStack und Terraform gemeinsam verwenden? Diese Fragen und mehr beantworten wir in diesem ausführlichen OpenStack Cloud Guide. 

OpenStack: Die Basics

OpenStack ist eine frei verfügbare Open-Source-Software für die Virtualisierung und die Bereitstellung von Storage. Ursprünglich angestoßen von Rackspace und der NASA wird es ebenfalls von zahlreichen anderen Firmen wie beispielsweise Red Hat, Huawei, Intel und IBM unterstützt. OpenStack bildet eine optimale Basis für eine Cloud-Infrastruktur und ermöglicht, diese mit größtmöglicher Datensicherheit auszustatten. 

OpenStack wird jedoch nicht nur von namhaften Firmen unterstützt, es ist auch die am weitesten verbreitete Open-Source-Software für die Cloud. Es wurde geschaffen, um große Mengen an Speicher und Netzwerkressourcen über ein gemeinsames Datacenter zu verwalten. 

Die allererste Version von OpenStack wurde im Herbst 2010 veröffentlicht. Die derzeit neueste und zweiundzwanzigste Version, Version 2021.1 mit Namen Wallaby, wurde am 14. April 2021 released. Programmiert wird OpenStack in der Programmiersprache Python. Verfügbar ist OpenStack unter einer Apache-Lizenz. 

Die Vorteile von OpenStack

Ein großer Vorteil von OpenStack ist seine hohe und flexible Skalierbarkeit. Gerade, wenn sich die Anforderungen und Auslastung Ihrer IT-Infrastruktur stetig ändert, können Sie mithilfe von OpenStack Ihre Kosten und Ressourcen flexibel gestalten und müssen nicht permanent alle Ressourcen für die Maximalauslastung bereithalten. Sie bezahlen nur, was Sie auch in dem Moment nutzen und benötigen. 

Davon profitieren beispielsweise Websites, die saisonal oder durch Werbung bedingt kurzfristig viel Traffic erhalten, der jedoch schnell wieder abflacht. Diese Lastspitzen müssen gut abgefangen werden können, um Ausfälle und Hardwareüberlastung zu vermeiden. Die OpenStack Cloud leistet genau das. 

Zudem sind Ihre Daten dank Redundanz gut vor Verlusten geschützt. Dadurch, dass der Zugang ortsunabhängig über das Internet möglich ist, vereinfacht es kollaboratives Arbeiten und benötigt keine spezielle Hardware. Somit können auch Teammitglieder mit unterschiedlichen technischen Voraussetzungen gut miteinander über OpenStack arbeiten. 

Die Bestandteile von OpenStack

OpenStack ist ein komplexes System aus mehreren Komponenten, die jeweils ihre eigenen Funktionen haben. Dank dieses Aufbaus kann OpenStack für viele verschiedene Anwendungen eingesetzt werden. Wir werden Ihnen die sieben Komponenten und ihre Funktionen detailliert vorstellen.

OpenStack Swift – Skalierbarer Objekt-Storage 

OpenStack Swift ist die Komponente von OpenStack, die für die Bereitstellung des Objektspeichers zuständig ist. Der Speicher ist beinahe beliebig skalierbar und eignet sich daher perfekt für große Datenmengen. Dazu zählen nicht nur Bilder und Videos, sondern auch beispielsweise Virtual-Machine-Images. 

Die redundante Speicherung der Daten ist zudem bereits integriert, sodass Ihre Daten gut gegen Ausfälle gesichert sind. Eine dreifache Replikation ist problemlos möglich, aber auch weitere Backups können eingestellt werden. Fällt ein Speicherplatz aus, wird sofort eine neue Kopie an einem anderen Ort abgelegt, sodass zu jedem Zeitpunkt die geforderte Anzahl an Replikationen vorliegt. 

In OpenStack Swift werden die Daten über HTTP gespeichert und abgerufen. Eine REST-HTTP-API ermöglicht den Zugriff auf die Daten. Bei der Speicherung der Daten arbeitet OpenStack Swift zudem mit Containern, in denen die Daten abgelegt werden. Diese Container speichern ebenfalls Metadaten und können verschiedenen Accounts zugeordnet werden. 

OpenStack Swift kann außerdem als Backend für die OpenStack Komponenten Cinder und Glance eingesetzt werden. 

OpenStack Nova – Verwalter virtueller Maschinen

Die OpenStack-Komponente Nova ist für Gruppen von virtuellen Maschinen zuständig. Mithilfe von Nova können virtuelle Maschinen erstellt werden, es kann jedoch auch für physische Server genutzt werden. Auch Systemcontainer werden begrenzt von OpenStack Nova unterstützt. 

Sie erstellen eine beliebige Anzahl an Compute-Knoten, auf die Sie anschließend die virtuellen Maschinen aufteilen können. Um Nova zu verwenden, benötigen Sie eine Datenbank. Für die Verwaltung von Nova existiert eine REST API. Auch weitere OpenStack-Services und -Komponenten sind für den Betrieb von OpenStack Nova notwendig. Keystone, Glance und Neutron werden wir im Folgenden ebenfalls vorstellen, für Nova wird zusätzlich noch Placement benötigt, was für das Tracking verfügbarer Cloud-Ressourcen verwendet wird. 

Über den OpenStack Client können Sie den Großteil der relevanten Befehle, nicht nur für die Nova-Komponente, sondern auch für die restlichen Bestandteile, eingeben. Falls Sie jedoch sehr spezifische, fortgeschrittene Funktionen und Befehle nutzen möchten oder als Admin agieren, gibt es noch den Nova Client, der diese speziellen Befehle unterstützt. 

OpenStack Glance – Der Image-Service

Glance ist der Image-Service von OpenStack. Er stellt den Nutzern Images der virtuellen Maschinen zur Verfügung. Nova benötigt diese Images zur Verwaltung der einzelnen VM-Instanzen. Auch die Metadaten können von OpenStack Glance bereitgestellt werden. 

Diese Images können an verschiedenen Orten gespeichert werden, von einfachen Dateisystemen bis hin zu Objektspeichern wie OpenStack Swift. Glance verfügt über einen Metadef-Katalog, der auf OpenStack-Ressourcen angewandt werden kann. Der Zugriff erfolgt über eine RESTful API. 

OpenStack Keystone – Zuweisung von Rechten

Die Keystone-Komponente wird für das Zuweisen von Rechten für Nutzer der Cloud verwendet. Sie ist also unverzichtbar für die Administratoren der Cloud. Auch die Authentifizierung über ein Tokensystem oder andere Authentifizierungsmethoden wie LDAP kann mithilfe von Keystone geregelt werden. Für den Zugriff auf ein Projekt wird ein sogenannter Mandant angelegt, dem wiederum mehrere Benutzer zugeordnet werden können. 

OpenStack Cinder – Virtueller Blockspeicher

Mithilfe von Cinder können Sie virtuellen Blockspeicher bereitstellen. Dieser steht in Form von virtualisierten Speichermedien zur Verfügung, die Sie mit virtuellen Maschinen verbinden können. Sie können ebenfalls eine Verbindung zwischen OpenStack Cinder und OpenStack Swift herstellen und so die Kommunikation zwischen Blockspeichermedien und Objektspeicher ermöglichen. 

Außerdem können Sie mehrere Backends definieren und Speicherklassen, bei OpenStack Volume Type genannt, anlegen und bei der Erstellung eines neuen Volumes ein bestimmtes Storage-Backend zuweisen. 

OpenStack Neutron – Der Netzwerkdienst

OpenStack Neutron ist ein Modul zur Verwaltung von Netzwerken, Subnetzen und IP-Adressen. Auch sogenannte Floating IPs, die Schnittstellen zwischen dem internen und dem öffentlichen Netz, lassen sich von OpenStack Neutron verwalten. Es bietet quasi “Network connectivity as a service”. 

Mandanten können mit Neutron mehrere private Netzwerke erstellen und kontrollieren, welche IP-Adressen auf diese Netzwerke zugreifen dürfen. Für die Sicherheit Ihres Netzwerkes ist Neutron also unerlässlich. 

OpenStack Horizon – Das Web Interface

Das Web Interface von OpenStack, ein Dashboard namens Horizon, ist templatebasiert. Es vereint die wichtigsten Komponenten und ihre Funktionen in einem einzigen Dashboard. Provider von Cloud Hosting Services können das Dashboard optisch personalisieren und weitere Funktionen integrieren. Je nachdem, bei welchem Anbieter Sie OpenStack Cloud-Dienste beziehen, kann das Dashboard also unterschiedlich aussehen und einen unterschiedlichen Funktionsumfang bieten. 

OpenStack vs. Kubernetes

Nachdem wir nun ausführlich die verschiedenen Hauptkomponenten von OpenStack behandelt haben, möchten wir aus das Thema OpenStack vs. Kubernetes eingehen. Wobei, so ganz stimmt dies nicht, denn es muss nicht unbedingt ein entweder-oder sein. Obwohl Kubernetes und OpenStack teils ähnliche Funktionen anbieten, bedeutet dies keinesfalls, dass sie einander ersetzen müssen. Im Gegenteil, es kann sogar von Vorteil sein, Kubernetes und OpenStack zu kombinieren. 

Was ist Kubernetes und wo liegen die Unterschiede zu OpenStack?

Kubernetes ist in erster Linie ein Tool zur Orchestrierung und Skalierung von Containern. Genau wie OpenStack ist Kubernetes als Open-Source-Software verfügbar. Container können anstelle von und in Kombination mit virtuellen Maschinen verwendet werden. 

Ein Container kann als kleines, kompaktes Softwarepaket bezeichnet werden. Anstelle für jede Anwendung eine virtuelle Maschine zu erstellen, können sie in Containern voneinander getrennt auf derselben Maschine laufen und sich die Ressourcen teilen. Innerhalb von Kubernetes existieren Cluster, die wiederum aus Nodes bestehen. In diesen Nodes liegen Pods, in denen sich wiederum die Container selbst befinden. 

Kubernetes überwacht die Performance der Container innerhalb der Cluster. Ähnlich wie OpenStack kann auch in Kubernetes eine Redundanz eingebaut werden und das Cluster kann so programmiert werden, dass es im Falle von Ausfällen quasi selbstheilend ist. 

Im Gegensatz zu Kubernetes ist OpenStack nicht nur auf Container festgelegt, sondern eignet sich auch für virtuelle Maschinen und physische Server. Die beiden Programme sind jedoch untereinander kompatibel. In Kombination kann die schnelle Skalierbarkeit und Automatisierung noch besser genutzt werden. OpenStack kann beispielsweise die Grundlage für ein Cloud-Netzwerk bieten, während Kubernetes die Performance der Container optimiert und auf diesem Netzwerk läuft. 

OpenStack vs. OpenShift

Bei OpenShift handelt es sich um einen wirklichen Konkurrenten von OpenStack. Die Plattformen bieten ähnliche Funktionen, setzen jedoch den Fokus auf unterschiedliche Methoden. Während OpenStack verschiedene Komponenten bietet, sind es bei OpenShift verschiedene Features. 

Ähnlich wie Kubernetes legt OpenShift den Fokus auf Container-Technologie. Um OpenShift zu nutzen, sollten Sie mit Container-Tools wie Docker und Kubernetes vertraut sein. Die Funktionen von OpenShift sind zudem perfekt auf die Appentwicklung zugeschnitten, während OpenStack etwas breiter aufgestellt ist. OpenShift bietet seinen Nutzern Templates für die Appentwicklung für alle gängigen Programmiersprachen und unterstützt viele beliebte Entwicklungsumgebungen.

Sowohl OpenStack als auch OpenShift erlauben den Zugriff auf das Dashboard beziehungsweise in OpenShift die Web Console über den Browser, sodass nicht zwingend besondere Software für den Verwaltungszugang vorhanden sein muss. 

Welches System Sie nutzen sollten, hängt also davon ab, was genau Sie in der Cloud-Umgebung machen möchten. Wenn Sie überwiegend mit Containern arbeiten, könnte OpenStack für Sie eine gute Lösung darstellen. Aber auch eine Kombination aus OpenStack und Kubernetes würde sich anbieten. So halten Sie sich weitere Optionen offen und können auch hybride Umgebungen gestalten. Theoretisch ist allerdings auch die Nutzung von OpenShift und OpenStack gemeinsam möglich.

Wie Sie OpenStack gemeinsam mit Terraform nutzen

Gerade, wenn Sie sich entscheiden, mit OpenStack in Kombination mit anderen Programmen und Anbietern zu arbeiten, können Sie noch mehr von OpenStack profitieren, wenn Sie es mit Terraform kombinieren. Was ist Terraform? Terraform erfüllt letztendlich dieselbe Funktion wie OpenStack Heat, eine weitere OpenStack Komponente. Indem es Konfigurationsdateien definiert, hilft es dabei, die Cloud-Infrastruktur effizient zu managen. 

Während OpenStack Heat jedoch nur für OpenStack gedacht ist, ist Terraform mit vielen Anbietern kompatibel. Von Containern über virtuelle Maschinen und physische Server assistiert Terraform bei der Verteilung von Ressourcen und ermöglicht es Ihnen, unterschiedliche Anbieter gemeinsam zu koordinieren. 

Mit Terraform können Sie einen Plan erstellen, wie der gewünschte Zustand Ihrer Infrastruktur aussehen soll und wie dieser erreicht werden soll. Dann setzt es diesen Plan um und passt auf, dass alle Prozesse in der richtigen Reihenfolge ausgeführt werden. 

Gerade für komplexe Systeme und mehrere Anbieter, die gemanaged werden müssen, eignet sich daher eine Kombination aus OpenStack und Terraform. Wenn Sie aber noch mehr über OpenStack Heat erfahren möchten, können Sie sich auch hier im Detail einlesen, wie die Orchestrierung mit OpenStack Heat gelingt. 

Die OpenStack Cloud – So finden Sie den richtigen Anbieter

OpenStack ist ein weit verbreitetes Tool für Cloudumgebungen. Darum ist es gar nicht so einfach, den richtigen Anbieter zu finden, auf dessen OpenStack-basierte Cloud Sie setzen möchten. Zudem ist wie oben bereits angesprochen das Horizon-Dashboard in Teilen personalisierbar und bietet nicht bei jedem Anbieter denselben Funktionsumfang. 

Für reibungslose und sichere Prozesse in der OpenStack Cloud ist vor allem wichtig, dass die Redundanzeinstellungen so konfiguriert sind, dass genügend Replikationen erstellt werden und Ihre Daten vor Verlusten geschützt sind. Bei servinga setzen wir beispielsweise nicht nur auf eine dreifache Replikation Ihrer Daten, auch Festplatten, Netzteile und Netzwerkanbindung sind redundant abgesichert. 

Als Objektspeicher nutzen wir bei servinga Ceph Storage. Hier werden auch unsere virtuellen Instanzen abgelegt. Dabei kommen ausschließlich hochwertige SSD-Festplatten zum Einsatz. Diese Festplatten sind sehr robust und ermöglichen den schnellen Zugriff auf Speicher und Daten. 

Zur Vernetzung verschiedener Standorte bieten wir ebenfalls VPN as a service an. Sie können so einfach eine sichere Verbindung zwischen Ihrer lokalen Infrastruktur und der OpenStack Cloud herstellen. Hinzu kommt noch unser Firewall as a service Angebot, mit dem Sie bis ins kleinste Detail regeln können, wer auf Ihre Cloud-Ressourcen zugreifen darf und wen Sie blockieren möchten. 

Auch, wenn Sie OpenStack gemeinsam mit Kubernetes nutzen möchten, bieten wir Ihnen eine Lösung. Unsere Managed Kubernetes Services bieten Ihnen Ihr eigenes Kubernetes Cluster basierend auf der servinga OpenStack Cloud. 

Sie möchten mehr über die OpenStack Cloud von servinga erfahren? Hier erhalten Sie einen Überblick über unsere Leistungen und bei Fragen können Sie uns selbstverständlich jederzeit gerne kontaktieren. 

Zusammenfassung

OpenStack ist ein komplexes, aber auch sehr leistungsstarkes Tool zum Aufbau und Management einer Cloud-Infrastruktur. Nicht umsonst ist es eines der beliebtesten Cloud-Computing-Tools. Da es sehr breit aufgestellt ist, eignet es sich auch für hybride Umgebungen, während ähnliche Tools den Fokus oft auf eine bestimmte Technologie legen. 

Aufgrund der guten Skalierbarkeit sowie der hohen Datensicherheit ergibt es Sinn, auf einen Anbieter zu setzen, dessen Cloud auf OpenStack basiert. Services wie OpenShift, Kubernetes und Terraform stellen nicht nur Konkurrenz dar, sondern können ebenfalls komplementär zur OpenStack Cloud verwendet werden, um das Beste aus allen Tools herauszuholen. 

« Alle Blog Einträge

Was sind Cloud Native Anwendungen für Unternehmen? Definition und Beispiele

Cloud-Technologien haben sich in den letzten Jahren für zahlreiche Anwendungen und Zwecke etabliert. Eine Vielzahl an Daten wird mittlerweile in Private und Public Clouds gespeichert, um flexibel abrufbar zu sein. Aber auch ganze Anwendungen können direkt in der Cloud ausgeführt werden. Hier kommen Cloud Native Anwendungen ins Spiel. In diesem Artikel verraten wir Ihnen, was Cloud Native genau bedeutet und wie Sie Cloud Native Anwendungen in Ihrem Unternehmen gewinnbringend einsetzen können. 

Was ist eine Cloud Native Anwendung? – Eine Definition

Native kann im Deutschen mit gebürtig oder einheimisch übersetzt werden. Da IT-Anwendungen nicht im herkömmlichen Sinne geboren, sondern entwickelt werden, bedeutet dies, dass eine Cloud Native Anwendung gezielt dafür geschaffen ist, in einer Cloudumgebung ausgeführt zu werden. 

Eine Anwendung kann jedoch nicht nur in einer Cloud ausgeführt, sondern bereits in derselben Umgebung entwickelt werden. Sowohl bei der Ausführung als auch bei der Entwicklung einer Anwendung in der Cloud kann dies einige Vorteile im Vergleich zu herkömmlichen Methoden bieten. 

Exkurs: Was versteht man unter einer Cloud? 

Eine Cloud ist im Grunde ein Netzwerk aus mehreren Rechnern, die über das Internet verbunden sind. Anstelle jedoch auf einzelne Rechner zuzugreifen, werden die vorhandenen Ressourcen und Hardware gebündelt und auf einer abstrakten Ebene zugänglich gemacht. 

Es ist also nicht mehr relevant, auf welchem Rechner im Netzwerk Ressourcen wie zum Beispiel Speicherplatz vorhanden sind. Stattdessen steht über die Cloud der gesamte Speicher zur Verfügung und kann flexibel auf verschiedene Anwendungen aufgeteilt werden. Meist kann über einen Webbrowser auf die Cloud zugegriffen werden. 

Welche Vorteile bieten Cloud Native Anwendungen?

Mithilfe von Cloud-Technologien können Sie eine höhere Wirtschaftlichkeit sowie eine kürzere Time-to-Market erreichen. Auch können Sie eine Anwendung in einzelne Microservices aufteilen, die unabhängig voneinander existieren. Diese Microservices können Sie nicht nur für eine Anwendung entwickeln, sondern auch kopieren und für andere Anwendungen weiterverwenden. Sie verfügen über eine API-Schnittstelle, mithilfe derer sie untereinander kommunizieren können.

Da der Zugriff üblicherweise über den Webbrowser erfolgt und die Anwendung nicht On-Premise installiert wird, gestaltet sich ebenfalls das Ausrollen von Updates wesentlich einfacher. Nutzer sind also nicht darauf angewiesen, sich ein Update herunterzuladen, um auf neue Funktionen und Verbesserungen zugreifen zu können. Sobald Sie ein Update in der Cloud live schalten, nutzen alle Anwender die aktuellste Version. 

Cloud Native steht für plattformübergreifend und flexibel

Der größte Vorteil von Cloud-Anwendungen ist jedoch, dass sie plattformübergreifend funktionieren. Ihre Kunden müssen also nicht über ein bestimmtes Betriebssystem oder eine bestimmte Hardware verfügen. Diese Hürde, die oft als Argument gegen eine Umstellung auf eine neue Software ins Feld gebracht wird, existiert nicht für Cloud Native Anwendungen und macht die Umstellung für Unternehmen deutlich einfacher und attraktiver. Meist wird lediglich ein Internetzugang benötigt, um auf die Anwendung zuzugreifen. 

Ein weiterer Vorteil ist die flexible Gestaltung von Zahlungsmodellen. Anstelle einen hohen einmaligen Preis für On-Premise Software anzusetzen, werden Cloud Native Anwendungen oft im Rahmen eines Abomodells zugänglich gemacht. Upgrades können ohne lange Installationszeiten schnell durchgeführt werden und die Kunden genießen eine hohe Flexibilität. Üblich sind monatliche oder jährliche Zahlungen, die teilweise noch durch die Möglichkeit, quartalsweise oder für lebenslangen Zugang zu zahlen, ergänzt werden. 

Wie Sie eine Cloud Native Anwendung entwickeln können

Mit den richtigen Tools und Technologien können Sie eine Anwendung optimal mithilfe von und für die Cloud entwickeln. Ein wichtiges Stichwort sind hierbei Container. Die Container-Technologie eignet sich perfekt für die Entwicklung von Cloud Native Anwendungen. 

Microservices und Container als Basis für Ihre Cloud Native Anwendung

Ein Container ist quasi ein kleines, kompaktes Softwarepaket, das eine einzelne kleine Aufgabe ausführt. Container sind portabel und skalierbar. Sie können also Ihre Anwendung in Microservices aufsplitten, die jeweils in Containern laufen. Auch zum Testen neuer Services eignen sich Container. Cloud Native Anwendungen laufen insbesondere dann gut, wenn DevOps-Prozesse etabliert sind oder werden. Eine enge Zusammenarbeit zwischen Entwicklern (Dev) und dem Betrieb (Ops) wird durch Containertechnologie vereinfacht und gefördert. 

Auch wenn die Aufteilung in viele kleine Aufgaben sehr zielgerichtetes Arbeiten am Code  sowie die Verbesserung einzelner Features ermöglicht und vereinfacht, machen Sie sich vielleicht Sorgen, dass dies letztendlich zu unübersichtlich wird. Genau zu diesem Zweck gibt es sogenannte Container-Orchestrierungstools. Eines davon ist die Open-Source Software Kubernetes. 

Mit Programmen wie Kubernetes können Sie Container einfach verwalten, ihre Performance überwachen und bei Bedarf schnell skalieren. Mehr über Kubernetes und Container erfahren Sie auch in unserem Übersichtsartikel. 

Cloud Native Anwendungen: Beispiele 

Cloud Native Anwendungen sind nicht nur für Software-Experten relevant und werden auch oft außerhalb von Unternehmen genutzt. Es ist gut möglich, dass Sie bereits im Alltag Cloud Native Anwendungen nutzen, ohne es zu wissen! 

Ein Beispiel wäre ein Streamingdienst für Musik oder Filme. Seit 2016 setzt Streaming-Gigant Netflix komplett auf Cloud Native Technologie und besitzt keine eigenen Rechenzentren mehr. Wenn Sie sich einen Film für einen gemütlichen Fernsehabend empfehlen lassen, läuft dies über eine Cloudanwendung. Wenn gemeinsam mit Ihnen noch zahlreiche andere Kunden auf die neueste Folge Ihrer Lieblingsserie zugreifen wollen, skaliert Netflix über Cloud Computing schnell seine Rechenleistung in die Höhe und so können Sie trotz des hohen Traffics reibungslos gleichzeitig schauen. 

Weitere Beispiele können unter anderem eine Personalmanagement-Software sein oder ein cloud-basiertes Tool zur Datenanalyse, das Sie an Ihrem Arbeitsplatz nutzen. Generell lassen sich unzählige Anwendungen als Cloud Native realisieren und immer mehr Unternehmen setzen bei der Entwicklung von Apps auf agile Technologien wie Container und DevOps-Prozesse. 

Managed Services für Cloud Native Anwendungen

Eine zusätzliche Möglichkeit, um einfach Cloud Native Anwendungen entwickeln und betreiben zu können, sind Managed Services und Dienstleistungen wie Managed Kubernetes Hosting. Bei servinga kümmern wir uns um das Aufsetzen sowie die Wartung und den Betrieb Ihrer Cloud-Umgebung, während Sie sich ganz auf die Entwicklung Ihrer Anwendungen konzentrieren können. 

Zusammenfassung

Cloud Native Anwendungen bieten sowohl für Entwickler und Anbieter als auch für deren Kunden zahlreiche Vorteile. Mithilfe einer sicheren, flexiblen Cloud-Umgebung, die eine schnelle Skalierbarkeit bietet sowie Cloud Native Technologien sind Sie bestens ausgestattet, um Ihre eigenen Cloud Native Anwendungen zu entwickeln.