Communal-FM Artikel (1)

Strategische Migration zu Kubernetes: Erfolgreiche Migration bei Communal-FM

Lesezeit: 6 Minuten

Seit 2017 begleitet Tralios IT die Communal-FM GmbH bei der Verwaltung und Optimierung ihrer IT-Systeme. Im Jahr 2023 entschlossen sich beide Unternehmen zu einem entscheidenden Schritt: der Migration von Docker, genauer Swarm Mode, zu Kubernetes. Diese Entscheidung basierte auf der Notwendigkeit, eine zukunftssichere, stabile und skalierbare Plattform zu etablieren, die den steigenden Ansprüchen gerecht wird und gleichzeitig Flexibilität für zukünftige Entwicklungen bietet.

Die Tralios IT GmbH 

Die Tralios IT GmbH ist ein spezialisiertes Dienstleistungsunternehmen im Bereich des Linux Server Managements mit über 15 Jahren Erfahrung. Mit Fokus auf die Entwicklung und Optimierung von Infrastrukturen unterstützt Tralios ihre Kunden dabei, effiziente und skalierbare Umgebungen aufzubauen. Die Expertise des Unternehmens liegt in den Bereichen Virtualisierung, Containerisierung und Automatisierung, wodurch maßgeschneiderte Lösungen für komplexe technische Herausforderungen realisiert werden können.

Henry Brettschneider, Verantwortlicher seitens der Tralios IT GmbH
Henry Brettschneider, Verantwortlicher seitens der Tralios IT GmbH

Die Communal-FM GmbH 

Die Communal-FM GmbH ist ein führender Anbieter von technologiegestütztem Facility Management, der sich insbesondere auf die Bedürfnisse kommunaler Verwaltungen spezialisiert hat. Ihr Portfolio umfasst eine webbasierte CAFM-Software (Computer-Aided Facility Management), die es öffentlichen Einrichtungen ermöglicht, ihre Facility-Management-Prozesse zu digitalisieren und zu optimieren. Ergänzt wird das Angebot durch umfassende Dienstleistungen im Bereich der Objektbestandserfassung und Datenimplementierung, welche auf die schlüsselfertige Übergabe eines CAFM-Systems abzielen.

Von Docker zu Kubernetes 

Technologische Fortschritte und steigende Anforderungen an Skalierbarkeit, Sicherheit und Flexibilität erfordern kontinuierliche Innovationen und Anpassungen, insbesondere im Bereich der technischen Infrastruktur. Für Communal-FM war es von entscheidender Bedeutung, ihre Systeme zu modernisieren, um den wachsenden Bedürfnissen ihrer Kunden gerecht zu werden und zukünftige Entwicklungen zu ermöglichen. Ziel dieses Textes ist es, anderen Unternehmen Einblicke in die praktische Umsetzung einer solchen Migration zu geben und zu demonstrieren, wie Kubernetes als Basis für moderne, skalierbare IT-Infrastrukturen dienen kann.

Philip Breuner, Projektleiter bei der Communal-FM
Philip Breuner, Projektleiter bei der Communal-FM
Benjamin Schneider, leitender Entwickler bei der Communal-FM
Benjamin Schneider, leitender Entwickler bei der Communal-FM

Warum die Umstellung?

Die Entscheidung, von Swarm Mode auf Kubernetes umzustellen, war ein strategischer Schritt, der aus mehreren wesentlichen Gründen getroffen wurde. Tralios verfolgte das Ziel, die IT-Infrastruktur von Communal-FM auf eine zukunftssichere, stabile und skalierbare Plattform zu heben, die den steigenden Anforderungen gerecht wird und langfristige Flexibilität bietet.

Breitere Community-Unterstützung und Stabilität

Kubernetes verfügt über eine erheblich größere und aktivere Open-Source-Community im Vergleich zu Swarm Mode. Diese breite Unterstützung führt zu kontinuierlicher Weiterentwicklung, regelmäßigen Updates und schneller Behebung von Sicherheitslücken. Die aktive Community trägt dazu bei, dass neue Features und Verbesserungen zeitnah implementiert werden, was die Innovationsfähigkeit erhöht. Laut der Cloud Native Computing Foundation gehört Kubernetes zu den am schnellsten wachsenden Open-Source-Projekten weltweit.

Schnellere Reaktion auf Sicherheitslücken

Die größere Entwicklergemeinschaft von Kubernetes bedeutet auch, dass Sicherheitslücken CVEs schneller erkannt und behoben werden. Ein aktives Sicherheitsmanagement ist unerlässlich, um den Schutz sensibler Daten und die Integrität von Systemen zu gewährleisten. Die schnelle Reaktionszeit bei Kubernetes erhöht die Sicherheit der Infrastruktur von Communal-FM erheblich.

Flexibilität

Mit Kubernetes lassen sich besonders einfach Cluster aus mehreren Servern aufbauen. Dadurch wird das Gesamtsystem skalierbar und ausfallsicher.

Umfangreiches Ökosystem und Effizienzsteigerung

Kubernetes bietet ein reichhaltiges Ökosystem von Tools, Erweiterungen und Best Practices. Die Verfügbarkeit zahlreicher Vorlagen und Konfigurationsbeispiele erleichtert die Implementierung und Anpassung an spezifische Anforderungen. Dies ermöglicht eine effizientere Arbeitsweise und verkürzt die Entwicklungszeiten. Darüber hinaus unterstützen viele Drittanbieter und Cloud-Provider Kubernetes nativ, was die Integration zusätzlicher Dienste und Technologien vereinfacht.

Unklare Zukunft von Swarm Mode

Ein weiterer entscheidender Faktor war die unklare Zukunft von Swarm Mode. Obwohl Swarm Mode in die Docker Engine integriert ist, hat sich die Weiterentwicklung in den letzten Jahren deutlich verlangsamt. Die Prioritäten von Docker Inc. haben sich verschoben, insbesondere nach der Übernahme des Enterprise-Geschäfts durch Mirantis im Jahr 2019. Die Community-Unterstützung für Swarm Mode ist rückläufig, was zu Unsicherheiten über die langfristige Verfügbarkeit und Weiterentwicklung führt.

Langfristige strategische Ausrichtung

Die Umstellung auf Kubernetes ermöglicht es Communal-FM, von einer stabilen, zukunftsorientierten Plattform zu profitieren, die den Anforderungen moderner IT-Infrastrukturen gerecht wird. Kubernetes bietet die Flexibilität, Skalierbarkeit und den Support, der notwendig ist, um aktuelle und zukünftige Projekte erfolgreich umzusetzen.

Technische Details der Umsetzung

Das übergeordnete Ziel der Umstellung war die Vereinfachung und Verbesserung des Workflows. Hierzu wurden im Entwicklungsprozess mehrere entscheidende Anpassungen vorgenommen, um die Effizienz zu steigern und den manuellen Aufwand für die Entwickler*innen zu reduzieren.

Vor der Migration zu Kubernetes hatte Communal-FM bereits einen Build-Prozess in Bitbucket implementiert. Die Container wurden dort gebaut und es gab einen bestehenden Deployment-Prozess, der hauptsächlich auf eigenen Skripten basierte. Neue Docker-Container mussten manuell erstellt und gestartet werden und die Deployment-Skripte liefen auf den eigenen Servern. Der Quellcode wurde mithilfe des Befehls docker cp in die Container kopiert und innerhalb des Containers hin und her bewegt. Insgesamt sorgte dieser Prozess für einen hohen manuellen Aufwand für die Entwickler*innen bei jedem Release und verzögerte die Bereitstellung neuer Features.

Mit der Umstellung auf Kubernetes sollte der gesamte Prozess automatisiert und effizienter gestaltet werden. Hierzu wurde der bestehende Build-Prozess in Bitbucket optimiert und um moderne Tools erweitert. Die Implementierung von Kubernetes ermöglichte es, den Build- und Deployment-Prozess zu standardisieren und viele der vorherigen manuellen Schritte zu eliminieren. Prozesse wie eine Versionsänderung bzw. Liveschaltung müssen allerdings weiterhin von Hand durchgeführt werden.

Die Container-Images werden nun automatisch erstellt und in die neue Container-Registry Harbor hochgeladen. Harbor bietet erweiterte Funktionen für die Verwaltung und Versionierung von Container-Images sowie für die Sicherheit durch integrierte Scan-Mechanismen. Durch den Einsatz von ArgoCD werden Änderungen im Git-Repository automatisch erkannt und in das Kubernetes-Cluster deployt. ArgoCD folgt dem GitOps-Prinzip, bei dem das Git-Repository als einzige Informationsquelle dient. Ein wesentlicher Vorteil von ArgoCD ist seine Kompatibilität mit allen gängigen Git-Anwendungen, einschließlich Bitbucket, GitLab, GitHub und anderen. Dies ermöglicht eine nahtlose Integration mit bestehenden Versionsverwaltungssystemen und bietet Flexibilität bei der Wahl der Entwicklungswerkzeuge. Dadurch werden Deployments nachvollziehbar und reproduzierbar.

Durch diese Automatisierungen konnten mehrere Vorteile realisiert werden:

  • Reduzierung des manuellen Aufwands: Entwickler*innen müssen nicht mehr manuell Container bauen oder Deployments anstoßen. Dies spart Zeit und Ressourcen.
  • Erhöhung der Zuverlässigkeit: Automatisierte Prozesse minimieren das Risiko menschlicher Fehler und erhöhen die Stabilität der Anwendungen.
  • Beschleunigung der Release-Zyklen: Neue Funktionen und Updates können schneller und effizienter bereitgestellt werden.
  • Verbesserte Skalierbarkeit: Kubernetes ermöglicht eine einfache Skalierung der Anwendungen entsprechend den aktuellen Anforderungen.
  • Transparenz und Nachvollziehbarkeit: Durch die Verwendung von Git und ArgoCD sind alle Änderungen nachvollziehbar, was die Fehlersuche und Wartung erleichtert.

Die Entwickler*innen von Communal-FM können sich nun verstärkt auf ihre Kernaufgaben konzentrieren, da der Release-Prozess effizient und zuverlässig abläuft. Die Umstellung auf Kubernetes hat nicht nur den Workflow verbessert, sondern auch die Grundlage für zukünftige Optimierungen und Erweiterungen geschaffen.

Herausforderungen und Anpassungen

Während des Projekts traten unerwartete Herausforderungen auf, da die ursprüngliche Lösung mit Kubernetes-Templates und Skaffold unter den komplexen Anforderungen der Produktionsumgebung zunehmend an ihre Grenzen stieß. Ursprünglich schien Skaffold als Lösung für die Entwicklung und das Deployment geeignet zu sein, doch die steigende Komplexität der Infrastruktur und der benötigten Konfigurationen führte dazu, dass Skaffold überladen war. Dies führte zu zusätzlichen Entwicklungsaufwänden, aber durch die enge Zusammenarbeit mit Communal-FM konnten diese Herausforderungen erfolgreich bewältigt werden. Die finale Lösung mit dem Einsatz von ArgoCD und Helm Charts erwies sich als beste Lösung für die Stabilität und Flexibilität der Umgebung.

Tralios stellte zusätzlich in enger Zusammenarbeit mit der Communal-FM Dokumentationen und Wissen zum Thema Kubernetes bereit, womit diese in Zukunft auch weitere Projekte mit Kubernetes umsetzen können.

Hardware und Infrastruktur

Die Umstellung auf Kubernetes ermöglichte eine effizientere Nutzung der bestehenden Hardware. Da durch die Virtualisierung weniger physische Server benötigt werden, werden langfristig Kosten eigespart. Zusätzlich wird durch die standardisierte Cluster-Architektur die Verwaltung der Infrastruktur erheblich vereinfacht. Durch das neue Setup sind größere Updates und Wartungen ohne Betriebsunterbrechung möglich.

Der Kubernetes-Cluster besteht nun aus drei unabhängigen Nodes, die gemeinsam eine hochverfügbare Umgebung bilden. Diese Architektur gewährleistet, dass jederzeit ein Node ausfallen kann, ohne dass der Betrieb beeinträchtigt wird, da die verbleibenden Nodes die Aufgaben nahtlos übernehmen. Im Vergleich zur vorherigen Infrastruktur, die auf zwei gespiegelten Servern basierte, bietet das neue System nicht nur eine höhere Ausfallsicherheit, sondern auch nahezu die dreifache Leistungskapazität.

Zukunftspläne

Neben der Umstellung auf Kubernetes plant Communal-FM weitere Automatisierungen und Optimierungen. Das Monitoring der Serverauslastung (RAM, CPU, Speicher) wurde bereits implementiert, und in Zukunft wird die Automatisierung der Container-Updates durch Bitbucket erfolgen. Dies wird den Entwicklungsprozess noch weiter beschleunigen und die Wartung der Infrastruktur vereinfachen.

Die Migration zu Kubernetes war ein strategischer Schritt, der Communal-FM ermöglicht, ihre Dienstleistungen effizienter, sicherer und flexibler zu gestalten. Dieses erfolgreiche Projekt zeigt, wie Kubernetes als Basis für moderne, skalierbare IT-Infrastrukturen dienen kann, und bietet eine Blaupause für andere Unternehmen, die ähnliche Migrationsprojekte in Betracht ziehen.