Die Investition in Automatisierung lohnt sich. Sie werden dadurch auf lange Sicht deutlich mehr Zeit gewinnen.
Viele Arbeitskräfte sind heute derart ausgelastet, dass sie keine Zeit mehr finden für Verbesserungen der eigenen Arbeitsschritte. Jedoch wären diese Verbesserungen der erste Schritt aus der hohen Arbeitslast. Der Aufwand für eine Automatisierung kann innert kürzester Zeit amortisiert werden und bringt mehr Raum für die restliche Arbeit. Dies wird anhand des nachfolgenden Beispiels veranschaulicht.
Release Prozess
Unsere Abteilung ist unter anderem für den Release Prozess verantwortlich. Der Prozess sieht vor, dass jeweils Dienstag und Donnerstag auf die Testumgebungen installiert wird. Das Team muss die Release Notes manuell erstellen und dem externen Betreiber per E-Mail zustellen. Dieser installiert, die in den Release Notes enthaltenen Patches am Abend des jeweiligen Patchfensters. Durch die relativ aufwendigen Kontrollen der Inhalte und der manuellen Erstellung brauchen diese Arbeiten rund eine Stunde.
Mehr Deployments – mehr Aufwand
Durch weitere, ungeplante Deployments ist der Aufwand für die Abwicklung der Releases in der Vergangenheit weiter angestiegen. Das ist neben all den anderen Arbeiten zu einem echten Problem geworden. Zudem dauerte es den Entwicklern zu lange, bis sie ihre Anpassungen auf den Testumgebungen überprüfen und testen konnten. Diese Gründe haben zu einem Umdenken geführt. Der Wunsch nach einer Automatisation wurde so groß, dass diese angegangen wurde.
Verbesserungen
Folgende Maßnahmen wurden umgesetzt:
- Durch den Einsatz von Jenkins wurde die Code Integration und die Erstellung der Releases neu aufgebaut. Dabei wird der Code durch eine statische Code Analyse einer ersten Qualitätsprüfung unterzogen. Die erstellten Artefakte werden auf einem Nexus Server abgelegt und werden von dort für das Deployment bezogen .
- Das Deployment wird durch den Einsatz von Pupet und Scripts automatisiert. Die erstellten Software Pakete werden nach dem Erstellen sofort auf einer eigens dafür aufgebauten Umgebung installiert. So wird sichergestellt, dass keine korrupten Artefakte auf den Testumgebungen installiert werden.
- Für die Installationen auf den weiteren Umgebungen (ausgenommen Produktion) wird Rundeck ausgewählt. Es ist ein Open Source Tool, mit welchem Jobs automatisiert ausgeführt werden. In unserem Falle sind dies Deployments. Rundeck besitzt zudem eine grafische Oberfläche.
Fazit
„Man findet keine Zeit für etwas, was einem einen ungemeinen Mehrwert bieten würde.“
Durch die Automatisierung kann der manuelle Aufwand auf ein Minimum reduziert werden. Das erspart uns jede Woche mindestens 2-3 Stunden an Zeit, welche wir für weitere Automatisierungen oder die tägliche Arbeit einsetzen können. Die Entwickler und der Product Owner können die Änderungen selber installieren und viel schneller auf einer stabilen Umgebung begutachten.
Wir wurden auf Grund der vielen Deployments und dem damit verbundenen Zeitaufwand, quasi zu dieser Automatisierung und der Verbesserung gezwungen. Heute ist uns allen klar, dass dieser kleine Mehraufwand bereits früher hätte umgesetzt werden sollen. Ich denke vielen Unternehmen und Abteilungen geht es gleich. Man findet keine Zeit für etwas, was einem einen ungemeinen Mehrwert bieten würde. Darum setzt die Zeit am richtigen Ort ein.