Die profi.com AG begleitet eine breite Prozesspalette im Rahmen des DevSecOps. Die Bereitstellung eigener Services mittels Containervirtualisierung ist inzwischen ebenso Teil des Portfolios als auch der internen IT-Infrastruktur.
Als Beispielanwendung in diesem Artikel dient Micro Focus Application Lifecycle Management (ALM), welches zuvor auf virtuellen Maschinen (VM’s) bereitgestellt wurde. Durch die Umstellung auf Containervirtualisierung können Ressourcen eingespart, Anwendungen wartbarer gemacht sowie Entwicklung und Bereitstellung fließender miteinander verbunden werden – ganz im Sinne der Continuous Integration und des Continuous Developments.
Unterschied zwischen Virtualisierung mittels VM‘s und Container
Eine virtuelle Maschine (VM) ist die virtualisierte Nachbildung eines kompletten Computers. Diese verhält sich so, als wäre sie direkt auf der Hardware installiert. Dort werden – wie auf einem physischen Computer – ein Betriebssystem und Anwendungen ausgeführt. Die Zuweisung der zugrunde liegenden Hardware übernimmt ein Hypervisor und belegt CPU, Arbeitsspeicher und Festplattenspeicher exklusiv für diese Maschine.
Für Einsteiger und Profis – die passende Container-Schulung der profi.com AG
In diesem Training erhalten Sie eine Übersicht über die historische Entwicklung und die technischen Grundlagen zu Containern, lernen die notwendigen Tools kennen, erstellen und verwalten Ihre eigenen Container.
Ein Container dagegen ist ein abgegrenztes Paket. Grundlage ist ein Image, welches alle zur Ausführung benötigten Konfigurationen, Bibliotheken und Dateien beinhaltet. Der Container ist abgegrenzt von anderen Containern, die ausgeführt werden. Diese können nicht miteinander interagieren, Dateien lesen oder schreiben. Im Gegensatz zu virtuellen Maschinen haben Container nicht zwingend ein eigenes Betriebssystem, sondern nutzen das des Host-Systems. Das Format eines Containers ist vordefiniert und auf andere Host-Systeme leicht übertragbar. Da Container keine Daten und Informationen des Betriebssystems speichern sind sie wesentlich schlanker als virtuelle Maschinen.
Abbildung 1: Aufbau von Container/ VM-Virtualisierung
Die Vorteile von Containern:
- Geringerer Ressourcenbedarf als virtuelle Maschinen
- Schnelles Starten/ Ausführen und Beenden der Container
- Schnelles und einfaches Verschieben kompletter Anwendungen inklusive ihrer Laufzeitumgebungen auf andere Systeme
- Gute Skalierbarkeit und Anpassung der Kapazitäten
- Orchestrierung von Container-Setups (Beispielsweise mit Kubernetes/ OpenShift)
Warum ALM?
Aus unserer Erfahrung im 1st-Level-Micro Focus Support wissen wir, dass Micro Focus ALM eines der meistgefragten Tools ist, zu denen wir unsere Unterstützung anbieten. Lösungen für etwaige Probleme müssen nach möglichst kurzer Zeit bereitstehen. Die jeweiligen Versionen müssen daher immer greifbar sein oder schnell zur Verfügung stehen. Im Falle einer VM-basierten Bereitstellung heißt das für jede Version eine eigene VM. Auch wenn eine VM ausgeschaltet ist, sind manche Ressourcen weiterhin belegt. Durch die Virtualisierung mittels Containern lassen sich die benötigten Ressourcen an Infrastruktur und damit auch die Kosten reduzieren. Wird die Anwendung in bestimmter Version und Patchlevel benötigt, kann sie in Zukunft kurzzeitig gestartet und anschließend wieder beendet werden. Um die Vorteile wie Skalierung, Orchestrierung und Automatisierung voll auszuschöpfen, wird eine passende Plattform benötigt. In unserem Beispiel erfolgt die Bereitstellung über Red Hat OpenShift.
Der komplette Prozess, von der Erstellung eines eigenen Images bis hin zum Deployment auf OpenShift, wird in weiteren Artikeln erläutert. Der Fokus wird dort auf technischen Details sowie Herausforderungen liegen.
„Eigenes Dockerimage – nach CI/ CD“ – am 25. August 2020 wird folgende Punkte enthalten:
- Erstellung eines eigenen Images für ALM auf Basis von Docker
- Bereitstellung/ Wartung eines aktuellen Images nach CI/CD mittels Pipeline
„Openshift – DevSecOps-Plattform für Containervirtualisierung“ – am 7. September 2020 wird folgende Punkte enthalten:
- Überführung auf Openshift
- Herausforderungen/ technische Details