Der Kunde ist ein internationales Unternehmen, das Hightech-Lösungen für Automobilhersteller auf der ganzen Welt liefert. Um seine Entwicklungsprozesse zu verfeinern, wollte Orion den Veröffentlichungszyklus verkürzen und die Qualität des Produkts verbessern.
Herausforderung
Im aktuellen Entwicklungsprozess des Kunden gab es einige Schwachstellen, die unser Team beheben musste:
- Schlechte Codequalität, die zu fehlerhaften Builds führte. Der Produktcode entsprach nicht den Qualitätsstandards für die Codierung und den einheitlichen Codierungsregeln, was seine Wartung erheblich erschwerte.
- Der Build-Prozess war aufgrund der Produktkompilierung zeitaufwändig, was zu einer ineffizienten Nutzung von Ressourcen und unnötigen Verzögerungen führte.
- Der gesamte Prozess war nicht automatisiert, was die Feedbackschleife verlangsamte.
Lösung
Um diese Herausforderungen anzugehen und zu lösen, führte unser Team Verfahren zur kontinuierlichen Integration (Continuous Integration, CI) ein, mit denen die manuellen Aspekte des Prozesses automatisiert werden konnten. Dies ermöglichte auch ein schnelleres Feedback und entsprechende Reaktionen, wodurch der gesamte Prozess agiler wurde. Unsere Lösung ermöglicht es dem Kunden, die Kosten zu senken und die Qualität zu steigern.
Außerdem haben wir die CI-Pipeline um eine statische Analyse erweitert, um Probleme mit der Codequalität zu lösen. Dies ermöglicht eine sofortige Rückmeldung, wenn Änderungen vorgenommen werden, so dass der unzureichende Code bei Bedarf zur weiteren Verbesserung an die Entwickler zurückgegeben werden kann. Um den Prozess zu optimieren, haben wir eine Lösung entwickelt, die nur geänderte Komponenten und ihre Abhängigkeiten kompiliert. Unveränderte Komponenten werden aus dem Repository entnommen und dem Paket ohne Kompilierung hinzugefügt. Wir haben die Lösung auf der Grundlage von Docker, Artifactory OSS und cmake entwickelt.
Im Rahmen des Projekts haben wir den Bereitstellungsprozess automatisiert, um ihn kontinuierlich zu gewährleisten und den manuellen Aufwand zu verringern. Das Produkt wurde für die Testumgebung automatisiert installiert und wir implementierten die automatisierte Smoke/Sanity-Test-Suite mit Python und Robot Framework.
Auswirkungen
Durch die Implementierung der Lösung und die Verfeinerung des Bereitstellungsprozesses konnten wir die Entwicklungszeit um 85 % reduzieren. Außerdem sank die Anzahl der Produktprobleme gemäß der Bugtracking-Metriken des Kunden. Jetzt kann sich das manuelle Testteam auf gründlichere Tests der Produktfunktionen konzentrieren, da Probleme bereits in frühen Stadien erkannt werden.
Technologien:
DevOps:
- Jenkins
- Docker
- jFrog Artifactory OSS
Sprache:
- C++
Testen:
- Python (Testen)
- Robot Framework