Weblösungen am Puls der Zeit, innovativ und massgeschneidert.

#Blog

Intersim AG Programmieren

vor einem Monat

Deployment

Wieso automatisieren wir das Deployment?

ALEXANDER MOSER Software Engineer

Deployment Automation

Was ist der Unterschied zwischen einem Release und einem Deployment?
Als «Deployment» beschreiben wir einen Teil-Prozess beim Veröffentlichen einer neuen Softwareversion. Währenddessen der Release noch weitere Arbeitsschritte wie Datenbankmigrationen oder das Löschen des Zwischenspeichers beinhalten kann, beschränkt sich das Deployment auf das Kopieren der Artefakte (Programmdateien) auf das Zielsystem.

Und wieso automatisieren wir das Ganze?
In erster Linie habe ich diesen Aufwand betrieben, da ich faul bin und gerne den Computer die ganze Arbeit für mich machen lasse. Spass beiseite - natürlich hat es viele andere und vor allem auch wichtigere Gründe. 😉
Mit jeder Aufgabe, die wir automatisieren können, haben wir mehr Zeit für andere Dinge. Dinge, die sich nur schlecht oder gar nicht automatisieren lassen. Ausserdem ist das Aufschalten von Applikationen eine sehr repetitive Aufgabe, wofür Menschen bekannterweise nicht geeignet sind. Trotz Checklisten können Fehler passieren oder Arbeitsschritte vergessen gehen. Durch das Automatisieren wird der Mensch als Fehlerquelle eliminiert.

Bevor wir das Aufschalten automatisiert haben, haben wir vielleicht alle paar Wochen eine neue Version aufgeschaltet. Nun ist es Teil unseres Build-Prozesses. Jede Änderung, die wir vornehmen, wird, nachdem alle automatischen Tests erfolgreich ausgeführt wurden, automatisch auf unser internes Integrations-System aufgeschaltet. Meistens wird dieser Prozess mehrmals am Tag von der von uns eingesetzten Versionskontrollsoftware GitLab ausgeführt. Somit können wir sicherstellen, dass wir alle auf dem gleichen Stand sind und alle am Projekt beteiligten Personen laufend unsere Fortschritte sehen und diese auch sogleich testen. Dadurch erreichen wir nicht nur eine höhere Kundenzufriedenheit, sondern erlangen auch eine bessere Transparenz und können im Projekt agiler performen.

Grafische Darstellung eines erfolgreich durchgelaufenen Deployments (Pipeline) in GitLab