Bamboo: Wie viele Build Agents braucht mein Projekt? (Teil 2)

Im ersten Teil dieses Artikels haben wir aufgezeigt, wie sich die Wartezeiten von Bamboo-Builds in der Warteschleife analysieren lassen und wie diese Duration Time verkürzt werden kann. In diesem Folgebeitrag bieten wir weitere Methoden, um die optimale Anzahl an Agents für ein Projekt zu bestimmen.

Lange laufende Jobs aufsplitten

Der Duration Trend eines Builds ist ebenfalls eine niedrig hängende Frucht. Werden Builds langsamer? Sind sie je so schnell gelaufen, wie man es gerne hätte?

Das Aufsplitten lange laufender Jobs in kleinere Jobs, die parallel laufen können, ist eine tolle Möglichkeit, Builds zu beschleunigen. Um in den Genuss der Vorteile dieser Parellelisierung zu kommen, müssen jedoch genügend Agents vorhanden sein, die all diese Jobs ausführen. Die Grafik rechts stammt aus einer Bamboo-Sandbox: Ein einzelner Integrationstest-Job wurde in drei Jobs aufgesplittet und zwei weitere Agents wurden hinzugefügt, damit alle Jobs zur selben Zeit ausgeführt werden können. Das Ergebnis: eine halbierte Build Duration.

Es kann kniffelig sein herauszufinden, wo im Build Schritte parallelisiert werden sollten. Abhilfe schafft das Plugin Build Times. Dieses Tool bricht Build-Zeiten pro Job herunter und generiert Auswertungen wie die in der folgenden Grafik:

Der "Ausreißer" in der dritten Stage ist ein gutes Beispiel: Wird dieser Job in zwei aufgeteilt, verringert sich die gesamte Build Duration um sieben bis acht Minuten – eine 25%-Ersparnis durch eine einzige Änderung.

Der Umfang, bis zu dem es praktikabel ist, Build-Schritte zu parallelisieren, hängt allerdings immer von der Projektarchitektur und dem Budget ab. Es ist sinnvoll, an ein, zwei Stellen Parallelisierung auszuprobieren, dann ein, zwei Wochen abzuwarten und schließlich die Statistiken per Build-Times-Plugin und Build-Duration-Report durchzugehen, um zu sehen, ob sich ein weiteres Iterieren lohnt.

Commit-arme Perioden finden

Es ist zu bedenken, dass Jobs aus verschiedenen Plans, die gleichzeitig laufen, um Agents wetteifern. Der sicherste Weg ist natürlich der, dem Account weitere Agents hinzuzufügen. Wessen Budget das nicht zulässt, sollte alle Plans, die zu Builds führen, strategisch auf Basis eines Timers planen. Oft sind die Stunde vor der Mittagspause und die Stunde vor Feierabend Perioden mit einem hohen Aufkommen an Commits – und damit einem hohen Aufkommen ans Builds. Es ist sinnvoll, so viele cron-basierte Plans wie möglich in anderen Zeiträumen und weniger intensiven Perioden des Arbeitstages zu bauen.

Das Finden dieser Niedrig-Perioden ist nicht ganz so einfach, aber die Daten sind da. Zunächst zieht man den Build-Activity-Report für die aktivsten Plans heran, die durch Änderungen an der Repository angestoßen werden. Über dem Graphen wählt man das Builds-Tab und sieht hier alle Builds im Datumsbereich chronologisch sortiert. Beim Überfliegen sind möglicherweise Muster zu erkennen, aus denen hervorgeht, welche Zeitfenster günstig sind – etwa der Slot des Daily-Standup-Meetings oder die Mittagspause.

Das waren nur einige Möglichkeiten, die Bamboo-Daten zu nutzen, um die optimale Anzahl an Agents für ein Projekt zu bestimmen. Wenn Sie Fragen zu Analysemöglichkeiten, Effizienzsteigerungen oder Lizenz-Upgrades haben, melden Sie sich doch einfach bei uns - Wir beraten Sie gerne!

Bamboo einführen und/oder lizenzieren? Wir sind Ihr Partner!

Interessieren Sie sich für Bamboo von Atlassian als Integrations-Server? Wir sind offizieller Atlassian-Vertriebspartner: Gerne beraten wir Sie und unterstützen Sie bei der Lizenzierung. Bitte sprechen Sie uns an.

Ausführliche Infos über Bamboo, seine Features und sein Lizenzmodell in unserer Infothek
Continuous Integration: Zehn Argumente für Bamboo
Stash von Atlassian ist da: Git-Repository-Management für Unternehmen
Der Eclipse Connector von Atlassian: JIRA, Bamboo und FishEye in der IDE