Checkliste für den Container-Einsatz im DevOps-UmfeldEntwicklung gebündelter Anwendungen im Griff

18. März 2020

Eine breite und flexible Entwicklungsbasis ist die Grundvoraussetzung für die erfolgreiche Containerisierung geschäftsrelevanter Software-Anwendungen. Wichtigstes Ziel: die schnelle Implementierung von Funktionen, eine zügige Verteilung von Updates und eine verbesserte Synchronisierung von Entwicklungsabläufen.

Das Bündeln einer Applikation mit all ihren Abhängigkeiten, sprich die Containerisierung, ist gilt als wichtiger IT-Trend. Dabei geht es vordringlich um:

  • die schnelle Implementierung von Funktionen,
  • eine zügige Verteilung von Updates und
  • eine verbesserte Synchronisierung von Entwicklungsabläufen.

Gleichzeitig optimieren Container Abläufe und erhöhen die Transparenz. Unternehmen und Entwickler, die diese Vorteile der Software-Container nutzen wollen, stehen aber immer vor der Frage: Wie bestmöglich vorgehen? Die Experten von InterSystems haben jetzt einen „Routenplan“ zusammengestellt: Auf die folgenden Tipps und Fallstricke gilt es bei der Containerisierung von Anwendungen zu achten, um ihr Potenzial umfassend zu nutzen.

Begrifflichkeiten verstehen und abgrenzen

Zu Beginn ist es ratsam, ein besseres Verständnis zu entwickeln. Worum geht es speziell? Wie lassen sich Container einsetzen, um das Tagesgeschäft zu vereinfachen? Vielerorts fehlt sogar das grundlegende Wissen, wie sich ein Container von einer virtuellen Maschine (VM) unterscheidet, da beides zunächst ähnlich aussieht.

Eine VM lässt sich als Haus beschreiben, während ein Container einer Wohnung entspricht. VMs sind eigenständig mit einem vollständigen Gastbetriebssystem, das in der VM läuft. Sie sind unabhängig wie freistehende Gebäude. Container hingegen sind sehr schlank und nutzen eine gemeinsame Infrastruktur, beispielsweise den Kernel des Host-Betriebssystems. Sie lassen sich also mit einer Wohnung vergleichen. In einem Wohngebäude werden Heizungsanlagen, Elektroleitungen und mehr gemeinsam genutzt. Ähnlich verwenden auch Container die verfügbaren Ressourcen des Hosts.

Einsatz finden Container etwa bei der Implementierung von Microservices, die untereinander kommunizieren können. Hierbei lassen sich die jeweiligen Microservices und der entsprechende Container einzeln aktualisieren, was das Ausrollen neuer Releases erleichtert. Um der komplexen Service-Architektur zu begegnen, sind in diesem Zusammenhang Ansätze wie API-Management sinnvoll und notwendig.

Voraussetzungen schaffen, Anwendungen aufbrechen

Was trotz der zahlreichen Vorteile des Container-Ansatzes viele Unternehmen noch von ihrer Einführung abhält, ist, dass Anwendungen nicht ausreichend vorbereitet sind. Werden große, verzahnte und komplexe Applikationen in den Container verlagert, widerspricht dies dem eigentlichen Containergedanken verringerter Komplexität. Ein erster Schritt sollte daher sein, festzustellen, ob sich Anwendungen sinnvoll aufsplitten lassen. Wo können funktionale oder logische Blöcke gebildet und dann in einen eigenen Container überführt werden?

Ein konkretes Beispiel: Bei einem Warenwirtschaftssystem, das Bestellabwicklung, Kundenverwaltung und mehr beinhaltet, ließen sich etwa Wissensdatenbank, CRM, Module oder anderes in einen Container auslagern. Der erste Schritt erfolgreicher Containerisierung ist demnach, kleinere Einheiten zu bilden. Achtung: Die Aufsplittung sollte weder zu klein- noch zu großteilig sein, um Container bestmöglich beherrschen zu können. Wer ein ganz neues Tool plant, kann gleich zu Beginn überlegen, ob dies containerisiert werden kann.

Migrationsaufwand bei Windows-Anwendungen beachten

Container kommen klassisch aus der Linux-Welt, in der sie auch am einfachsten funktionieren. Wer heute eine Anwendung hat, die nativ unter Windows läuft, muss daher einen gewissen Migrationsaufwand berücksichtigen.
Daher sollten sich Projektverantwortliche und Entwickler bereits im Vorfeld Gedanken machen, ob es möglich ist, die jeweilige Anwendung in die Linux-Welt zu bringen – eine Kosten-Nutzen-Abwägung. Dies ist für den serverseitigen Teil der Applikationen oft gut möglich, bei komplexen GUI-Clients jedoch schwieriger.

Auf eine flexible und breit angelegte Entwicklungsbasis setzen

Eine breite Operationsgrundlage für zahlreiche Entwicklungsumgebungen ist für die Entwicklung von Anwendungen sowie in diesem Zusammenhang auch Containern sehr hilfreich. Ratsam ist hierbei eine Datenplattform, die sich leicht implementieren lässt, und die auch bei Programmierprojekten in einem Container eingesetzt werden kann. Beispiel IRIS – eines der Entwicklungsziele war es, dass die Plattform ein „First Class Citizen“ für Container sein sollte. Das spiegelt sich auch in der Release-Strategie wider.

Während das erste Release eines Jahres gleichzeitig als konventionelles Anwendungspaket und als Container-Release angeboten wird, sind alle nachfolgenden Versionen des Kalenderjahres ausschließlich als Container zu beziehen. Auch ein API-Manager ist in IRIS integriert, was die Implementierung neuer Funktionen und Anwendungen vereinfachen soll. Neben der zentralen Entwicklung und Kontrolle datenintensiver Anwendungen und Container lassen sich so auch APIs transparent verwalten.

Die Plattform IRIS wurde entwickelt, um Unternehmen die Entwicklung von Anwendungen zu erleichtern. Normalerweise widmen Softwareanbieter 90 Prozent ihrer Aufmerksamkeit einer Anwendung. Mit Containern verlieren sie keine wertvolle Zeit mit der Einrichtung der Anwendungsumgebung, sondern werden agiler und können sich auf die Entwicklung des Codes konzentrieren. Das optimiert auch die Zusammenarbeit mit ihren Programmierern und Entwicklern, da alle mit dem Werkzeug arbeiten, das allgemein verstanden wird: dem Container. (rhh)

InterSystems

Lesen Sie auch