Kanban und Kubernetes
Ausgangslage
Die Novadex GmbH entwickelt Marketingportale für Großunternehmen.
Nach dem erfolgreichen Aufbau der Software und der Marke hatte sich die Entwicklungsgeschwindigkeit verringert. Außerdem war die Betriebsinfrastruktur in die Jahre gekommen und musste erneuert werden.
100 DAYS wurde beauftragt, Verbesserungspotentiale aufzudecken, zu priorisieren und in der Umsetzung zu begleiten.
Ablauf
In einem ersten Schritt hat 100 DAYS in Interviews und Reviews von Sourcecode und Dokumentation den aktuellen Stand der Entwicklung erhoben. Als kritisches Thema wurde dabei die Moderninsierung und Flexibilierung des Hostings identifiziert.
Nach Analyse der Hosting-Anforderungen hat 100 DAYS eine Umstellung auf Kubernetes empfohlen. Die Anwendung wurde dann gemeinsam mit dem Novadex Team zunächst in Services unterteilt und in Container integriert. Danach hat 100 DAYS erste Helm-Charts für ein Deployment der Anwendung auf Kubernetes erstellt und mit dem Team weiterentwickelt. Gemeinsm mit dem Novadex Team wurden in der Folge alle Komponenten der alten Infrastruktur durch Kubernetes-Konzepte abgelöst, die zunächst in einer Entwicklungsumgebung zum Einsatz kamen. Entwicklung und Tests wurden auf Kubernetes ausgeführt während die Produktivumgebung noch im alten Umfeld lief.
Anschließend haben 100 DAYS und Novadex gemeinsam Code-Hosting Optionen evaluiert, um das bestehende Subversion-System abzulösen. Die Wahl fiel auf gitlab und die bestehenden Build- und Deployment Prozesse wurden von der alten Jenkins Löung auf eine gitlab-ci Lösung umgsetellt.
Im Verlauf dieser Umstellungen wurde klar, dass die bisherige Scrum-Basierte Entwicklungsmethodik den Gesamtanforderungen nicht mehr entsprach. 100 DAYS hat ein Kanban-gestütztes System empfohlen, das von Anforderungserhebung bis Rollout und Bugfixing alle Teilprozesse in einen Gesamtprozess zusammenführte. Dieses System wurde schrittweise eingeführt und zuletzt noch durch einen kontinuierlichen Architektur-Verbesserungsprozess ergänzt.
Beitrag 100 DAYS
Analyse der bestehenden Software, der Produktivumgebung und der Prozesse
Konzeption und Umsetzungs-Unterstützung bei Containerisierung und Kubernetes-Einführung
Auswahl und Umzug der Code-Verwaltung von SVN auf git und gitlab
Schrittweise Einführung eines optimierten Gesamtprozesses auf Kanban Basis
Begleitend jeweils Schulungen des Teams bezüglich der einzelnen Themengebiete
Kontinuierliches Coaching
Ergebnisse
Flexibles Hosting auf Standard-Infrastruktur (managed Kubernetes)
Einfache horizontale Skalierung
Abgrenzung von Services
On-Premise Option basierend auf Standard-Infrastruktur
Containerisierung der Anwendung, dadurch Einführung von Service-Denkweise
Ablösung von NFS durch S3
Umstellung auf git und gitlab
Hosting in der Cloud reduziert Komplexität und Maintenance
Einfachere Integration von Tools zur statischen Codeanalyse (Qualität und Security)
Einfachere Einbindung von Remote-Entwicklern
Höhere Automatisierung durch GitOps
Einführung von Feature Branches und Pull-Requests
Kanban-Einführung
Fokus auf “Flow” statt Auslastung
Transparenter Gesamtprozess
Reduktion der Mittleren Durchlaufzeit von Workitems auf 10 Tage
Mehr Vertrauen und bessere Vorhersagequalität in der Entwicklung