Under the Hood - die wichtigsten Werkzeuge und Abläufe

Im Maschinenraum

Hanno Wendt, Thorsten Kamann


In Teil 1 haben wir darüber gesprochen, dass Automatisierung bei Continuous Delivery (CD) das A und O ist. Für die meisten Rollen im Prozess gibt es Spezialisten. Daher versuchen Sie besser nicht für alles ein eigenes Skript zu schreiben. CD ist ein werkzeuggestützter Entwicklungsprozess, dessen Schwerpunkt auf agilem Vorgehen und schnellen Feedbackzyklen liegt. Dazu müssen verschiedene Systeme zu einer eng integrierten Werkzeugkette geschmiedet werden. Wir möchten Ihnen die Glieder dieser Kette vorstellen und Ihnen die Alternativen bei der Produktauswahl zeigen. Wie in Abbildung 1 zu sehen, bilden die folgenden Systeme mit dem Issue-Management als zentrales Element die Basis:

VersionierungBuild-ServerQualitätsmessungIssue-ManagementArtifact Repository

Dazu kommen Testframeworks und Tools zum Code-Review, um eine kontinuierlich hohe Qualität zu gewährleisten. Den Ablauf in unserem Delivery-Prozess nennen wir Delivery Cycle, innerhalb dessen wir eine Aufteilung in Development und Deployment Cycle vornehmen. Im Rahmen des Deployment Cycles müssen wir uns auch überlegen, wie Stages bereitgestellt werden können und das automatisierte Deployment umgesetzt werden kann. Stages sind Serverumgebungen, die dem Produktivsystem ähnlicher werden, je weiter wir in Richtung produktives Deployment gehen.

Versionierung

Das Version Control System (VCS) verwaltet die Codebasis Ihres Projekts. Kaum ein Projekt kommt ohne aus. Sobald mehr als zwei bis drei Entwickler an einem Projekt beteiligt sind, wird es schwer, die Arbeitsergebnisse ohne ein VCS zusammenzuführen. Im Rahmen von CD ist es unverzichtbar, da der Build-Server eine einheitliche Quelle für seine Builds benötigt.

Die Produktvielfalt ist groß, zwei Systeme stechen jedoch hervor: Subversion [1] und Git [2]. Subversion ist in vielen Projekten vertreten und der wichtigste Vertreter der Gruppe der klassischen zentralisierten Versionierungssysteme. Im Gegensatz dazu ist Git der Vorreiter innerhalb einer neuen Gruppe, den Distributed VCS, also den verteilten Versionierungssystemen. Zu diesen gehört auch das etwas weniger gebräuchliche Mercurial [3]. Die verteilten VCS haben in jüngster Zeit für viel Aufsehen gesorgt, da sie über entscheidende Vorteile gegenüber den zentralisierten verfügen. Die erhöhte Redundanz eliminiert das Risiko von Verlust durch den Ausfall des zentralen Systems. Da jeder Client ein vollständiges Spiegelbild inklusive der Historie ist, kann ein ausgefallener Server jederzeit wiederhergestellt werden....

Under the Hood - die wichtigsten Werkzeuge und Abläufe

Im Maschinenraum

Hanno Wendt, Thorsten Kamann


In Teil 1 haben wir darüber gesprochen, dass Automatisierung bei Continuous Delivery (CD) das A und O ist. Für die meisten Rollen im Prozess gibt es Spezialisten. Daher versuchen Sie besser nicht für alles ein eigenes Skript zu schreiben. CD ist ein werkzeuggestützter Entwicklungsprozess, dessen Schwerpunkt auf agilem Vorgehen und schnellen Feedbackzyklen liegt. Dazu müssen verschiedene Systeme zu einer eng integrierten Werkzeugkette geschmiedet werden. Wir möchten Ihnen die Glieder dieser Kette vorstellen und Ihnen die Alternativen bei der Produktauswahl zeigen. Wie in Abbildung 1 zu sehen, bilden die folgenden Systeme mit dem Issue-Management als zentrales Element die Basis:

VersionierungBuild-ServerQualitätsmessungIssue-ManagementArtifact Repository

Dazu kommen Testframeworks und Tools zum Code-Review, um eine kontinuierlich hohe Qualität zu gewährleisten. Den Ablauf in unserem Delivery-Prozess nennen wir Delivery Cycle, innerhalb dessen wir eine Aufteilung in Development und Deployment Cycle vornehmen. Im Rahmen des Deployment Cycles müssen wir uns auch überlegen, wie Stages bereitgestellt werden können und das automatisierte Deployment umgesetzt werden kann. Stages sind Serverumgebungen, die dem Produktivsystem ähnlicher werden, je weiter wir in Richtung produktives Deployment gehen.

Versionierung

Das Version Control System (VCS) verwaltet die Codebasis Ihres Projekts. Kaum ein Projekt kommt ohne aus. Sobald mehr als zwei bis drei Entwickler an einem Projekt beteiligt sind, wird es schwer, die Arbeitsergebnisse ohne ein VCS zusammenzuführen. Im Rahmen von CD ist es unverzichtbar, da der Build-Server eine einheitliche Quelle für seine Builds benötigt.

Die Produktvielfalt ist groß, zwei Systeme stechen jedoch hervor: Subversion [1] und Git [2]. Subversion ist in vielen Projekten vertreten und der wichtigste Vertreter der Gruppe der klassischen zentralisierten Versionierungssysteme. Im Gegensatz dazu ist Git der Vorreiter innerhalb einer neuen Gruppe, den Distributed VCS, also den verteilten Versionierungssystemen. Zu diesen gehört auch das etwas weniger gebräuchliche Mercurial [3]. Die verteilten VCS haben in jüngster Zeit für viel Aufsehen gesorgt, da sie über entscheidende Vorteile gegenüber den zentralisierten verfügen. Die erhöhte Redundanz eliminiert das Risiko von Verlust durch den Ausfall des zentralen Systems. Da jeder Client ein vollständiges Spiegelbild inklusive der Historie ist, kann ein ausgefallener Server jederzeit wiederhergestellt werden....

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang