Die Identity und Access Management Produkte von intension finden in immer mehr Unternehmen Einsatz in unternehmenskritischen Umgebungen. Zwingende Voraussetzung dabei ist, die nach agilen Methoden entwickelte Software einfach und verlässlich in Produktivumgebungen in Betrieb nehmen zu können.
intension optimiert Produktivsetzungen der entwickelten Software durch Continuous Delivery und baut Unterstützung für Docker Container weiter aus
In einem klassischen Phasenmodell erfolgt die Entwicklung neuer Software-Releases in drei Schritten: Development, Quality Assurance und Roll Out. Nach Abschluss der häufig mehrmonatigen Entwicklungsphase wird der letzte Software-Stand („Build“) an die Qualitätssicherung- und Test-Abteilung übergeben und bei Bedarf nachgebessert. Die dann freigegebene Software wird paketiert, für den Roll Out vorbereitet und an Kunden übergeben.
Viele Unternehmen haben diesen klassischen Software-Entwicklungszyklus in den letzten Jahren deutlich überarbeitet und modernisiert: Agile Entwicklung nach Scrum ist heute (fast) allgegenwärtig. Dieses Verfahren beschleunigt und verkürzt den seitherigen Entwicklungszyklus deutlich und setzt auf ein iteratives, inkrementelles Vorgehen, bei dem auch (kleinere) Zwischenstände der entwickelten Software schneller und qualitätsgesichert an Kunden ausgeliefert werden können.
Die Kette aus Development, Quality Assurance und Roll Out wird dabei mehrfach bereits im Software-Entwicklungsprozess durchlaufen.
Deutliche Beschleunigung des Entwicklungszyklus
An dieser Stelle setzt die Methode des Continuous Delivery an und automatisiert diesen Prozess weiter. Bei Änderungen an der Software wird der (tagesaktuelle) Build automatisiert getestet. Sind die Tests erfolgreich, kann der Software-Stand automatisch per Skript oder per Knopfdruck paketiert werden und steht zum Roll Out in Produktivumgebungen zur Verfügung.
Die oben beschriebene 3-stufige Kette erfolgt kontinuierlich mit jeder Änderung an der Software und führt zu einer Continuous Delivery Pipeline: Auf der einen Seite kommt der jeweils aktualisierte Softwarestand hinein, auf der anderen Seite ein produktionsreifes, qualitätsgesichertes und deploybares Software Package heraus.
Mit der Methode des Continuous Delivery lassen sich auch User Acceptance Tests sehr schnell umsetzen: Zeigen die Anwender Interesse an den neuen Features? In welcher Variante werden die neuen Funktionen angenommen? Der Zyklus von der initialen Idee bis zur Produktivsetzung lässt sich mit Continuous Delivery dramatisch verkürzen: Von mehreren Monaten auf wenige Tage.
Mit Continuous Delivery kann die Software deutlich näher am Markt entwickelt werden und das Anwenderfeedback viel schneller Eingang in die Software finden.
Von freigegebener Software zu installationsfähigen Paketen
In den meisten IT-Umgebungen basiert Continuous Delivery auf Virtualisierungs-Lösungen, die unbestreitbare Vorteile bieten und mit denen alle Stages in eigenen virtuellen Maschinen (VMs) betrieben werden können.
Damit lassen sich einzelne Applikationen und/oder Systeme zwar schön separieren, allerdings muss in jeder VM ein eigenes Betriebssystem betrieben werden. Dazu kommen noch die diversen Laufzeitumgebungen, Middleware, Monitoring-Tools u.v.m. Unterm Strich können mit VMs zwar physische Server konsolidiert werden, auf der anderen Seite hat in vielen Fällen die IT-Abteilung mit zahlreichen weiteren, zu betreibenden Betriebssystemen zu kämpfen.
An dieser Stelle setzt das seit Jahren erprobte Konzept der „Container“ an: Anstatt für ein neues Software-Release eine komplett neue VM zu installieren, wird das Release einfach in einen Container verpackt. In diesem ist die Software inklusive vollständig konfigurierter Umgebung abgebildet. Dieser Container kann auf einem beliebigen Host für verschiedene Testszenarien gestartet, und danach wieder gelöscht werden. Seit einigen Jahren setzt sich die frei verfügbare Containerlösung „Docker“ immer weiter durch.

intension optimiert Produktivsetzungen der entwickelten Software durch Continuous Delivery und baut Unterstützung für Docker-Container weiter aus
Wie funktionieren Container?
Typischerweise wird die zu deployende Applikation inklusive der kompletten Runtime-Umgebung in einen Container gepackt: die Anwendungs-Software inklusive Laufzeit-Umgebungen, Libraries, Konfig-Files etc. Durch das Verpacken der Applikation inkl. Runtime-Umgebung in einen Container werden Unterschiede in verschiedenen Betriebssystem-Versionen abstrahiert und damit ausgehebelt.
Durch dieses Konzept sorgen Container dafür, dass die Applikation nach Umzug stabil und verlässlich läuft, beispielsweise nach dem Umzug vom Notebook des Entwicklers in eine Testumgebung, von der Test- über eine Integrations- in die Produktionsumgebung. Von einem physischen Server in einem Rechenzentrum in eine virtuelle Maschine in einer privaten oder öffentlichen Cloud-Umgebung.
Wo ist der Unterschied zwischen „Virtualisierung“ und „Containerisierung“?
Eine VM hat die primäre Aufgabe, die zugrunde liegende Hardware zu abstrahieren und besteht immer aus (mindestens) dem Betriebssystem sowie der Applikation. Um die verschiedenen virtuellen Maschinen auf einer Hardware betreiben zu können, gibt es zwischen Hardware und den VMs immer einen sogenannten „HyperVisor“, der den singulären virtuellen Maschinen die Hardware vorgaukelt. Ein physischer Server mit drei virtuellen Maschinen würde über einen HyperVisor und darauf drei separaten Betriebssystemen bestehen.
Im Unterschied dazu läuft auf einem Server mit drei in Container verpackten Applikationen nur ein Betriebssystem, welches sich alle drei Container teilen. Die von allen Containern gemeinsam genutzten Teile des Betriebssystems müssen nur einmal verfügbar sein. Dadurch benötigen Container deutlich wenige Hardware-Ressourcen und Overhead als virtuelle Maschinen.
Diese offensichtlichen Vorteile nutzen immer mehr Firmen und ergänzen – parallel zu „realen“ Servern und virtualisierten Umgebungen – ihre IT-Infrastruktur um Container.
intension unterstützt sowohl virtuelle als auch Container-basierte Umgebungen und ist somit „Cloud-Ready“
„Unsere Software ist vollständig lauffähig sowohl auf „eigener“ Hardware, als auch in virtualisierten oder in Container-basierten Umgebungen“,
sagt Frithard Meyer zu Uptrup, Geschäftsführer der intension GmbH und ergänzt:
„Wir nutzen sowohl VMs als auch Container für unsere eigene IT-Infrastruktur und kennen die individuellen Herausforderungen der verschiedenen Ansätze. Abhängig der benötigten Performance und Verfügbarkeit können so alle Szenarien effizient abgebildet werden.
Wir kombinieren die zahlreichen Vorteile von Continuous Build & Delivery und verpacken die zu deployende Software in Docker-Container. So konnten wir in Kundenprojekten die Zeit zum Deployment eines neuen Software-Release von mehreren Monaten auf wenige Tage senken.“