Breite und flexible Entwicklungsbasis ist Grundvoraussetzung für erfolgreiche Containerisierung geschäftsrelevanter Software-Anwendungen. InterSystems erklärt, worauf bei der Entwicklung gebündelter Anwendungen zu achten ist. [...]
Containerisierung, also das Bündeln einer Applikation mit all ihren Abhängigkeiten, ist ein wichtiger IT-Trend. Wichtigstes Ziel: 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 zum Thema 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. Die 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 InterSystems IRIS: Eines der Entwicklungsziele für InterSystems IRIS 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 Containerrelease 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 zusätzlich vereinfacht. Neben der gesamtheitlichen und zentralen Entwicklung und Kontrolle datenintensiver Anwendungen und Container lassen sich so auch APIs transparent verwalten. Alle benötigten Funktionen finden sich in einer einzigen Datenplattform.
Be the first to comment