Als führender Lösungsanbieter im Bereich nachhaltige Energie bietet groupXS professionelle Lösungen zur Datenerfassung und Digitalisierung. Diese kommen in Unternehmen unterschiedlicher Größe zum Einsatz, vom Mittelständler bis zum Großkonzern. Eine herausfordernde Situation im Bereich DevOps!
Um der rasanten Dynamik der technologischen Entwicklung besser gerecht zu werden und das Wachstum seiner Aktivitäten zu erleichtern, hat sich groupXS entschieden, die Entwicklungs- und Qualitätssicherungsprozesse der eigenen Entwicklungsabteilung weiter zu professionalisieren. Da die Softwareentwicklung über mehrere Standorte verteilt ist, bestand der erste Schritt darin, mithilfe eines DevOps-Teams die Implementierungsprozesse für neue Releases der von groupXS entwickelten Anwendungen zu verbessern und zu optimieren.
GroupXS hatte zuvor mit Addcode Erfahrungen im Bereich Qualitätssicherung und Testautomatisierung gesammelt, sodass eine Einführung in die Infrastruktur und Einblick in die Organisation nicht notwendig war. Nach einigen Treffen zwischen den Projektbeteiligten wurde beschlossen, gemeinsam das Pilotprojekt „DevOps Integration“ anzugehen. Auf dieser Grundlage schlug Addcode einen erfahrenen DevOps-Ingenieur vor, um groupXS bei dieser neuen Herausforderung zu unterstützen und ein professionelles DevOps-Team zusammenzustellen.
Die Herausforderungen
Ein DevOps-Team kann verschiedene Aufgaben von IT-Unternehmen unterstützen. Im Fall von groupXS bedeutete dies zunächst die Lösung mehrerer dringender Herausforderungen:
Die Integration neuer Entwickler in das laufende Softwareentwicklungsprojekt verlief schleppend.
Der Kommunikationsaufwand zwischen neuen und bestehenden Entwicklern in einem laufenden Softwareentwicklungsprojekt nahm zu viel Zeit in Anspruch.
Die Prozesse rund um die Entwicklung neuer Funktionalitäten waren zu lang (kontinuierliche Integration).
Neue Veröffentlichungen wurden langsam vorbereitet und ausgeliefert (kontinuierliche Lieferung).
Das Entwicklungsteam musste kundenspezifische Wünsche weitgehend manuell anpassen.
Die Codequalität war aufgrund fehlender Unit- und Integrationstests gering.
Werkzeugstapel
DevOps basiert auf einer offenen und transparenten Kultur der Zusammenarbeit, was der Nutzung von „Open Source“-Prinzipien und -Tools für die Softwareentwicklung gleichkommt. DevOps-Teams nutzen Tools in der Open-Source-Umgebung, um eine verbesserte Zusammenarbeit zu ermöglichen. Bei diesem Projekt lag der Fokus auf einem „vollständig Open-Source-Tool-Stack“, der die Zusammenarbeit fördert. Um eine professionelle Abwicklung zu gewährleisten, nutzte das DevOps-Team unter anderem folgende bereits genutzte und neue Software:
Dieser Vorgang wird in der Regel manuell von einem Mitarbeiter durchgeführt. Es ist uns jedoch gelungen, den Prozess in ein ausführbares Skript zu automatisieren. Dies führt unter anderem zu einem durchgängigen Prozess, höherer Qualität und automatisierten Tests, einschließlich kontinuierlicher Integration.
Ein Multistage-Build mit Docker
Wie funktioniert ein Multistage Build mit Docker und welche Schritte sind erforderlich?
Der Entwickler lädt den Quellcode auf Git hoch.
CI-Tool startet (Jenkins/GitHub-Aktionen) für Frontend/Backend/Datenbank
Schleife
Kompilieren
Gerätetest
Docker Image einrichten
Laden Sie das Docker-Image in das Repository hoch
Docker-Images werden auf Kubernetes-Clustern bereitgestellt (ein Image pro Frontend/Backend/DB)
UI-Tests bestätigen die Codequalität und melden den Erfolg dem Entwickler oder starten den Prozess unter Bezugnahme auf Git neu.
werden auf Kubernetes-Clustern ausgeliefert (ein Image pro Frontend/Backend/DB)
Dieser Vorgang wird in der Regel manuell von einem Mitarbeiter durchgeführt. Es ist uns jedoch gelungen, den Prozess in ein ausführbares Skript zu automatisieren.
Wie sieht ein DevOps-Prozess aus?
DevOps ist ein Prozess, der fest in der agilen Entwicklung verankert ist. Da eines der agilen Prinzipien die „frühzeitige und kontinuierliche Bereitstellung wertvoller Software“ ist, ist CI/CD (Continuous Integration/Continuous Deployment) für DevOps-Teams von entscheidender Bedeutung. Ein wichtiger Aspekt dabei ist der (kontinuierliche) Feedback-Zyklus, den ein DevOps-Prozess benötigt, damit der gelieferte Code freigegeben und getestet wird. Bei Bedarf kann auch eine Meldung an das Entwicklungsteam zur Fehlerbehebung erfolgen. Darüber hinaus erfolgt eine ständige Überwachung unter Berücksichtigung der Leistung, der Infrastrukturbedingungen und möglicher Risiken. Dies gewährleistet eine kontinuierliche Umsetzung innerhalb der Softwarebranche, hochwertige Software und eine einheitliche Kundenorientierung.
Das multidisziplinäre Team gewährleistet daher:
Kontinuierliche Integration
Kontinuierliche Lieferung
Kultureller Wandel als integraler Bestandteil
Innovative Produkte
DevOps und Container
DevOps beschleunigt den Entwicklungsprozess vom Konzept bis zur Implementierung und Veröffentlichung. Denn DevOps basiert auf der Automatisierung von Routineaufgaben und der Standardisierung von Umgebungen über den gesamten Anwendungslebenszyklus. Sogenannte Container ermöglichen die Erstellung standardisierter Umgebungen (Kubernetes). Kubernets unterstützen integrierte Automatisierung und jede Art von Infrastruktur.
Die Entscheidung, Kubernetes im DevOps-Teamprojekt einzusetzen, war daher eine natürliche Entscheidung. Teilweise, weil Entwicklungsteams häufig eine Microservice-Architektur verwenden, um kleinere Funktionsbereiche und zugehörige APIs zu entwickeln und diese mit den Diensten zu verbinden. Um hohe Kosten für die Verwaltung der Dienste und APIs zu vermeiden, setzt man auf Clustering und Container. Dadurch lassen sich Prozesse beschleunigen und Umgebungen einfach und flexibel skalieren.
Was haben wir mit diesem Projekt erreicht?
Das Hauptziel eines DevOps-Projekts besteht darin, dass alle Projektbeteiligten einander verstehen, sich gegenseitig unterstützen und dazu beitragen, möglichst viel Wissen über das Projekt bereitzustellen. Wissen muss geteilt werden und sollte nicht nur in spezialisierten (IT-)Abteilungen eines Unternehmens verfügbar sein. Es muss allen Beteiligten offen und transparent zugänglich sein. Durch die Schaffung einer professionellen Projektstruktur durch das DevOps-Team können innerhalb weniger Monate folgende Vorteile erzielt werden:
Nahtlose Integration von Komponenten und Containern
Verbesserte Testabdeckung
Mehrwegbehälter
Prozessautomatisierung bis ins kleinste Detail
In Zahlen ausgedrückt:
Dauer - 3 Monate
Prozessbeschleunigung – 60 %
Mehrstufiger Aufbau – 1 Schritt statt 14 Schritte
Werkzeugkosten: 0,00 €
Tobias Hertkorn, Geschäftsführer von groupXS sagt dazu:
„Aufgrund der zunehmenden Digitalisierung von Serviceprozessen in Unternehmen und dem anhaltenden Vertrauen unserer Kunden hat sich unser Team im vergangenen Jahr verdoppelt und ist seitdem kontinuierlich gewachsen. Dank moderner Tools für verteilte Teamarbeit ist die Zusammenarbeit mit Addcode erfrischend einfach. Trotz der Tatsache, dass wir remote arbeiten müssen, konnten wir die Vorteile dieser Zusammenarbeit voll ausnutzen.“
Möchten Sie mehr über DevOps erfahren?
Wenn Sie mehr über DevOps und seine Bedeutung für Ihr Unternehmen erfahren möchten, können Sie sofort einen Termin für ein Telefoninterview oder ein (digitales) Meeting vereinbaren.