Die Containerisierung hat sich als hochmoderne Technologie etabliert, die die Entwicklung, Bereitstellung und Verwaltung von Softwareanwendungen transformiert hat. Dieser Artikel beleuchtet das Konzept der Containerisierung, ihre wesentlichen Unterschiede zu virtuellen Maschinen (VMs), wie OTRS sich an diese technologische Landschaft anpasst und die zahlreichen Vorteile, die sie unseren Kunden bietet.
Containerisierung: Ein Überblick
Containerisierung kapselt eine Anwendung und ihre Abhängigkeiten in eine einzige, portable Einheit, bekannt als Container. Diese Container sind vom Host-System und anderen Containern isoliert, was Konsistenz und Reproduzierbarkeit in verschiedenen Umgebungen gewährleistet. Container teilen sich den Kernel des Host-Betriebssystems, was sie leichtgewichtig und effizient macht und eine schnelle Bereitstellung und Skalierung von Anwendungen ermöglicht.
Vorteile von Containern:
- Portabilität: Container laufen konsistent in verschiedenen Umgebungen, unabhängig von der zugrunde liegenden Infrastruktur.
- Isolation: Container sind voneinander und vom Host-System isoliert, was Konflikte reduziert und Sicherheit und Stabilität gewährleistet.
- Ressourceneffizienz: Container verbrauchen weniger Ressourcen im Vergleich zu traditionellen VMs, was zu schnelleren Startzeiten und geringerer Ressourcenauslastung führt.
- Umgebungssicherheit: Container enthalten nur die Komponenten, die zum Ausführen der Anwendung benötigt werden, was potenzielle Angriffsvektoren reduziert.
- Netzwerksicherheit: Fein abgestimmte Richtlinien für die Kommunikation zwischen Komponenten erhöhen die Sicherheit.
Unterschiede zwischen Containern und virtuellen Maschinen:
Während Container und virtuelle Maschinen ähnliche Zwecke erfüllen – die Isolierung von Anwendungen und deren Abhängigkeiten – unterscheiden sie sich erheblich in ihrer Architektur und Ressourcennutzung.
Architektur:
Container teilen sich den Kernel des Host-Betriebssystems, was sie kleiner und effizienter macht.
Ressourcennutzung:
Container sind äußerst ressourceneffizient. Ein einzelner Host kann daher deutlich mehr Container als VMs gleichzeitig ausführen.
Bereitstellungsgeschwindigkeit:
Container können schnell hoch- und heruntergefahren werden, ideal für dynamische, skalierbare Arbeitslasten.
Architektur:
VMs emulieren einen gesamten physischen Computer, einschließlich eines vollständigen Betriebssystems, was zu höherer Ressourcenauslastung und langsameren Startzeiten führt.
Ressourcennutzung:
VMs verbrauchen mehr Ressourcen beim Start, was sie weniger geeignet für schnelle Skalierung macht.
Bereitstellungsgeschwindigkeit:
VMs sind ressourcenintensiver, da sie ein vollständiges Betriebssystem für jede Instanz benötigen, was zu verschwendeten Ressourcen und erhöhten Infrastrukturkosten führt.
OTRS‘ Engagement für Container
Bei OTRS sind wir bestrebt, dem Trend der Containerisierung zu folgen und arbeiten intensiv daran, den Betrieb von OTRS in einer containerisierten Umgebung zu ermöglichen. Dies bringt mehrere Vorteile für unsere Kunden:
Konsistenz: Container bieten eine konsistente Laufzeitumgebung, reduzieren das „Es funktioniert auf meinem Rechner“-Problem und gewährleisten, dass Anwendungen in verschiedenen Umgebungen gleich funktionieren. Da Container alle erforderlichen Abhängigkeiten (wie Perl-Version und CPAN-Abhängigkeiten, NPM-Module, Datenbank- und ElasticSearch-Anforderungen etc.) beinhalten, werden Installations- und Aktualisierungsverfahren stark vereinfacht und die Betriebskosten reduziert.
Portabilität: Container kapseln eine Anwendung und ihre Abhängigkeiten, was es einfach macht, Anwendungen zwischen verschiedenen Umgebungen zu verschieben, wie z. B. Test- oder Produktionssystemen und sogar zwischen verschiedenen Plattformen oder Infrastrukturtypen. Für On-Premise-Kunden bedeutet dies, dass Anwendungen nahtlos über verschiedene Rechenzentren oder hybride Umgebungen hinweg bereitgestellt werden können, ohne sich um Hardware- oder Betriebssystemkompatibilität sorgen zu müssen.
Isolation: Container sind voneinander und vom Host-System isoliert, was die Sicherheit und Stabilität erhöht, indem Konflikte zwischen Anwendungen verhindert werden. Für On-Premise-Kunden bietet diese Isolation erhebliche Sicherheitsvorteile, da jeder Container unabhängig mit eigenen Ressourcen, Dateisystem und Netzwerk-Stack arbeitet. Dies reduziert das Risiko, dass eine kompromittierte Anwendung andere oder das Host-System beeinträchtigt.
Diese Vorteile gelten nicht nur für den Betrieb von OTRS in einer On-Premise-Umgebung, sondern auch für das SaaS-Angebot, das wir für unsere Kunden betreiben. Wir können die Stärken der Skalierbarkeit voll ausschöpfen und flexibel auf wechselnde Arbeitslasten reagieren, um einen unterbrechungsfreien Betrieb auch während der Wartung zu gewährleisten.
Woran wir derzeit arbeiten
Wir nehmen aktuell notwendige Änderungen an OTRS vor, um vollständig mit der Container-Philosophie übereinzustimmen. Wichtige Aspekte sind:
- Verzicht auf lokale Dateispeicherung: Wir unterstützen die Verwendung des De-facto-Standardprotokolls „S3“ für Ticketinhalte und Anhänge. Wir verlagern auch die Verarbeitung von Prozessen und ACLs vom lokalen Dateisystem in einen verteilten Cache mittels Redis.
- Zugriff auf Protokolle: Wir arbeiten daran, den zentralisierten Zugriff auf Protokolle von containerisierten Anwendungen zu ermöglichen, insbesondere im horizontal skalierten Betrieb.
- Neue SaaS-Infrastruktur: Wir entwickeln eine neue SaaS-Infrastruktur auf Basis von Kubernetes zur Orchestrierung von Containern, um Sicherheit, Isolation und optimale Ressourcennutzung zu gewährleisten.
Was Sie in kommenden Releases erwarten können
In den kommenden OTRS Releases werden Änderungen und Funktionalitäten eingeführt, um den containerisierten Betrieb vollständig zu ermöglichen. Jede Änderung, wie die Einführung der Unterstützung für S3 als Artikel-Backend, kann sofort genutzt werden und nicht erst mit der Einführung von Containern.
Strategischer Ausblick auf eine containerisierte Zukunft
Die Containerisierung hat die Praktiken der Softwareentwicklung und -bereitstellung revolutioniert und bietet eine leichte, portable und effiziente Möglichkeit, Anwendungen zu verpacken und auszuführen. Container passen zu modernen Softwareentwicklungsmethoden wie DevOps und Microservices, und ihre Kompatibilität mit Cloud-nativen Architekturen hat ihre Akzeptanz vorangetrieben.
Container-Orchestrierungsplattformen wie Kubernetes haben die Einführung von Containern weiter beschleunigt, indem sie robuste Automatisierungs- und Verwaltungsmöglichkeiten bieten. Da sich die Technologie weiterentwickelt, werden Container wahrscheinlich eine noch zentralere Rolle in der Zukunft der Softwareentwicklung und -bereitstellung spielen.
Organisationen, die die Containerisierung annehmen, können sich einen Wettbewerbsvorteil verschaffen, indem sie Software schneller, zuverlässiger und effizienter ausliefern. Aus diesem Grund sind wir bestrebt, Container für den Betrieb von OTRS bereitzustellen.
Benjamin Müller
Benjamin Müller ist Chief Technical Officer der OTRS AG und verantwortlich für die OTRS Solution. Mit seinem Team gestaltet er das Lösungsportfolio und forscht an innovativen Ideen.