Pascal Schmid 25.06.2018 10 min read

Innovativ: Container, Docker, Kubernetes und Container-as-a-Service

Die Container-Entwicklung wurde innerhalb der vergangenen vier Jahre massgeblich von dem Unternehmen Docker vorangetrieben. Deren gleichnamige Container-Lösung „Docker“ führte zu einer wahren Revolution hinsichtlich der Art, wie Applikationen bereitgestellt werden.

Was ist Container-as-a-Service?

Containers-as-a-Service (CaaS) ist eine Form der containerbasierten Virtualisierung, bei der Container-Engines, Orchestrierung und die zugrundeliegenden Rechenressourcen als Service von einem Cloud-Anbieter an die Benutzer geliefert werden.

Noch nie war es so einfach, eine Anwendung zu skalieren oder auf verschiedene Plattformen und Umgebungen, wie beispielsweise Entwicklung, QA und Produktion, zu verteilen. Docker ermöglicht die völlige Unabhängigkeit zwischen Applikationen, Infrastruktur, Entwicklern und IT-Operations. Dadurch kann das maximale Potenzial aller genutzt werden. Insbesondere Entwickler und IT-Operations können durch die Containerisierung einfacher, effektiver und effizienter zusammenarbeiten.

Die digitale Transformation verlangt Agilität

Docker löst damit einige der Herausforderungen, denen die meisten Unternehmen aufgrund der rasanten Digitalisierung gegenüberstehen: Die digitale Transformation verlangt Agilität, die jedoch durch die bestehenden Anwendungen und vorhandenen Infrastrukturen stark eingeschränkt wird. Zudem müssen heute oftmals zahlreiche unterschiedliche Clouds, Datenzentren und Architekturen gemanagt werden - und zwar möglichst ökonomisch.

Doch was sind eigentlich Container und welche Vorteile bringt diese Methode?

 

Docker_container-as-a-service-kubernetes

 

Docker „packt“ die Anwendung und alle für deren Ausführung benötigten Systemkomponenten in einer einzigen Datei – dem „Container” – zusammen. Dabei werden die Anwendungen von der Umgebung, in der sie ausgeführt werden, abstrahiert. Durch diese Entkopplung können Container-basierte Anwendungen schnell, einfach, konsistent und verlässlich bereitgestellt werden – unabhängig davon, ob es sich bei der Bereitstellungsumgebung um ein privates Rechenzentrum, die öffentliche Cloud, eine hybride Cloud oder einzelne PCs handelt.

Die Cloud-Ära: Eigenständige Microservices statt monolithischer Legacy-Systeme

Zudem ermöglicht die Container-Methode viel mehr Flexibilität hinsichtlich der Anwendungsinfrastruktur – sie lässt sich leichter ändern, erweitern und skalieren. Deshalb fungieren Container auch als idealer Rahmen für Microservices. Zahllose renommierte Unternehmen und Startups ersetzen derzeit ihre monolithischen Legacy-Systeme, die noch aus der Zeit vor der Cloud-Ära stammen, durch kleine eigenständige Microservices - mit Hilfe von Docker.

Google's Container 

Und bei Google wird von Gmail über YouTube bis hin zur Suche alles in Containern ausgeführt. Durch die Containerisierung können die Entwicklerteams schneller als je zuvor arbeiten und Software effizient bereitstellen. Jede Woche werden nach eigener Aussage von Google mehr als zwei Milliarden Container gestartet.

Während bei virtuellen Maschinen (VM) die gesamten Server virtualisiert werden, erfolgt bei Containern eine Virtualisierung auf Betriebssystemebene. Dabei werden mehrere Container direkt auf dem Kernel des Betriebssystems ausgeführt, das macht die Container also viel schlanker. Da sie sich den Kernel teilen, starten sie schneller und benötigen viel weniger Speicher, als wenn ein gesamtes Betriebssystem gebootet wird.

Container-Orchestrierung mit Kubernetes: Auch Container müssen professionell gemanagt werden

Kubernetes (auch „K8s“) ist eine der führenden Lösungen für das Management der Container-Landschaft. Sie wurde ursprünglich von Google entworfen und dann als Open-Source-Software an die Cloud Native Computing Foundation gespendet. Mit der Container-Orchestrierungs-Lösung können Entwickler und IT-Administratoren die Bereitstellung, den Betrieb, die Wartung und die Skalierung von Container-Anwendungen auf verteilten Hosts vereinfachen und automatisieren. Die durchdachte Systemarchitektur von Kubernetes macht dies möglich. Gruppen von Hosts, auf denen die Container laufen, werden in Clustern von physischen oder virtuellen Maschinen zusammengefasst und als eine einzige Einheit verwaltet.

Vereinfachtes Management über alle Umgebungen hinweg

Administratoren können also komplexe Container-Cluster auf hoch effiziente Weise managen – über verschiedene Umgebungen wie Public, Private oder Hybrid Clouds hinweg. Dadurch erreicht die Infrastruktur die Nutzer an ihren Standorten. Die Anwendungen bieten eine höhere Verfügbarkeit und das Unternehmen kann die Entscheidungen hinsichtlich Sicherheit und Kosten sinnvoll abwägen – abgestimmt auf die speziellen Bedürfnisse. Unterstützt wird die Kubernetes-Orchestrierung von führenden Cloud-Plattformen, wie Azure von Microsoft, Bluemix von IBM, Openshift von Red Hat, AWS von Amazon und OCI von Oracle.

Kubernetes vereinfacht also alles im Zusammenhang mit der Bereitstellung und Verwaltung der Anwendungen. Mit Kubernetes werden Rollouts und Rollbacks automatisiert, um den Status der Dienste zu überwachen und fehlerhafte Rollouts zu verhindern. Ausserdem werden regelmässige Systemdiagnosen der Dienste durchgeführt, fehlgeschlagene oder gestoppte Container neu gestartet und den Kunden werden nur Dienste angezeigt, wenn bestätigt wurde, dass diese auch erfolgreich gestartet wurden. Zusätzlich werden die Dienste mithilfe von Kubernetes je nach Nutzung automatisch nach oben oder unten skaliert, um sicherzustellen, dass nur die Dienste ausgeführt werden, die auch tatsächlich benötigt werden. Wie bei Containern ist es mit Kubernetes möglich, Cluster deklarativ zu verwalten. Somit unterliegt die Einrichtung der Versionskontrolle und ist einfach zu replizieren.

Mehr Flexibilität und Agilität durch Containerisierung: Applikationen schneller, sicherer und kosteneffizienter bereitstellen

Durch die Flexibilität, die Container und deren Orchestrierung mit Kubernetes ermöglichen, können Entwickler, IT-Administratoren und DevOps-Teams die Entwicklung, die Bereitstellung und den Betrieb komplexer Server-Anwendungen radikal optimieren. Die Applikationen, die ein Unternehmen für den Geschäftsbetrieb benötigt, werden mit Docker und Kubernetes schneller, sicherer und kosteneffizienter. Neue Anwendungen, Funktionen, Services und Fixes können deutlich rascher entwickelt und ausgerollt werden – ohne Downtime. Während es früher bis zu sechs Monate dauerte, bis ein neuer Service betriebsbereit war, dauert das heute dank der neuen Microservices-Infrastruktur auf Basis von Containern und Kubernetes im Durchschnitt weniger als eine Woche. Kein Wunder, dass sich das Konzept in der Praxis immer mehr durchsetzt – sowohl bei Startups als auch bei grossen Konzernen. Denn alles in allem hilft die Container-Methode den Unternehmen dabei, die Time-to-Market zu beschleunigen und den ROI zu erhöhen.  

 

Pascal-Schmid-CEO-netrics-im-Gespraech-mit-Docker-CEO-Steve-Singh-in-San-Francisco

Pascal Schmid, CEO netrics AG, im Gespräch mit Docker CEO, Steve Singh, in San Francisco

Container und Kubernetes: Noch effizienter in Form von Container-as-a-Service

netrics bietet eine speziell für die Finanzbranche entwickelte Container-Lösung mit Kubernetes als Orchestrierungs-Instrument in Form von Container-as-a-Service an, die der stark regulierten Finanzbranche gerecht wird. In Verbindung mit flexibel kombinierbaren Cloud- und Service-Bausteinen schaffen sie eine hochverfügbare und sichere Plattform für die Finanzbranche und deren Anwendungen, Software und Produkte. Die Flexibilität und Agilität, die diese moderne Technologie ermöglicht, können dem Nutzer einen entscheidenden Wettbewerbsvorteil bringen.