NetApp Tech OnTap NetApp Logo
NetApp Tech OnTap
     
Schnelle Applikationsbereitstellung mit Docker Container-Technologie
Melissa Palmer
Systems Engineer, NetApp

Als NetApp Systems Engineer bin ich immer an neuen Technologien interessiert, mit denen Kunden ihre Geschäftsabläufe beschleunigen können. Eine neue und schnell wachsende Technologie, die NetApp CTO Jay Kidd auch im Rahmen seiner Technologieprognosen für 2015, erwähnt, ist Docker: „Docker löst Hypervisoren als bevorzugter Container für horizontal skalierbare Applikationen ab.“ Dem kann ich nichts hinzufügen.

Ich komme aus dem Bereich der Virtualisierung und bin zudem aktives Mitglied der Virtuali-sierungs-Community. Seit zwei Jahren arbeite ich als vExpert und beschäftige mich schon eine ganze Weile mit Docker Im November letzten Jahres nahm ich z. B. an einem 30-tägigen Blogging-Wettbewerb (30 Blogs in 30 Tagen!) einer Online-Virtualisierungs-Commu-nity namens Virtual Design Master teil, zu deren Administratoren ich gehöre. Im Rahmen dieses Wettbewerbs schrieb ich eine Reihe von Blogs über Docker und beschäftige mich seitdem mit dieser Technologie. Deshalb freue ich mich auch sehr, dass Tech OnTap mich gebeten hat, einen Artikel zu diesem Thema zu veröffentlichen.

Was ist Docker?

Viele aktuelle Technologietrends konzentrieren sich darauf, die Infrastruktur von der Hard-ware zu abstrahieren. Die Open-Source-Plattform Docker geht noch einen Schritt weiter und abstrahiert Applikationen von ihrem jeweiligen Serverbetriebssystem. Anstatt also für jede Applikation eine Virtual Machine einzurichten, führt Docker die Applikationen in Containern auf einer einzelnen Betriebssysteminstanz aus.

Containers

Die Container können auf jeder Plattform ausgeführt werden, die mit der Docker Engine, quasi dem Gehirn von Docker – kompatibel ist. Die Docker Engine selbst kann ebenfalls auf nahezu allen Plattformen eingesetzt werden: von auf Linux basierenden Servern im Data-center, über Windows Laptops bis hin zu Cloud-Umgebungen. Die Docker Container werden unabhängig von der Infrastruktur immer auf dieselbe Art und Weise ausgeführt. Diese Fähigkeit der Ausführung auf nahezu allen Plattformen und mit allen Systemen ermöglicht eine ganz neue Abstraktionsebene für Applikationen. Somit sorgt Docker für eine deutlich vereinfachte Erstellung, Auslieferung und Ausführung verteilter Applikationen. Dies bedeutet für Unternehmen mehr Flexibilität, schnellere und einfachere Applikationsskalierungen nach Bedarf sowie verkürzte Markteinführungszeiten.

Docker Hub

Eine weitere Hauptkomponente des Docker Ecosystems ist derDocker Hub,ein zentra-lisiertes Repository, in dem die Docker Images zur Wiederverwendung oder Weitergabe innerhalb der Docker Community gespeichert werden. Im Docker Hub sind eine Reihe offizieller Docker Repositorys wie z. B. Ubuntu, MongoDB und Java verfügbar. Diese Repositorys vereinfachen die ersten Entwicklungsschritte mit Docker, da Entwickler ein offizielles Image aus dem Docker Hub verwenden und dieses an ihre Anforderungen anpassen können. Anschließend laden sie das modifizierte Image wieder in den Docker Hub hoch, sodass Kollegen oder Mitglieder der Docker Community einfach darauf zugreifen können.

Zahlreiche Entwickler haben bereits vorkonfigurierte Webserver für Datenbank- und NoSQL-Umgebungen entweder in einem einzelnen Container oder in einem Containersatz erstellt, die von anderen internen oder externen Entwicklungsteams genutzt werden können. Und da Docker immer populärer wird, werden Softwareanbieter ihre Produkte in Zukunft möglicher-weise auch in Form von Containern bereitstellen.

Für Kunden, die alle Docker Aktivitäten hinter der Firewall ausführen möchten, gibt es zudem eine Enterprise-Version des Docker Hub.

Funktioniert ein Container wie eine Virtual Machine?

In gewisser Weise. Die Docker Engine ist kein Hypervisor wie VMware ESXi. Sie kann auf physischer Hardware, in einer Virtual Machine auf einem Hypervisor oder auf einer Cloud-Plattform ausgeführt werden. Eine Virtual Machine verfügt über eine bestimmte Konfigura-tion, bestehend aus einem Betriebssystem sowie den Komponenten, die eine spezifische Applikation benötigt, die in dieser Virtual Machine ausgeführt wird.

Der wesentliche Unterschied ist, dass für jede Virtual Machine ein eigenes Betriebssystem installiert werden muss. Dadurch entstehen u. U. zusätzliche Kosten für beispielsweise Lizenzen, betriebssystemspezifische Konfigurationen und Architekturabhängigkeiten.

Der Docker Container hingegen enthält eine Applikation (oder auch mehrere Applikationen) und gemeinsam genutzte Ressourcen wie z. B. Binärdateien und Bibliotheken, die zur Ausführung der Applikation erforderlich sind. Stellen Sie sich vor, welche Effizienzsteige-rungen möglich sind, wenn alle Applikationskomponenten in einem Container auf ein und demselben Betriebssystem ablaufen.

Da sich alle Komponenten einer Applikation in einem Container befinden, fungiert der Container als logisches Konstrukt, das Applikationen und Workloads voneinander trennt. Somit können mandantenfähige Umgebungen mit mehreren Applikationen ausgeführt werden, ohne dass diese sich gegenseitig beeinträchtigen.

Abbildung 1) Vergleich zwischen Virtual Machines und Containern

Quelle: NetApp, 2015

Docker und die Cloud

Das Design von Docker passt in jede Cloud-Strategie – unabhängig davon, ob Sie eine Hybrid, Public oder Private Cloud ausführen. Viele Hyperscale Cloud-Provider wie Amazon Web Services (AWS) unterstützen Docker bereits. Aus Entwicklungsperspektive ist dies großartig, da neue Umgebungen zu Testzwecken so innerhalb nur weniger Minuten bereit-gestellt werden können. Die Docker Container laufen dabei genauso ab wie auf einer Workstation oder im Datacenter. Ein Service wie AWS bietet Docker Entwicklern also leistungsstarke und innovative neue Möglichkeiten.

Unterstützung für DevOps

Docker bietet auch für den IT-Betrieb zahlreiche Vorteile. Die Applikationsumgebung wird auf die gleiche Weise unterstützt, ob vor Ort oder in der Cloud, und vereinfacht so das Management dynamischer Applikationen.

Viele Unternehmen haben bereits mit der Implementierung von DevOpsVerfahren begonnen, um ihre Markteinführungsaktivitäten noch weiter zu optimieren. Hierbei kann Docker mit leistungsstarken klassischen DevOps-Tools wie z. B. der Automatisierungs-Engine Ansible, ] eingesetzt werden. Dadurch wird die Integration bestehender und neuer Entwicklungsprozesse ermöglicht, sodass eine leistungsstarke automatisierte Infrastruktur entsteht, die überall ausgeführt werden kann.

Auch durch Community-Projekte wird die Entwicklung von Orchestrierungs- und Implemen-tierungs-Tools für das Docker Ecosystem immer weiter vorangetrieben. Darüber hinaus hat Docker, Inc. auch Machine, Swarm, and Compose Erstellungs- und Orchestrierungs-produkte für das Clustering und die Zusammensetzung von Applikationen und Containern entwickelt. Diese Innovationen sind bisher nur der Anfang in der Entwicklung von Tools durch die aktive Docker Community, um Docker tragfähig zu machen.

Storage-Bereitstellung für Docker

Docker Container können mit verschiedenen Storage-Arten eingesetzt und benutzerfreund-lich gemanagt werden. In einer Docker Umgebung können Storage-Services auf zweierlei Art und Weise bereitgestellt werden:

  • Bereitstellung von Volumes innerhalb eines Docker Containers: Neue Volumes lassen sich innerhalb eines Docker Containers erstellen und einbinden. Alternativ können Volumes auch aus dem Host-Betriebssystem, auf dem die Docker Engine ausgeführt wird, in den Docker Container eingebunden werden.
  • Erstellung eines Daten-Volume-Containers: Einzelne Daten-Volume-Container werden in der Regel zusammen mit nicht persistenten Containern verwendet. So kann eine horizontal skalierbare Applikation beispielsweise persistente Daten in einem Daten-Volume-Container speichern, um mehrere Docker Container nach Bedarf zu skalieren und wieder zurückzuskalieren, ohne dass es dabei zu Daten-verlusten kommt.

Docker und NetApp Clustered Data ONTAP

Mittlerweile ist Ihnen vielleicht schon aufgefallen, dass Docker und NetApp Clustered Data ONTAP auf ähnliche Art und Weise funktionieren. Clustered Data ONTAP fungiert als eine Art Abstraktionsschicht für Storage-Hardware, einschließlich CPU, Arbeitsspeicher und Laufwerke. Dabei spielt es keine Rolle, ob es sich bei den Laufwerken um SATA, SAS oder SSD handelt. Die Storage Virtual Machines (SVMs) werden auf Data ONTAP ausgeführt, ähnlich wie Docker Container auf der Docker Engine ausgeführt werden. Dabei kann jede SVM über ihren eigenen Namespace verfügen, was die Unterstützung einer horizontal skalierbaren Umgebung wie Docker vereinfacht.

Die Data Fabric-Vision erweitert Vorteile auch auf die Cloud

Mit seiner Data Fabric approach.verlagert NetApp die Abstraktionsmöglichkeiten von Clustered Data ONTAP auch in die Cloud. Dabei passt das einfache plattform- und Cloud-übergreifende Management von Docker hervorragend zur Data Fabric-Technologie von NetApp.

Docker lässt sich zusammen mit FAS Storage im Datacenter ausführen und die gesamte Umgebung kann anschließend mit den NetApp Private Storage-Lösungen für die Cloud (verfügbar für AWS, SoftLayer und Azure) oder Cloud ONTAP (verfügbar für AWS) in die Cloud verschoben werden – ohne jegliche Änderungen an der Konfiguration. Auch das Datenmanagement wird unabhängig vom Ausführungsort mit denselben Tools durchgeführt

Weitere Informationen zu Docker in Verbindung mit Clustered Data ONTAP finden Sie im Whitepaper NetApp and Docker Technology to Enhance and Accelerate Dev/Ops in Hybrid-Cloud Environments .

Einsatz von Docker in Ihrem Unternehmen

Sie stellen sich vielleicht gerade die Frage, wann Sie Docker einsetzen sollten. Die Antwort hängt von Ihren geschäftlichen Anforderungen ab. Docker ermöglicht die Verbesserung der Entwicklungs- und Implementierungsprozesse, sodass Sie Software schneller und mit höherer Qualität bereitstellen können. Viele Unternehmen setzen die Docker Plattform ein, wenn sie eine Applikation implementieren oder aufrüsten möchten.

Docker ist dabei erstaunlich einfach zu implementieren, sowohl auf dem Laptop als auch in AWS. Die Open-Source-Community für Docker stellt darüber hinaus jede Menge nützliche Informationen zur Verfügung. Um sich mit den Grundlagen der Technologie vertraut zu machen, können Sie Docker sogar auf der Website des Unternehmens mithilfe eines Simulators testen. Die Integrationsmöglichkeiten mit Infrastrukturkomponenten wie Ansible, Azure, AWS und OpenStack zeigen zudem die wachsende Popularität von Docker.

Docker und der Übergang zu Container-basierten Applikationen und Services bedeuten für manche Unternehmen einen großen Umbruch. Glücklicherweise sind sie aber nicht alleine auf diesem Weg. Unabhängig davon, ob Sie mehr Flexibilität beim Implementieren und Testen von Code benötigen oder die Konsistenz über Entwicklungs-, Test und Produktions-umgebungen hinweg wahren möchten: Docker eignet sich für eine Vielzahl an Nutzungs-fällen. Jetzt ist also der richtige Zeitpunkt, sich mit dieser neuen und innovativen Techno-logie zu beschäftigen, die auch optimal zur Data Fabric-Vision von NetApp passt.

Melissa Palmer verfasst regelmäßig Blog-Beiträge zu Docker, Virtualisierung, der Cloud und anderen aktuellen Technologiethemen. Ihr Blog „vMiss.net: Secret Diary of a VM Girl“ wurde kürzlich von vSphere-land.com zum besten neuen vBlog 2015 gewählt. Weitere Informationen finden Sie auf der Seite vMiss.net

Tech OnTap
Jetzt anmelden
Tech OnTap liefert jeden Monat Einblicke in die IT-Welt sowie exklusive Best Practices, Tipps und Tools, Interviews mit Entwicklern, Demos, Testberichte und vieles mehr.

Besuchen Sie Tech OnTap in der NetApp Community um sich noch heute anzumelden.

Juni 2015

Explore

Microsoft Unterstützung für Docker

Im Oktober 2014 gaben Microsoft und Docker Pläne bekannt, das Windows Server Ecosystem mit der Docker Community zusammenzuführen. Warum ist das wichtig? Sehr viele Applikationen werden auf Windows Servern ausgeführt: im Datacenter, in der Cloud und in Azure. Die kürzlich angekündigte Azure Cloud-in-a-Box hat zudem viel Aufmerksamkeit auf das Thema Docker im Microsoft Ecosystem gelenkt.

Durch die Ausführung von Docker Funktionen auf Windows Plattformen lassen sich die Vorteile beider Technologien miteinander kombinieren. Alle Funktionen für das Konfigurations- und Patch-Management in Windows bleiben gleich, während Entwickler gleichzeitig von der flexiblen, schnellen, reproduzierbaren und vorhersehbaren Container-Technologie profitieren können. Die Möglichkeit der Verwendung von Containern auf bestehenden Windows Infrastrukturen ist ein wichtiges Argument für Unternehmen, die bereits massiv in Windows Technologien investiert haben. Microsoft arbeitet zudem daran, dieselben Funktionen auch auf Hyper-V als Hosting-Ziel für Docker zu unterstützen.

 
TRUSTe
Kontakt    |   Bezugsquelle    |   Feedback    |   Karriere  |   Abonnements    |   Datenschutzrichtlinie   |   © 2015 NetApp