Kunde

Wolf GmbH

Industrie

Herstellung

Technologien

Azure DevOps/Cloud-Dienste, Terraform, Kubernetes, Apache Kafka, MQTT, ELK

Über das Projekt

Die Wolf GmbH ist ein deutsches Unternehmen, das für seine Kompetenz in den Bereichen Heizung, Lüftung, Klimatisierung und erneuerbare Energien bekannt ist. Das Unternehmen, dessen Geschichte bis ins Jahr 1963 zurückreicht, hat sich zu einem wichtigen Akteur in diesem Bereich entwickelt und bietet eine umfassende Produktpalette an, darunter Heizkessel, Wärmepumpen, thermische Solaranlagen und fortschrittliche Gebäudetechnik. Die Wolf GmbH ist weithin anerkannt für ihr Engagement für Energieeffizienz und nachhaltige Praktiken, was sie zu einer führenden Wahl für innovative HLK-Lösungen auf nationaler und globaler Ebene macht.

Der proaktive Ansatz des Kunden bei der Modernisierung von Altanwendungen und der Digitalisierung von Betriebsprozessen zeigt sein Engagement, in einem dynamischen digitalen Umfeld wettbewerbsfähig zu bleiben.

Die vielfältigen Herausforderungen und potenziellen Hürden, mit denen Unternehmen bei der Einführung der DevOps-Methodik im Rahmen ihrer Digitalisierungsinitiative konfrontiert werden können, müssen mit einem gemeinsamen Ziel vor Augen von allen Teams angegangen werden, da es sich um einen Prozess handelt, der ein Unternehmen von oben bis unten betrifft. Zu den wichtigsten Herausforderungen gehören kulturelle Veränderungen, Technologieintegration, funktionsübergreifende Teamzusammenarbeit, organisatorische Widerstände, Sicherheit und Einhaltung von Vorschriften, Beobachtbarkeit, Skalierbarkeit und, was vielleicht am wichtigsten ist, kontinuierliche Verbesserung auf der Grundlage eines Systems mit klarer Kommunikation und gutem Feedback.

Herausforderungen

Stabilität des Systems

  • Sicherstellen, dass es sich bei keiner Änderung um eine „brechende Änderung“ handelt, d.h. dass sie den Zustand des Systems so verändert, dass andere Komponenten/Anwendungen davon betroffen sind

Sicherheit:

  • Sicherstellung einer Abgrenzung zwischen verschiedenen Komponenten, die durch ihre Rolle im Entwicklungsprozess repräsentiert werden: gemeinsam genutzte Ressourcen, Ressourcen, die in einer Umgebung kompiliert werden, die zum Testen von Änderungen, zur Integration neuer Änderungen und für die Produktionsumgebung verwendet wird
  • Einführung eines klar definierten rollenbasierten Ansatzes für die Verwaltung von Ressourcen

Skalierbarkeit

  • Sicherstellen, dass die Systeme über Kontrollen verfügen, um zu vermeiden, dass die Ressourcen durch einige fehlerhaft definierte Einsätze belastet werden, wodurch andere Einsätze, die in derselben Umgebung korrekt funktionieren, benachteiligt werden

Kontinuierliche Verbesserung

  • Sicherstellen, dass Entwickler ein grundlegendes Verständnis für die Prozesse rund um die Entwicklung und Bereitstellung einer Anwendung in einer containerisierten Umgebung haben

Lösung

Die Einführung von Container-Umgebungen bietet eine Reihe von Vorteilen für den Entwicklungsprozess eines Unternehmens, so dass sie in der modernen Softwareentwicklung immer beliebter werden. Hier sind einige wichtige Gründe, warum wir die Containerisierung eingesetzt haben:

DevOps-Ausrichtung

  • Container passen gut zu den DevOps-Prinzipien, da sie die Zusammenarbeit zwischen Entwicklungs- und Betriebsteams fördern.
  • Sie ermöglichen Infrastructure as Code (IaC) und können mit Container-Orchestrierungs-Tools wie Kubernetes verwaltet werden, was die Automatisierung und kontinuierliche Bereitstellung erleichtert.

Sicherheit und Isolierung

  • Container bieten ein gewisses Maß an Sicherheit und Isolierung, wobei jeder Container als separater Prozess läuft.
  • Sie tragen dazu bei, Sicherheitslücken einzudämmen und den Explosionsradius im Falle von Schwachstellen zu verringern.

Ökosystem und Gemeinschaft

  • Container verfügen über ein lebendiges Ökosystem mit einer umfangreichen Bibliothek vorgefertigter Images und einer starken Community-Unterstützung
  • Dadurch wird es für Unternehmen einfacher, Lösungen und Unterstützung für Herausforderungen im Zusammenhang mit Containern zu finden.

Konsistenz und Übertragbarkeit

  • Container kapseln eine Anwendung und alle ihre Abhängigkeiten und sorgen dafür, dass die Software in verschiedenen Umgebungen konsistent läuft.
  • Diese Konsistenz von der Entwicklung bis zur Produktion verringert das Problem, dass es auf meinem Rechner funktioniert, und macht die Bereitstellung zuverlässiger.

Ressourceneffizienz

  • Container teilen sich den Kernel des Host-Betriebssystems, was bedeutet, dass sie leichtgewichtig sind und weniger Ressourcen verbrauchen als herkömmliche virtuelle Maschinen.
  • Diese effiziente Ressourcennutzung ermöglicht eine höhere Dichte und Kosteneinsparungen bei der Ausführung von Anwendungen im großen Maßstab.

Schnellere Entwicklung und Prüfung

  • Container können schnell in Betrieb genommen werden, wodurch sich die Zeit für die Einrichtung von Entwicklungs- und Testumgebungen verkürzt.
  • Entwickler können produktionsähnliche Umgebungen problemlos auf ihren lokalen Rechnern replizieren und so den Entwicklungszyklus beschleunigen.

Skalierbarkeit

  • Container eignen sich gut für Microservices-Architekturen und lassen sich leicht nach oben oder unten skalieren, um unterschiedliche Arbeitslasten zu bewältigen. Diese Skalierbarkeit ist entscheidend für Anwendungen, die Verkehrsspitzen bewältigen müssen.

Kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD)

  • Container lassen sich nahtlos in CI/CD-Pipelines integrieren
  • Entwickler können ihre Anwendungen in Containern verpacken, die dann konsistent über automatisierte Pipelines bereitgestellt werden können, wodurch Bereitstellungsfehler reduziert und die Geschwindigkeit der Veröffentlichung erhöht wird.

Verwendete Technologien

Azure-Cloud-Dienste
Terraform
Kubernetes
Argo CD
GitHub
Azure DevOps-Dienste
ELK
Apache Kafka
MQTT
Open Policy Agent

Ergebnisse

Trotz der Herausforderungen ist es uns gelungen, ein stabiles Ökosystem von Kubernetes-Clustern aufzubauen, die jeweils auf eine bestimmte Umgebung (Test, Staging, Produktion) zugeschnitten sind und von einem zentralen Standort aus verwaltet werden. Dies geschieht mit Hilfe eines „Single Source of Truth“-Ansatzes, der skalierbar ist und über Funktionen wie Backups und Wiederherstellungen (auf der Grundlage vorab genehmigter interner Prozesse), Beobachtbarkeit, Rückverfolgbarkeit und Protokollierung verfügt, die vom Anwendungsverhalten bis hin zur Kubernetes-API und Ressourcennutzung reichen.

Blickwinkel

Im Nachhinein betrachtet ist unsere Partnerschaft mit der Wolf GmbH die Essenz von Anpassungsfähigkeit und Innovation. Sie zeigt unser Engagement bei der Bewältigung vielschichtiger Herausforderungen und unsere Fähigkeit, unsere Kunden in eine flexiblere und effizientere digitale Zukunft zu führen. Gemeinsam haben wir Pionierarbeit geleistet, die nicht nur den Betrieb modernisiert, sondern auch die Voraussetzungen für nachhaltiges Wachstum und Innovation geschaffen hat.

Benötigen Sie eine maßgeschneiderte Softwarelösung für Ihr Unternehmen?

Reden wir darüber