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.
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.
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.
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:
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:
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
Die Transformation führte zu mehreren signifikanten Verbesserungen:
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.