Home QA & testing DevOps-Prozesse bei groupXS

DevOps-Prozesse bei groupXS

DevOps – automatisierte Entwicklungs- und Deployment-Prozesse in Softwareprojekten

Ein Erfahrungsbericht: Wie man die Time-to-Market für Applikationen wesentlich verkürzen kann.

  • Tobias Hertkorn
    Geschäftsführer
  • Projektlaufzeit
    3 Monate
  • Techstack
    Kubernetes, 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 Tools

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?

DevOps Tools

  1. Der Entwickler lädt den Quellcode in Git hoch.
  2. CI-Tool startet (Jenkins / GitHub-Aktionen) für Frontend / Backend / Datenbank
  3. Lint
  4. Compile
  5. Unit Test
  6. Docker-Image erstellen
  7. Hochladen der Docker-Image in die Repository
  8. Docker-Images werden auf Kubernetes-Cluster bereitgestellt (je ein Image pro Frontend / Backend / DB)
  9. 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 Tools

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?

DevOps Tools

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 uDevOpsmfassenden 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

QA Tester, qa testers, QA Testing, Software Testing, Testing Software, Smoke Test, STLC, IT Nearshoring, Nearshoring, Nearshore-Softwareentwicklung, nearshoring software, it testsit nearshoring, software-refactoring, Software-Lebenszyklus, testmanagement, Testautomatisierung, software testen, QA Testing Software, DevOps Service, DevOps Beratung

Siehe die Entwicklung von Technosoft

1977 Heute
1998
Projektmanagementsoftware
1983
Markenregistrierung Technosoft
1984
Start der Entwicklung CAD Software
2000
Übernahme der Tätigkeiten von Brunel und Niederlassung in Deventer
2007
Technosoft Deutschland
2009
Technosoft Moldawien
2015
Technosoft Rumänien
1993
Von DOS zur Windows-Plattform
2001
Start Verkauf AxisVM Software
2014
Einführung 3Muri Erdbebensoftware + erste KOMO Zertifizierung
2013
Start Business Unit Qualitätssicherung & Testing
2011
Übergang zu Eurocodes
2012
Start von Nearshoring unter dem Markennamen In-shore
2006
Technosoft von Brunel verkauft durch ein Management Buy Out
2016
Integration der Business Units in eine einzige Geschäftseinheit
2017
Zusammenfügung aller Aktivitäten unter dem Namen Technosoft
2018
Technosoft ist aktiv in 6 europäischen Länder