Sie haben eine Cloud gebaut und jetzt wollen sie auch Container?

Sie haben mit großem Aufwand eine private Cloud erstellt und trotz der anfänglichen Kosten werden echte Einsparungen erzielt. Und obwohl Sie dachten, die Cloud sei genau das, was Ihre Entwicklungsteams wollten, verlangen sie jetzt nach Containern. Warum?

Wie bei den meisten Unternehmen haben Sie die Investition in Ihre Cloud wahrscheinlich aus infrastruktureller Sicht mit dem Schwerpunkt auf der zunehmenden Nutzung physischer Hardware gerechtfertigt. Die durchschnittliche Auslastung vor der Virtualisierung lag häufig unter 10%, und die Virtualisierung als Ermöglicher der Workload-Konsolidierung war ein entscheidendes Instrument, um sicherzustellen, dass keine Ausgaben für Hardware verschwendet werden.

Aber - und es ist ein großes, aber typisches Unternehmen - Private Clouds bieten den Entwicklungsteams, die sie nutzen, nur Kosteneinsparungen und eine beschleunigte (virtuelle) Maschinenbereitstellung. Diese sind sicherlich wertvoll, aber nicht das volle Versprechen der Cloud.

Was Entwicklungsteams wirklich suchen, ist eine Plattform mit APIs, mit denen sie ihre automatisierten Software-Lifecycle-Tools direkt anhängen können. Um einen Entwicklungsvorsprung zu zitieren: „Ich möchte einfach nicht mit Infrastructure sprechen.“

Was die Infrastruktur ihnen normalerweise stattdessen gab, war jedoch genauso eingeschränkt wie die alte physische Welt - mit lästigen Prozessen, begrenzter Lebenszyklusautomatisierung, denselben alten Problemen mit Patches und absolut keiner Werkzeugintegration.

Kurz gesagt, Server waren jetzt virtuell, aber die meisten alten Schwachstellen für Entwickler bestanden noch - und Infrastrukturfunktionen wurden weiterhin eher als Blocker denn als Wegbereiter für Veränderungen in der Entwicklungswelt charakterisiert.

Container eingeben.

Was sind sie und warum verwenden Entwickler sie??

Um Wikipedia zu zitieren, ist ein Container „Jedes Gerät…, mit dem Objekte oder Materialien aufgenommen, gelagert und transportiert werden können.„Während dies für Weidenkörbe genauso gilt wie für Software-Container, ist der Schlüssel für die IT, wie sich Container von virtuellen Servern unterscheiden.

Mithilfe von Containern können Entwicklungsteams ihre Software zusammen mit aufgelösten Softwareabhängigkeiten in einem einzigen Artefakt verpacken. Für die Ausführung von Containern ist ein Host-Betriebssystem erforderlich. Auf einer einzelnen Betriebssysteminstanz können jedoch mehrere Container ausgeführt werden, während die logische Isolation voneinander beibehalten wird (Sie benötigen keine Betriebssystemlizenz mehr pro Anwendungskomponenteninstanz, um diese Isolierung zu erhalten.).

Da Container nicht jeweils ein eigenes Betriebssystem benötigen, können sie so schnell gestartet werden, wie die umschlossene Anwendungssoftware gestartet werden kann (kein Warten auf den Start einer Betriebssysteminstanz), und da sie aufgelöste Softwareabhängigkeiten enthalten, erfolgt die Instanziierung auf einem Server lediglich Es geht darum, den Container zu kopieren und zu starten. Die Wiederholbarkeit und Abstraktion von Containern ermöglicht es Entwicklern, sich auf die Bereitstellung einfach bereitstellbarer und funktionierender Software zu konzentrieren, während eine andere Person eine verwaltete Plattform für die Ausführung dieser Container bereitstellt.

Das Konzept der Container ist nicht neu. Google verwendet seit Jahren seine eigene Sorte (sie sagen, dass alles bei Google in Containern ausgeführt wird), Sun führte 2004/2005 eine Form von Containern in Solaris ein und Container waren unter Windows sogar über Produkte wie Parallels Virtuozzo verfügbar.

Neu ist jedoch die Verlagerung, Container als Entwickler- (und nicht als Infrastruktur-) Technologie zu betrachten, und vor allem die Entstehung von Software wie Docker, die ein einziges Containerformat bietet, das über mehrere Hardware- und Betriebssystemtypen hinweg betrieben werden kann.

Die Begeisterung in der Entwicklergemeinde ist groß und die Entwicklung von Docker- und Standardisierungsbemühungen wie der Open Container Initiative schreitet weiter voran, aber Management-Tools für Container-Bereitstellungen in großem Maßstab (wie Kubernetes) stehen erst am Anfang für den allgemeinen Gebrauch und haben dies sicherlich getan noch nicht den Reifegrad erreicht, der für die Servervirtualisierung verfügbar ist.

Bedeutet dies, dass Container vorerst vermieden werden sollten?

Nein. Container bieten Vorteile sowohl für die Infrastruktur (weitere Konsolidierung der Arbeitslast, jedoch möglicherweise mit einer Verringerung der Anzahl der Betriebssystemlizenzen) als auch für die Entwicklung (einzelnes bereitstellbares Artefakt, das überall ausgeführt wird und sofort gestartet wird - besonders wichtig für die Erstellung dynamischer Scale-Out-Anwendungen). . Container ergänzen die Servervirtualisierung und werden sie nicht verschieben (und sollten dies auch nicht tun).

Unternehmen sollten jedoch Partnerschaften zwischen Infrastruktur- und Entwicklungsteams aufbauen, um die Verwendung von Containern auf robusten Virtualisierungsplattformen zu steuern. Fangen Sie klein an, entwickeln Sie die Hosting-Plattform, die Management-Tools und den Gesamtprozess gemeinsam. Warten bedeutet nur, dass proaktivere Wettbewerber zuerst die Vorteile von Produktivität, Markteinführungszeit und Kostenreduzierung erhalten.

Als Hauptberater für Virtuelle Klarheit, Chris Buckley hilft Große und komplexe Unternehmen modernisieren ihren Ansatz für die IT-Infrastruktur. In Zusammenarbeit mit IT-Organisationen, um die richtigen Probleme zu identifizieren, die aus geschäftlicher Sicht gelöst werden müssen, führt Chris Kunden durch die Entwicklung und Implementierung einer Infrastrukturstrategie.

Treten Sie den Network World-Communitys auf Facebook und LinkedIn bei, um Kommentare zu Themen abzugeben, die im Vordergrund stehen.