Wie man Cloud-Container in DevOps nutzt
Unternehmen haben auch zu Cloud gewechselt und damit eine noch höhere Effizienz und schnellere Bereitstellung erreicht. Jetzt heißt das neue Schlagwort in der Cloud-Technologie „Cloud-Container“. CIOs sollten es zur Kenntnis nehmen. Warum? Weil die Container die Entwicklung neuer Anwendungen beschleunigen und zu großartigen Ergebnissen verhelfen können, wie Prozessoptimierung, Kostensenkung und mehr Agilität für DevOps. Wer will es nicht?
Was sind Cloud-Container?
DevOps-Container ermöglichen es den Entwicklern, eine Anwendung in einen Container zu packen. Bei der Konfiguration läuft die Anwendung unabhängig von der Umgebung genau gleich. Der offensichtliche Vorteil besteht darin, dass die Anwendungen vollständig übertragbar sind, ohne dass für jedes Betriebssystem oder jede Cloud-Plattform ein neuer Code entwickelt werden muss, egal, wo sie hin bewegt werden und welche Art von Computerumgebung verwendet wird.
Obwohl sie die VMs nicht ersetzen, können Unternehmen viel mehr Anwendungen auf einem Server ausführen. Zusammenfassend lässt sich sagen, dass die Container Anwendungen in kleinere Codeabschnitte aufteilen, die jeweils über eine Systemsoftware verfügen, mit der die Apps umgebungsunabhängig betrieben werden können. Auf diese Weise werden Millionen von Nutzern bedient, welche Geräte auch immer sie verwenden. Das containerbasierte Deployment ist aus betriebswirtschaftlicher Sicht einfach sinnvoll, da 24% der großen und 24% der kleinen Unternehmen ihre Arbeitsabläufe bereits in Containern ausführen.
DevOps und Container: Große Vorteile
Die Portabilität ist wahrscheinlich der größte Vorteil, aus dem die vielen anderen Vorteile resultieren:
Der Prozess der Anwendungsentwicklung wird optimiert: Kontinuierliche Integration und Continuous Delivery (CI/CD) werden möglich, ohne dass separate Umgebungen eingerichtet, VMs erstellt und definiert oder Anwendungen bei jeder Verschiebung neu geladen werden müssen. Durch die Container automatisiert man viele dieser Aufgaben. Dies bedeutet natürlich schnellere Produktion und weniger Entwickler.
Niedrigere Softwarekosten entstehen: Die Container sind komplett eigenständig. Kein Ärger mehr mit Betriebssystemen oder Datenbanken, ganz zu schweigen von Virtualisierungssoftware. Stattdessen kann ein kleiner Teil eines Betriebssystems verwendet werden, Datenbanken werden durch dynamische Bibliotheken und Dienstprogramme durch gemeinsame Dienste ersetzt. Mit Hilfe der Container reduziert man die Kosten für die Infrastruktursoftware, ähnlich wie man durch die Virtualisierung die Hardwarekosten senkt.
Flexibilität für bestehende Anwendungen ist gegeben: Eine existierende Legacy-Anwendung in ihrem aktuellen Zustand zu nehmen und sie in einen Container zu verschieben, erfordert nur sehr wenig Aufwand bei einem ziemlich großen Gewinn. Wenn ein Unternehmen bereits Container für neue Anwendungen verwendet, können die Anwendungen leicht verlagert und unterschiedliche Infrastrukturoptionen (sowie Kosten) optimiert werden.
Wie Container DevOps fördern
Die grundlegenden Vorteile der Container sind Flexibilität, Geschwindigkeit und Kosteneinsparungen. Wenn sich ein Unternehmen sowieso stark auf die Anwendungsentwicklung konzentriert, ist es empfehlenswert, mit dem DevOps-Modell und der Microservice-Architektur auf eine Container-Umgebung zuzuarbeiten.
Die Container-Technologie bietet den Entwicklern die Lösung für das Softwaredeployment in schnellen Entwicklungszyklen, jenen Sprints, für die DevOps bekannt ist. Die operationellen Teams wollen Lösungen, die sicher, skalierbar und einfach zu warten sind und somit die Kundenerfahrung verbessern.
Und das Management? Nun, es will die Geschäftsziele so kosteneffizient wie nur möglich erreichen.
DevOps und Container passen gut zusammen, was ziemlich wichtig für eine Cloud-native Entwicklungsumgebung ist. Die Unternehmen, die den Wechsel zu DevOps geschafft haben, haben bereits ihre Hand auf dieser sich schnell entwickelnden Technologie. Laut IDG CIO Tech Poll von 2017 hat über die Hälfte der befragten IT-Unternehmensleiter DevOps entweder bereits eingeführt oder für das nächste Jahr eingeplant. Wenn das Ziel schnellere Entwicklung und Bereitstellung sowie Verbesserung bestehender Anwendungen ist, werden diese DevOps-Teams auch die Containertechnologie übernehmen.
Vor kurzem hat die Cloud Foundry Foundation einen Bericht veröffentlicht, aus dem hervorgeht, dass 53% der befragten Unternehmen entweder Container eingesetzt haben oder deren Einsatz erwägen. 2/3 von ihnen gaben an, die Containernutzung im nächsten Jahr entweder zu beabsichtigen oder zu erweitern.
Die Unternehmen, die bei ihren traditionellen IT-Liefermethoden bleiben, werden überholt werden. Mit Hilfe der Containertechnologie kann man Anwendungen verschieben, ohne eine App zu stören. Cloud-DevOps kann sowohl für die Entwicklung neuer Apps als auch für ältere Apps eine Lösung darstellen.
Best Practices für die Übernahme von Containern in DevOps
Es ist wichtig zu beachten, dass frühere Containerumgebungen experimentelle “Kopfgeburten” einzelner Entwickler waren. Durch das Experimentieren haben die Entwickler ihre Kompetenzen erweitert, indem sie verschiedene Tools, Anwendungen und Produkte verwendet und Anbieter durchprobiert haben. Diese ersten Entwickler entwerfen und gestalten ihre Containerumgebungen immer wieder neu, wenn sich die Prioritäten ändern, oft in Richtung Sicherheit der Cloud-Container oder Cloud-Management. Daher ist es nicht unwahrscheinlich, dass Ihre IT-Mitarbeiter die Technologie zunächst etwas fremd finden, insbesondere wenn sie die Infrastruktur in einer SAP-Umgebung betreiben.
Die Anzahl der Entwickler, die ihre Apps über Container erstellen, steigt kontinuierlich an. Allerdings mangelt es je nach Zielsetzung immer noch an Standardisierungsverfahren und Best Practices. Genau auf diesen Mangel ist oft die Komplexität des Container-basierten Deployments und Managements zurückzuführen.
Jeder neue Technologieeinsatz sollte in einer angemessenen Weise angegangen werden. Die beste Methode besteht vielleicht darin, die Entwickler außerhalb der regulären Produktionsumgebung experimentieren zu lassen. Sie werden ihre Erfahrungen in einer sicheren Umgebung sammeln, Probleme erkennen, die bestimmt auftauchen werden, und Vertrauen in die Entwicklung und den Einsatz Cloud-nativer Apps gewinnen sowie mit der Portabilität der älteren Apps experimentieren.
Es gibt vier Schlüsselbereiche, die während des Einsatzes im Vordergrund stehen:
Agilität
Was Sie mit Sicherheit nicht wollen, ist noch mehr Komplexität, dass Ihr DevOps-Team bei dem Aufbau einer Microservice-Architektur für jedes Projekt generieren kann. Der Umweg führt durch die Entwicklung einer Reihe an standardisierten Umgebungen im Voraus.
Nachdem Sie bei der Einrichtung dieser vordefinierten Umgebung sichergestellt haben, dass alles funktioniert, sollten Sie prüfen, dass sie auch genügend Optionen enthält, um Ihre verschiedenartigen Bedürfnisse zu erfüllen.
Flexibilität
Bewahren Sie den Fokus auf Ihren Geschäftszielen, es ist nämlich leicht, vor lauter glänzenden neuen Technologien das Konzept aus den Augen zu verlieren. Berücksichtigen Sie bei Ihrer Planung die Optionen für die öffentliche oder die private Cloud, falls Sie diese später integrieren möchten und keine höheren Kosten gebrauchen können. Wenn Sie Ihre Bedürfnisse im Vorfeld definiert haben, wird das meiste erledigt sein. Durch die Automatisierung von Schritten, die keine Entscheidungsfindung erfordern, wird der Prozess zusätzlich rationalisiert.
Der Stack
Die Auswahl jeder Ebene muss mit Ihrer Situation und Ihren Anforderungen übereinstimmen. Sie werden die Auswahl bezüglich des Betriebssystems (z.B. Ubuntu, Photon, Rancher) und der virtuelle Infrastruktur (Cloud-basiert oder traditionell) treffen müssen.
Orchestrierungstools
Mit der wachsenden Containeranzahl wird auch der Markt für Orchestrierungstools wachsen, wenn auch nur um Kompatibilität und Skalierbarkeit zu gewährleisten. Diese Tools ermöglichen die Bereitstellung und Planung von Containern, was das Container-Management vereinfacht und die Verwaltung mehrerer Container zulässt. Es gibt folgende Marktführer:
- Docker und Docker-Swarm: Docker ist ein Open-Source-Programm, das gebrauchsfertige paketierte Orchestrierung ermöglicht. Sein Swarm bietet natives Clustering für seine Docker-Container. Docker und DevOps sind definitiv kompatibel.
- Kubernetes:Dies ist die Container-Maschine von Google. DevOps-Teams können Docker-Container auf der Cloud-Plattform von Google ausführen. Es ist ein Open-Source-Planungstool, mit dem Containercluster basierend auf Benutzerspezifikationen verwaltet werden.
- Amazon ECS: Dieser Container-Dienst unterstützt auch Docker-Container und ermöglicht das Ausführen von Anwendungen auf einem verwalteten Cluster.
- Azure Container Service:Teams können Cluster virtueller Maschinen erstellen, die als Containerhosts fungieren, sowie Maschinen kreieren, mit denen die Anwendungscontainer verwaltet werden können.
Es gibt auch andere Tools, aber der Punkt ist: Sobald die Entscheidung für die Containertechnologie steht, sollte der Blick auf die Geschäftsanforderungen die Auswahl der Orchestrierungstools oder deren Kombinationen bestimmen. Während Docker den Standard für die anderen setzt, geben jetzt auch einige Rivalen wie Puppet und Chef den Ton auf der Containersoftware-Arena an.
Die Containertechnologie verändert die Landschaft der App-Entwicklung. Mit deren Hilfe können DevOps-Teams die Entwicklung und Bereitstellung in der Cloud viel einfacher gestalten und die Geschwindigkeit, Agilität und Flexibilität erhöhen. Die Unternehmen, die ihre ersten Schritte in der Containertechnologie bereits machen, werden eine Umgebung vorfinden, die sie auf dem Markt wettbewerbsfähig macht.