Milestones DevOps-Transformation mit Platform Engineering

Milestone Systems wurde 1998 von den dänischen Ingenieuren John Blem und Henrik Friborg Jacobsen gegründet und ist ein führender Anbieter von plattformunabhängiger Videomanagement-Software (VMS). Milestone Systems hat seinen Hauptsitz in Brøndby, Dänemark, und ist mit über 30 Niederlassungen weltweit vertreten. Das Unternehmen hat sich auf datengesteuerte Videotechnologielösungen spezialisiert, die Unternehmen in verschiedenen Branchen unterstützen, darunter Behörden, Stadtüberwachung, Einzelhandel, Transportwesen, Finanzen, Spiele und Bildung.
Die Herausforderung: Umgestaltung der Softwareentwicklung unter Wahrung von Sicherheit und Compliance
Milestone trat mit einer modernen und ehrgeizigen Technologiestrategie an Eficode heran und sah sich einer vielschichtigen Herausforderung gegenüber, die Softwareentwicklung, Sicherheit und Compliance umfasste. Es musste sichergestellt werden, dass die bei globalen Kunden eingesetzte Software den höchsten Sicherheitsstandards entsprach, was bedeutete, dass Schwachstellen vermieden werden mussten, insbesondere solche, die von Drittanbieter- und Open-Source-Komponenten herrührten, die ein robustes Binärscanning und Abhängigkeitsmanagement erforderten. Die angestrebte Transformation umfasste die Umstellung auf eine agilere und skalierbarere Architektur, die Abschaffung der monolithischen Infrastruktur und die Einführung einer lose gekoppelten Architektur.
Das Kernstück dieser Umstellung war die Migration zu GitHub Enterprise, die einen Wechsel von TeamCity- und TFS-Systemen und den Aufbau von Pipelines, die Bewältigung der Komplexität der großen und komplexen Codebasis sowie benutzerdefinierte Konfigurationen erforderte. Die Einhaltung der United States Executive Order 14028 zur Cybersicherheit (in Bezug auf Rückverfolgbarkeit, Datenresidenz und Software-Lieferkette) stand im Vordergrund der Ziele von Milestone, um neue Möglichkeiten auf dem US-Markt zu erschließen und das Umsatzwachstum zu fördern.
Eficode wurde mit dem Aufbau einer neuen, konformen Toolchain beauftragt, um das ehrgeizige Wachstum von Milestone zu unterstützen, während die bestehende Infrastruktur in die Cloud migriert und die umfangreichen Codebasen erneuert wurden. Eficode musste sicherstellen, dass die Produkte die strengen gesetzlichen Anforderungen erfüllen. Dies bedeutete, dass die Teams in den Bereichen Entwicklung, Platform-Engineering und Infrastruktur nahtlos auf dieses Ziel hinarbeiten sollten. Die Migrationsstrategie sollte eine Kultur der kontinuierlichen Integration und Bereitstellung fördern und gleichzeitig den Abbau und die Umstrukturierung der technischen Schulden erleichtern. Ziel war es, container-, microservice- und trunk-basierte Entwicklungsverfahren zu implementieren, um Agilität und Reaktionsfähigkeit zu verbessern.
Schaffung eines kohärenten, hochleistungsfähigen Ökosystems
Der Vorschlag von Eficode zielte darauf ab, die Versionskontrolle und die CI/CD-Prozesse zu modernisieren, um eine agilere und skalierbarere Architektur zu ermöglichen. Ein wesentlicher Teil dieser DevOps-Transformation bestand in der Schaffung einer einzigen Lösung für die Erstellung aller Komponenten unter Verwendung einer trunk-basierten Entwicklung. Dieser Ansatz vereinfachte die Verzweigung und ermöglichte einen Self-Service für die Entwicklung und das Feature Branching.
Eficode erfüllte die Infrastruktur- und SCM-Anforderungen von Milestone, um sicherzustellen, dass die On-Premise-, Cloud- und verwalteten Dienste robust und konform sind. Es ging nicht nur darum, für heute zu bauen, sondern für eine Zukunft, in der die Produkte und Prozesse von Milestone marktreif, sicher und skalierbar sind und mit den Kernwerten und der langfristigen Vision des Unternehmens übereinstimmen.
Das Projekt stand vor verschiedenen Herausforderungen bei der Modernisierung der Softwareentwicklung mit integrierter Sicherheit und Compliance. Ausgangspunkt war ein altehrwürdiges und komplexes Versionskontroll- und Build-System in TFS, das in der gesamten Entwicklungsorganisation erhebliche Schwierigkeiten verursachte. Die Teams kämpften mit der Selbstbedienung bei Verzweigungsstrategien und der Verwaltung eines ineffizienten CI/CD-Prozesses in TeamCity.
Da ein einziges Build-Team diesen Prozess unterstützte, kam es häufig zu Engpässen, und die Testautomatisierung war monolithisch, was eine große Abhängigkeit von der zukünftigen Effizienz und Nachhaltigkeit zur Folge hatte. Der Großteil der Testautomatisierung war End-to-End, und die Abhängigkeit von der Benutzeroberfläche führte zu langen Ausführungszeiten und verlängerte die Feedbackschleife zurück zur Entwicklung. Darüber hinaus war die Sicherstellung der Konformität, insbesondere für den US-Markt, entscheidend für die Erschließung neuer Geschäftsmöglichkeiten und mit der bestehenden Toolchain nur schwer zu erreichen. Die Anzahl der Entwickler bei Milestone belief sich auf insgesamt mehr als 400 Benutzer.
Die Lösung: Versionskontrolle, CI/CD und verbesserte Testprozesse
Um die Einhaltung der US Executive Order 14028 zu unterstützen und die architektonische Modernisierung voranzutreiben, ging Eficode eine Partnerschaft mit Milestone Systems ein, um eine sichere, skalierbare und zukunftssichere Entwicklungsumgebung bereitzustellen. Die umfassende Toolchain-Migration, die innerhalb von 8 Monaten durchgeführt wurde, optimierte die Zusammenarbeit, verbesserte die Sicherheit der Software-Lieferkette und versorgte die Teams von Milestone mit modernen CI/CD-Funktionen und nachhaltigen Entwicklungspraktiken.
Bei der Versionskontrolle konzentrierte sich Eficode auf die trunk-basierte Entwicklung, die Migration auf die GitHub Enterprise Platform und die Aktivierung von Self-Service:
Trunk-basierte Entwicklung
- Implementierung einer trunk-basierten Entwicklungsstrategie zur Rationalisierung des Entwicklungsprozesses.
- Vereinfachte Verzweigungsstrategien, die es den Teams erleichtern, ihren Code zu verwalten und effektiv zusammenzuarbeiten.
Umstellung auf die GitHub Enterprise Plattform
- Umstellung von TFS auf GitHub Enterprise Platform, um erweiterte Versionskontrollfunktionen zu nutzen.
- Zerlegung der Monorepo in logische Komponenten, die sich jeweils in einem eigenen Repository befinden.
Befähigung zur Selbstverwaltung
- Befähigung der Teams zur Verwaltung ihrer Zweige, Förderung der Autonomie und Verringerung der Abhängigkeit von zentraler Kontrolle. Einführung von Feature-Branching, um die parallele Entwicklung zu unterstützen und die Freigabe neuer Funktionen zu beschleunigen.
Für CI/CD konzentrierten wir uns auf den Aufbau einer einheitlichen Lösung und Kundenfunktionen sowie auf eine unterstützende Teamrolle und verbesserte Testprozesse:
Einheitliche Build-Lösung
- Es wurde eine einzige, einheitliche CI/CD-Lösung für die Erstellung aller Komponenten des Kernprodukts geschaffen, um Konsistenz und Compliance zu gewährleisten.
- Migration der CI/CD-Pipelines von TeamCity zu GitHub Actions, Verbesserung der Integrations- und Automatisierungsmöglichkeiten.
Unterstützende Rolle des Build-Teams
- Das Build-Team wurde von direkten Kontrolleuren und Betreibern der Toolchain zu einer Plattform-Engineering-Rolle umgewandelt.
- Das Build-Team stellt nun Richtlinien und Assets zur Verfügung und fungiert als Zentrum für die Befähigung, was einen reibungsloseren Entwicklungsprozess ermöglicht.
Darüber hinaus konzentrierte sich Eficode auf verbesserte Testprozesse, die sich auf die integrierte Testautomatisierung konzentrierten, die nun die neuen CI/CD-Pipelines steuert und kontinuierliche Tests und Qualitätssicherung gewährleistet. Die geringere Abhängigkeit von UI-basierten Tests zur Verkürzung von Ausführungszeiten und Feedback-Schleifen verbesserte die Gesamteffizienz.
Die Implementierung der Lösung wurde in enger Zusammenarbeit zwischen Milestone und Eficode durchgeführt. Dies ermöglichte es Eficode, schnell auf die Herausforderungen zu reagieren und gemeinsam die Wissensbasis auf Seiten von Milestone aufzubauen.
"Die Zusammenarbeit mit Eficode war für Milestone sehr wertvoll und hat zu erheblichen Fortschritten geführt. Ihr Fachwissen und ihre Fähigkeit, auf der Grundlage des Inputs unseres Teams entscheidende Entscheidungen zu treffen, haben sichergestellt, dass wir die richtigen Tools ausgewählt und die bestmöglichen Prozesse implementiert haben."
Rahul Yadav, CTO, Milestone Systems
Zusammengefasst bestand die Implementierung aus:
Migration auf die GitHub Enterprise Platform
- Bewertung des aktuellen Versionskontrollsystems und Planung der Migration.
- Agile Durchführung der Migration, einschließlich der Zusammenstellung der Monorepo und der Einrichtung neuer Repositories.
- Sicherstellung der Einhaltung der EO-Cybersicherheitsanforderungen.
CI/CD-Umstellung
- Umstellung der CI/CD-Pipelines von TeamCity auf GitHub Actions.
- Wir bauten Kundenfähigkeiten auf, indem wir Teams bei GitHub Actions unterstützten, goldene Pipelines und containerisierte Runner erstellten und mit Entwicklern bei der Erstellung ihrer neuen Self-Service-Umgebungen zusammenarbeiteten.
- Die Rolle des Build-Teams wurde neu definiert, um die Entwicklungsteams zu unterstützen und zu befähigen.
Verbesserte Testprozesse
- Integration der Testautomatisierung in die neuen CI/CD-Pipelines.
- Verringerung der Abhängigkeit von UI-basierten Tests, um Ausführungszeiten und Feedback-Schleifen zu verkürzen.
Implementierung von Quellcode- und Binärscans
- Verbesserung der Codequalität und des Scannings durch die Implementierung von SonarQube.
Artifactory-Management und Open-Source-Governance mit Sonatype Nexus, Firewall und Lifecycle
Verbesserte Sicherheitslage durch Verwaltung von Geheimnissen
- Implementierung von Azure Key Vault und Cosign.
Das Ergebnis: Erhebliche Verbesserungen bei Effizienz, Agilität, Compliance und Sicherheit
Die Transformation führte zu mehreren signifikanten Verbesserungen:
Effizienz und Agilität
- Die Entwicklungsteams gewannen an Autonomie durch Self-Service Branching und CI/CD-Pipelines. Schnellere Feedback-Schleifen und weniger Engpässe verbesserten die Gesamtproduktivität.
Konformität und Sicherheit
- Die Einhaltung der US-Cybersicherheitsanforderungen wurde erreicht, was neue Marktchancen eröffnete.
Skalierbarkeit
- Die neue Architektur und die Prozesse unterstützten zukünftiges Wachstum und Skalierbarkeit.
Die Zusammenarbeit zwischen Eficode und Milestone Systems machte deutlich, wie wichtig Schulungen sind: Eine frühzeitige Schulung der Teams sorgt für reibungslosere Übergänge und eine bessere Akzeptanz der neuen Tools. Eine kontinuierliche Kommunikation zwischen den Teams und den Beteiligten ist für eine erfolgreiche Migration und Transformation von entscheidender Bedeutung. Schließlich trägt eine unterstützende Infrastruktur, die dem Entwicklungsteam eine unterstützende Rolle zuweist, dazu bei, den Schwerpunkt auf Innovation und kontinuierliche Verbesserung zu legen.