Fachbeitrag

Mit Containern Applikationen schneller in der Cloud bereitstellen

Uhr
von Daniel Jossen, Geschäftsführer (CEO) von Amanox Solutions und Dozent an der FHNW

Public-Cloud-Services verändern den IT-Markt rasant. Die meisten Unternehmen in der Schweiz überlegen sich heute, wie Public-Cloud-Services in ihrem Unternehmen eingesetzt werden können, um die Agilität und die Vernetzung der IT-Services zu steigern und gleichzeitig die Komplexität für den Betrieb zu vereinfachen. Container sind die ideale Umgebung, um Applikationen rasch und effizient in der Cloud bereitstellen zu können.

Daniel Jossen, Geschäftsführer (CEO) von Amanox Solutions und Dozent an der FHNW (Source: zVg)
Daniel Jossen, Geschäftsführer (CEO) von Amanox Solutions und Dozent an der FHNW (Source: zVg)

Cloud-Services verändern zunehmend den Schweizer IT-Markt. Die internationalen Cloud-Anbieter wie Amazon, Microsoft und Google bieten heute eine grosse Anzahl von IaaS-, PaaS- und SaaS-Cloud-Services an, mit deren Hilfe Kunden komplette IT-Services oder Applikationen in der Cloud betreiben können. Durch den hohen Standardisierungs- und Automatisierungsgrad dieser Cloud-Services können neue Applikationen und Services innerhalb von wenigen Minuten bereitgestellt und somit rasch auf neue Kundenanforderungen reagiert werden.

Die Cloud-Anbieter bieten dazu eine grosse Anzahl unterschiedlicher APIs, die für die Bereitstellung der Services genutzt werden können. Jedoch sind diese API von Anbieter zu Anbieter unterschiedlich, und der Kunde hat keine Garantie, dass die genutzten API-Funktionen des Anbieters im nächsten Release noch verfügbar sind.

Herausforderungen für Entwickler

Dies stellt Entwickler und IT-Betriebsteams vor eine grosse Herausforderung. Unsere Erfahrung zeigt, dass nicht alle Applikationen gleich gut geeignet sind, um in der Public Cloud aufgebaut und betrieben zu werden. Vor allem ältere Applikationen, die weder von der gewählten Architektur noch von der eingesetzten Technologie für das Hosting in der Cloud entwickelt worden sind, können heute nicht effizient in der Cloud betrieben werden. Diese Situation führt zu diversen technischen Problemen und resultiert in höheren Betriebskosten im Vergleich zum Betrieb dieser Applikation auf einer klassischen On-Premise-Infrastruktur.

Container-Services bieten einen effizienten Ausweg, bestehende Applikationen schrittweise "Cloud ready" umzubauen, beziehungsweise neu zu bauen. Ein Container stellt eine schlanke und standardisierte Laufzeitumgebung zur Verfügung, in der alle Komponenten einer Applikation wie zum Beispiel Webservices, Datenbanken oder Application Services installiert und betrieben werden können. Der Container beinhaltet die Applikation sowie alle Einstellungen, die für den Betrieb der Applikation benötigt werden. Durch den hohen Abstraktionsgrad können Container auf unterschiedlichen Betriebssystemen, wie auch bei allen etablierten Cloud-Providern bereitgestellt und betrieben werden.

Im Vergleich zu virtuellen Maschinen virtualisiert der Container nur die Runtime-Umgebung und nicht das ganze Betriebssystem. Der Einsatz von Containern führt aber nicht selten dazu, dass einzelne Funktionen oder Komponenten der Applikation neu entwickelt werden. Die zentrale Herausforderung dabei stellt die Handlung des States innerhalb der Applikation dar. Container sind in der Regel Stateless. Das heisst alle Daten einer Applikation müssen ausserhalb des Containers persistent abgelegt und verwaltet werden. Mittlerweile bieten die meisten Container-Runtime-Umgebungen entsprechende Funktionen an, um die Persistenz innerhalb der Applikation effizient zu implementieren.

Mehr Flexibilität für Unternehmen

Durch die lose Koppelung der Applikation und den eingesetzten Provider-APIs profitieren Unternehmen von einer hohen Flexibilität und erhalten eine grosse Abstraktion von der darunterliegenden Technologie. Dadurch wird es möglich, Container jederzeit zu einem anderen Anbieter zu verschieben oder nach Bedarf weitere Container bereitzustellen, um die Last auf mehrere Instanzen zu verteilen. Bereits heute bieten die meisten Cloud-Provider attraktive Betriebsmodelle an, containerbasierte Applikationen in der Public Cloud zu betreiben und so von einer Kostenersparnis zu profitieren.

Die Container-Technologie ist eine wichtige Virtualisierungstechnologie, um bestehende Applikationen fit für die Cloud zu machen und diese standardisiert bei verschiedenen Cloud-Anbietern zu betreiben.

Webcode
DPF8_85445