Machen Sie sich bereit für den neuen Stapel

Virtualisierung ist möglicherweise die erfolgreichste Technologie, die jemals die Schwelle des Unternehmens-Rechenzentrums überschritten hat. Die erheblich bessere Hardwareauslastung und die Möglichkeit, VMs im Handumdrehen hochzufahren, haben die Virtualisierung in den letzten zehn Jahren zu einem einfachen Verkaufsschlager gemacht. Bis dahin hat Gartner kürzlich geschätzt, dass 70 Prozent der x86-Workloads virtualisiert sind.

Das ausgefallene Private Cloud-Material auf dieser Virtualisierungsschicht hat sich jedoch nur langsam eingestellt. Ja, Virtualisierungsmanagement-Tools von VMware und Microsoft haben ein Cloud-ähnliches Verhalten für Server und Speicher ermöglicht, und selbst OpenStack erhält endlich ein wenig Unternehmenstraktion - aber die fortschrittlichen öffentlichen Clouds von Amazon, Google, IBM, Microsoft und Rackspace bieten noch viel mehr Erweiterte automatische Skalierung, Messung und Selbstbedienung (ganz zu schweigen von Hunderten anderer Dienste). Darüber hinaus hat die PaaS-Cloud-Schicht zum Entwickeln, Testen und Bereitstellen von Apps, die jetzt von allen wichtigen öffentlichen Clouds angeboten wird, ihren Weg in relativ wenige Rechenzentren von Unternehmen gefunden.

Dann kam Docker letztes Jahr auf die Bühne und bot einen neuen Cloud-Stack an, der eher auf Containern als auf VMs basiert. Container sind viel leichter als VMs und ermöglichen das einfache Packen und Verschieben von Anwendungen, ohne den Aufwand einer herkömmlichen Installation. Wenn VM-basierte Clouds ins Stocken geraten sind und der neue container-basierte Stack solche offensichtlichen Vorteile bietet, wird der neue Stack dann seinen Weg ins Unternehmen finden, um eine neue private Cloud bereitzustellen?

Zorawar Biri Singh, ehemaliger Leiter von HP Cloud Services und jetzt Venture-Partner bei Khosla Ventures, hält den Triumph des neuen Stacks für unvermeidlich - aber wir sind noch Jahre von der Einführung des Unternehmens entfernt. Hier sieht er die Engpässe:

Erstens konzentrieren sich die aktuellen IT-Ausgaben für traditionelle Unternehmen und traditionelle Produktions-Workloads auf die Vereinfachung und Verwaltung der VM-Ausbreitung über konvergierte Lösungen im Rechenzentrum. Zweitens ist der neue Stapel noch spröde und früh. Ein wirklicher Nutzen für Container wie gehärtete Sicherheit ist bei weitem noch nicht ausreichend. Im Moment ist der neue Stack ein sehr guter Ausgangspunkt für Entwickler- und Test-Workloads. Der eigentliche Reibungspunkt ist jedoch, dass IT-Teams mit Produktions-Workload in Unternehmen nicht über die richtige Entwicklerorientierung oder den agilen IT-Hintergrund verfügen, um verteilte oder zustandslose Apps bereitstellen und unterstützen zu können. Eines der größten Probleme ist, dass es bei Entwicklern in traditionellen Unternehmensorganisationen nur eine große Qualifikationslücke gibt.

Auf der anderen Seite, sagt Singh, "fahren bereits bestimmte Entwicklerteams und Geschäftsbereiche auf der grünen Wiese auf dieser Infrastruktur." In solchen Fällen sind entweder bereits Devops-Methoden vorhanden, oder wegweisende Entwickler übernehmen die Betriebsseite des container-basierten Stacks selbst.

So wie Entwickler die Einführung von NoSQL-Datenbanken vorangetrieben haben, stehen sie an vorderster Front des neuen Stacks, laden Open-Source-Software herunter und experimentieren - oder wenden sich öffentlichen Clouds wie EC2 oder Azure zu, die bereits Container unterstützen.

Die Microservices sind unerlässlich

Warum mögen Entwickler den neuen Stack so sehr? Zum großen Teil, weil Container der Microservices-Architektur förderlich sind, bei der Sammlungen von API-zugänglichen Einzweckdiensten monolithische Apps ersetzen. Mithilfe der Microservices-Architektur können Entwickler Anwendungen erstellen, die an neue Anforderungen angepasst werden können - und mithilfe vorhandener Services schnell völlig neue Anwendungen erstellen.

John Sheehan, Mitbegründer und CEO des API-Überwachungs- und Testdienstes Runscope, sieht in Microservices eine "Modernisierung" der SOA (serviceorientierte Architektur). "Die Kernaufgaben sind weitgehend gleich", sagt Sheehan. "Wir möchten verschiedene Teile unserer Softwarearchitektur auf verschiedene Systeme verteilen und sie nicht nur nach Codegrenzen, sondern auch nach Servicegrenzen aufteilen. Dieses Lernen hat sich auf Microservices übertragen."

Die Microservices-Architektur basiert auf einfacheren, entwicklerfreundlicheren Protokollen als SOA - REST im Gegensatz zu SOAP; JSON im Gegensatz zu XML. Sheehan stellt einen weiteren wichtigen Unterschied fest:

Die Arten von Mikrodiensten, die wir sehen und die unsere Kunden tendenziell verwenden, sind sehr devops-orientiert. Intern setzen wir in unserem Unternehmen ungefähr 31 Mal am Tag alle unsere verschiedenen Services ein. Wir sind 14 Personen und haben ungefähr 40 verschiedene Dienste, die intern ausgeführt werden. Ein großer Teil davon besteht darin, die erforderliche Infrastruktur einzurichten, damit jedes Team jeden Service unabhängig bereitstellen, skalieren, überwachen und messen kann.

In einem solchen Szenario verschwimmt die Grenze zwischen dev und ops. Die Mitarbeiter von Ops schreiben Code, um die Infrastruktur zu verwalten, und werden im Wesentlichen Teil des Entwicklungsteams. "Es gibt kaum einen Unterschied zwischen dem Ops-Team und dem Apps-Team", sagt Sheehan. In ops "codieren Sie zufällig gegen Server, anstatt gegen den Dienst."

Singh glaubt, dass der devops-intensive Microservices-Ansatz die Notwendigkeit eines "formalen" PaaS vermeiden könnte. PaaS-Angebote wie Cloud Foundry oder OpenShift bieten vorgegebene Sammlungen von Diensten und Prozessen zum Erstellen, Testen und Bereitstellen von Anwendungen. Im neuen Stack können in jede Schicht umfangreiche Sätze von API-zugänglichen Mikrodiensten eingebettet werden. Sowohl Entwickler als auch Ops können sich ohne die von PaaS auferlegten Einschränkungen an Microservices auf und ab des Stacks anschließen.

Eine andere Art von Hybrid

Die Microservices-Architektur kann PaaS überspringen, aber der gesamte neue Stack wird nicht über Nacht Wurzeln schlagen. Beispielsweise wird allgemein angenommen, dass Netflix über die fortschrittlichste Microservices-Bereitstellung verfügt, und es stellt der Open Source-Community viele vorgefertigte Dienste als Docker-Images auf Docker Hub zur Verfügung. Netflix verwendet Docker jedoch nicht in der Produktion. Runscope auch nicht. Beide verwenden stattdessen herkömmliche VMs.

Trotz des großen Interesses der Entwickler an containergestützten Lösungen ist es noch früh. Zum einen entwickeln sich die Orchestrierungs- und Verwaltungstools für Container wie Mesosphere und Kubernetes noch weiter. Zum anderen ist nicht klar, welcher Containerstandard gewinnen wird, da CoreOS im vergangenen Dezember eine große Herausforderung für Docker darstellt. Der container-basierte Stack kann irgendwann triumphieren, aber es wird eine Weile dauern.

"Wir sehen das wahrscheinlichste Ergebnis darin, dass Container und VMs in Kombination verwendet werden", sagt Kurt Milne vom Multicloud-Management-Anbieter Cliqr. Dies kann bedeuten, dass Container in VMs ausgeführt werden - oder einfach, dass neue container-basierte Stacks und VM-basierte Stacks nebeneinander ausgeführt werden.

Dieses hybride Szenario bietet VMware und anderen, die Management und Orchestrierung für die Virtualisierung erstellt haben, eine Möglichkeit. In einem Interview mit Raghu Raghuram, Executive Vice President von VMware, lehnte es ab, Container als Bedrohung anzusehen. Stattdessen sagte er:

Wir sehen Container als eine Möglichkeit, neue Anwendungen auf unsere Plattform zu bringen. Wenn Entwickler oder IT-Mitarbeiter sich fragen, was sie benötigen, um Container auf robuste Weise auszuführen, benötigen sie eine darunter liegende Infrastrukturschicht - sie benötigen Persistenz, sie benötigen Netzwerke, sie benötigen Firewalling, sie benötigen Ressourcenmanagement und all diese Arten von Infrastruktur Dinge. Das haben wir schon gebaut. Wenn Sie den Containermechanismus darüber hinaus platzieren, können Sie dieselbe Infrastruktur auch für diese Dinge verwenden. Es werden Muster angezeigt, bei denen das zustandslose Web-Front-End nur aus Containern besteht und die Persistenz und die Datenbanken alle VMs sind . Es ist eine Mischung aus beidem. Die Frage ist nun: Was ist eine gemeinsame Infrastrukturumgebung und eine gemeinsame Verwaltungsumgebung? Wir sehen das als eine enorme Chance für uns.

Raghuram lehnte es ab zu sagen, wann VMware seine Verwaltungstools auf die Containerebene ausweiten könnte, aber die Implikation ist klar. Es wird interessant sein zu sehen, wie der ops-orientierte Ansatz von VMware von den Entwicklern erfüllt wird, die die heutigen containergestützten Experimente vorantreiben.

Klar ist, dass der neue Stack trotz der aktuellen Aufregung den bestehenden Stack in einer dramatischen Rip-and-Replace-Welle nicht ersetzen wird. Wie bei der Cloud-Einführung wird der container-basierte Stack fast ausschließlich zuerst für Entwickler und Tests verwendet. Die enormen vorhandenen Investitionen in die Virtualisierungsinfrastruktur werden nicht aus dem Rechenzentrumsfenster geworfen.

Trotzdem ist der neue Container-basierte Stack ein großer Fortschritt in Bezug auf Agilität und Entwicklerkontrolle. Entwickler entdecken und übernehmen die Tools, die sie zum Aufbau einer Microservices-Architektur und zur Bereitstellung von mehr und besseren Anwendungen in einem fantastischen Clip benötigen. Wenn die Teile zusammenpassen und die Fähigkeiten der Entwickler allgegenwärtig werden, können Sie darauf wetten, dass der neue Stapel genauso unerbittlich Wurzeln schlägt wie die Virtualisierung.