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

Große Builds sollten effizient laufen und dem Team schnell Feedback über Änderungen geben. Neben anderen Faktoren ist die Anzahl der Bamboo-Agents kritisch für effiziente Builds. Teams, die vermuten, dass ihre Builds schneller sein könnten, haben einige Möglichkeiten, um zu überprüfen, ob sie damit richtig liegen.

Build Queued Duration

Zuerst sollte man einmal analysieren, wie lange Builds in der Warteschleife hängen. Der Build-Queued-Duration-Bericht zeigt die Durchschnittsdauer, die ein Plan wartet, ehe Build Agents sie ausführen können. In einem Report lassen sich mehrere Plans auswerten und gut miteinander vergleichen.

Stellt sich heraus, dass insbesondere ein Plan dauerhaft länger als andere wartet, liegt das oft daran, dass dieser Plan spezielle Anforderungen hat (Executables, JDKs usw.), die nur aus einem kleinen Pool von Agents bedient werden können. Hier kann es helfen, mehr Agents mit den entsprechenden Fähigkeiten auszustatten. Manchmal sind diese Ressourcen auch bereits vorhanden, nur weiß Bamboo nichts davon. Unter Administration > Agents > ${AGENT} > Detect Server Capabilities lässt sich dies überprüfen.

Zusätzliche Remote Agents

Selbst wenn die Wartezeiten über die Plans hinweg einigermaßen konsistent sind, ist man womöglich dennoch nicht zufrieden. Die beste Lösung, um die Queue Duration zu reduzieren, ist die, einfach mehr Agents hinzuzufügen. Wenn die aktuelle Lizenz noch Reserven bietet, sollte man Remote Agents ergänzen, bis das Maximum erreicht ist, und sich die Auswirkungen ansehen.

Rechts ist eine Grafik für eine Bamboo-Instanz für Builds und Bamboo-Tests. Das Muster mit Spitzen und Tiefen ist typisch für ein Team, das graduell mehr und mehr Plans hinzufügt oder bestehende Plans in steigender Frequenz baut und dann mehr Agents addiert. In diesem Fall ist die Wartezeit bis auf durchschnittlich 33 Minuten angewachsen – verständlich, dass hier Agents aufgestockt wurden.

Alternative: Local Agents hinzufügen

Wer die Remote Agents für seine aktuelle Lizenz bereits ausgereizt hat, sollte versuchen, ein oder zwei Local Agents hinzuzufügen, um einen Geschmack davon zu bekommen, was mehr Build-Helferlein ausrichten können. Das hilft bei der Einschätzung, ob es sinnvoll ist, auf eine größere Lizenz umzusteigen. Das Hinzufügen von Local Agents ist ganz simpel: Administration > Agents > Add Local Agents.

Es ist durchaus denkbar, dass Local Agents einen Unterschied machen, der groß genug ist, um bei der aktuellen Lizenz zu bleiben. Bedenken Sie aber: Zu viele Local Agents können die Performance von Bamboo nach und nach beeinträchtigen. Sie laufen ja wie Bamboo selbst in der JVM. Selbst wenn Bamboo auf einem starken System mit acht Kernen und 64 GB RAM betrieben wird, sind drei Local Agents oft das Maximum, bevor das System „out of memory“ meldet.

Nützliches Plugin: Agent Utilities

Unabhängig davon, wie viele Agents man hat, sollen sie natürlich stabil das tun, was man von ihnen erwartet. Hier ist der Einsatz des Plugins Agent Utilities sinnvoll, das aus dem Codegeist-Wettbewerb hervorgegangen ist. Es sendet Benachrichtigungen mit Alarmen, wenn ein Agent offline geht, und ermöglicht unmittelbare Reaktionen.

Doch selbst wenn Sie mit Ihren Wartezeiten zufrieden sind, lohnt es sich, dem Build-Queued-Duration-Report Aufmerksamkeit zu widmen. Die Auswahl eines größeren Zeitraums kann helfen, längerfristige Trends zu identifizieren. So sind mitunter Prognosen möglich, wann der Zeitpunkt für ein Lizenz-Upgrade anstehen könnte.

Im folgenden zweiten Teil des Artikels sehen wir uns den Build-Duration-Trend an und erläutern, welche Auswirkungen das Aufsplitten und Parallelisieren von Jobs auf die Effizienz haben kann.

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. Wenn Sie Lizenzen für Atlassian-Produkte bei //SEIBERT/MEDIA kaufen, gewähren wir Ihnen übrigens einen Naturalrabatt in Höhe von 10% in Form von Dienstleistungen. 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