-
Tobias HertkornGeschäftsführer
-
Projektlaufzeit3 Monate
-
TechstackKubernetes, Docker, Rancher,
„Grüne Projekte“
Als führender Anbieter für Lösungen im erneuerbaren Energiesektor liefert die Firma groupXS aus Bayreuth professionelle Lösungen zur Datenerfassung und Digitalisierung. Diese werden bei Unternehmen unterschiedlicher Größenordnung von KMU bis Großkonzernen eingesetzt: ein interessanter DevOps Business Case!
Um der rasanten technologischen Entwicklungsdynamik standzuhalten und der Expansion der Geschäftsfelder nachzukommen, hat die groupXS sich dafür entschieden, die Entwicklungs- und QA-Prozesse der eigenen Entwicklungsabteilung genauer unter die Lupe zu nehmen. Da die Softwareentwicklung über mehrere Standorte verteilt ist, wurde als erstes die Verbesserung und Optimierung der Deployment-Prozesse für neue Releases der durch groupXS entwickelten Anwendungen mit Einsatz von DevOps vorgenommen. Zu diesem Zweck wurde der groupXS ein erfahrener DevOps-Engineer für diese neue Herausforderung vorgeschlagen.
groupXS hat bereits Erfahrung im Qualitätssicherungsbereich mit Technosoft gesammelt, indem die Testautomatisierungssparte komplett neu aufgestellt wurde, eine Einführung in die Infrastruktur oder das Organigramm war nicht notwendig.
Nach einigen Meetings zwischen den Projektteilnehmern wurde entschlossen, das Pilotprojekt „DevOps-Integration“ gemeinsam anzugehen.
DevOps, DevOps Engineers, DevOps Engineer, DevOps Prozess, DevOps Prinzipien, DevOps Tools, DevOps Beratung, DevSecOps, Was ist DevOps, DevOps Vorteile, qa testers, Software-Entwicklung Dortmund, testmanagement, software testen
Die Herausforderungen
DevOps kann flächendeckende Aufgaben für IT-Unternehmen lösen. Es gab anfangs mehrere dringende Herausforderungen, die schnellstens gelöst werden sollten.
Die Integration neuer Entwickler ins laufende Softwareentwicklungsprojekt verlief träge.
- Der Kommunikationsaufwand zwischen neuen und bestehenden Entwicklern in einem laufenden Softwareentwicklungsprojekt überschritt die produktive Entwicklungszeit.
- Die Entwicklung von neuen Features verlief in langen Zyklen (kontinuierliche Integration).
- Neue Releases wurden langsam kompiliert und freigegeben (kontinuierliche Lieferung).
- Das Entwicklungsteam musste kundenspezifische Projekte überwiegend manuell anpassen.
- Die Codequalität war auf Grund fehlender Unit- und Integrationstests gering.
DevOps, DevOps Engineers, DevOps Engineer, DevOps Prozess, DevOps Prinzipien, DevOps Tools, DevOps Beratung, DevSecOps, Was ist DevOps, DevOps Vorteile, qa testers, Software-Entwicklung Dortmund, testmanagement, software testen
Toolstack
DevOps basiert auf einer offenen und transparenten Zusammenarbeitskultur, was gleichbedeutend mit der Verwendung von „Open Source“-Prinzipien und Tools ist. Bei diesem Projekt wurde der Fokus also komplett auf ein “Fully Open Source Toolstack“ gesetzt. Um eine professionelle Abwicklung zu gewährleisten, wurden u.a. folgende Tools eingesetzt:
- Kubernetes
- Docker
- Rancher
- Ansible
- GitHub
- Jira
- Azure Pipelines
- Jenkins
- Selenium, Selenium Grid u.v.m.
Wie verläuft ein Multistage-Build unter Verwendung von Docker?
- Der Entwickler lädt den Quellcode in Git hoch.
- CI-Tool startet (Jenkins / GitHub-Aktionen) für Frontend / Backend / Datenbank
- Lint
- Compile
- Unit Test
- Docker-Image erstellen
- Hochladen der Docker-Image in die Repository
- Docker-Images werden auf Kubernetes-Cluster bereitgestellt (je ein Image pro Frontend / Backend / DB)
- UI-Tests bestätigen die Qualität des Codes und melden den Erfolg an den Entwickler oder den Neustart des Prozesses mit Hinweis auf Git.
In der Regel wird dieser Prozess von einem Mitarbeiter manuell ausgeführt. Uns ist es jedoch gelungen, den Prozess zu einem ausführbaren Skript zu automatisieren.
Wie sieht ein DevOps-Prozess aus?
DevOps ist ein Prozess, der sich in der agilen Entwicklung festgeankert hat. Da eines der agilen Prinzipien „frühe und kontinuierliche Lieferung wertvoller Software“ lautet, ist CI/CD (Continuous Integration / Continuous Deployment) maßgeblich für DevOps-Teams. Ein wichtiger Aspekt dabei ist also der kontinuierliche (Continuous) Feedback-Zyklus, den ein DevOps-Prozess voraussetzt.
Darstellung des DevOps-Lebenszykluss als Prozess
Gelieferter Code wird in diesem Prozess also direkt freigegeben, getestet und bei Bedarf wieder an das Entwicklungsteam zur Fehlerbehebung zurückgemeldet. Zusätzlich findet ein konstantes Monitoring statt, unter Berücksichtigung von Leistung, Infrastrukturgegebenheiten und möglichen Risiken.
DevOps, DevOps Engineers, DevOps Engineer, DevOps Prozess, DevOps Prinzipien, DevOps Tools, DevOps Beratung, DevSecOps, Was ist DevOps, DevOps Vorteile, qa testers, Software-Entwicklung Dortmund, testmanagement, software testen
DevOps und Container
DevOps beschleunigt den Entwicklungsprozess vom Konzept bis hin zur Umsetzung und Release, da DevOps auf der Automatisierung von Routineaufgaben und Standardisierung von Umgebungen über den gesamten Applikationslebenszyklus basiert. In diesem Zusammenhang ermöglichen Container die Schaffung standardisierter Umgebungen (Kubernetes), die integrierte Automatisierungen und beliebige Infrastrukturen unterstützen.
Die Entscheidung für Kubernetes in unserem Projekt war also selbstverständlich, da Entwicklungsteams oft mithilfe von einer Microservice-Architektur kleinere Funktionsbereiche entwickeln können und entsprechende APIs mit diesen Services verknüpfen. Um einen hohen Aufwand für die Verwaltung der Services und APIs zu vermeiden, setzt man auf Clustering und Container, damit Prozesse beschleunigt und Umgebungen einfach und flexibel skaliert werden können.
Was haben wir mit diesem Projekt erreicht?
Hauptziel eines DevOps-Projekts ist es, dass sich alle Projektteilnehmer gegenseitig verstehen, unterstützen und zur Vervollständigung der Knowledge-Base des Projekts beitragen. Das Wissen soll nicht in einzelnen Bereichen und Abteilungen eines IT-Unternehmens abgelagert werden, sondern allen Teilnehmern offen und transparent zur Verfügung stehen.
Durch die Schaffung einer professionellen Projektstruktur, konnten innerhalb einigen Monaten folgende Vorteile erreicht werden:
- Schnellere Time-to-Market dank reduzierten Release-Zyklen
- Nachweisbar bessere Quellcodequalität
- Nahtlose Komponenten- und Container-Integration
- Verbesserte Testabdeckung
- Wiederverwendbare Container
- Prozessautomatisierung bis ins kleinste Detail
Das DevOps-Projekt in Zahlen
- Laufzeit - 3 Monate
- Prozessbeschleunigung – 60%
- Multistage Build – 1 Schritt anstatt 14 Schritte
- Tool-Ausgaben – 0 Euro
Die Stakeholder bei groupXS
„Dank der umfassenden Digitalisierung von Serviceprozessen in Unternehmen und des kontinuierlichen Vertrauens unserer Kunden hat sich unser Team im vergangenen Jahr verdoppelt und wächst seitdem auch weiterhin. Dank moderner Tools für die verteilte Teamarbeit ist die Zusammenarbeit trotz entfernter Standorte erfrischend einfach und wir können die Vorteile des asynchronen Arbeitens voll ausschöpfen.“
Tobias Hertkorn, Geschäftsführer bei group XS
DevOps, DevOps Engineers, DevOps Engineer, DevOps Prozess, DevOps Prinzipien, DevOps Tools, DevOps Beratung, DevSecOps, Was ist DevOps, DevOps Vorteile, qa testers, Software-Entwicklung Dortmund, testmanagement, software testen