Bamboo – Continuous Integration von Atlassian

Bamboo Logo - Atlassian

Bamboo ist eine der führenden Softwares für CI- (Continuous Integration) und Build-Server in der Softwareentwicklung. Die plattformunabhängige Software für kontinuierliche Integration wird auch für Software Deployment und Releasemanagement verwendet. Durch Bamboo können mithilfe von Workflows automatisierte Builds, Tests und Veröffentlichungen durchgeführt werden. Dies bedeutet, dass alle Programmiersprachen integriert und anschließend getestet werden können. Außerdem profitiert man wie bei allen Atlassian-Produkten von einfachen Integrationsmöglichkeiten weiterer firmeninterner Softwares wie Jira Software, Bitbucket, Hipchat oder Fisheye.

Vorteile beim Arbeiten mit Bamboo:

  • Automatisiertes Zusammenfügen von Code

  • Frühzeitige Fehlersuche

  • Einfache Verknüpfung mit Atlassian-Produkten (Jira, Confluence, Bitbucket etc.)

  • Automatisiertes & stetiges Testen des aktuellen Codes

  • Genaue Aufzeichnung von Änderungen

  • Einsicht in die Entwicklungsstadien

  • Spezielle Prozessanpassungen

  • Parallele Batch-Tests

  • User- & Admin-Schnittstellen

Für wen löst Bamboo Probleme?

Einzel-Entwickler

  Automatisierte Erstellungs- und Testprozesse.

  Mehrfachverwendung von Builds mit unterschiedlichen Anforderungen.

  Automatische Bereitstellung auf einem Server. (App Store, Google Play)

Teams in kleineren Projekten

 Unabhänigkeit von lokalen Umgebungen in Erstellungs- und Testprozessen.

  Automatische Auslösung von Builds und Integrationstests.  (nachdem ein Entwickler Code geschrieben hat)

Große Projekte & Komplexe Anwendungen

  Parallele Optimierung der Build-Leistung.

  Nutzung von Elastischen Ressourcen.

  Kontinuierliche Bereitstellung für beispielsweise Benutzerakzeptanztests.

  Implementierungsmöglichkeiten von Release-Management.

Wie funktioniert Bamboo?

Bamboo ist der zentrale Verwaltungsserver, der alle Arbeiten plant und koordiniert. Die Software selbst verfügt wiederum über Schnittstellen für viele Arten von Arbeiten. Zudem kann man wie bei allen Atlassian-Produkten auf eine große Zahl von Plug-Ins zurück greifen. Diese schaffen in dem alltäglichen Gebrauch von Bamboo große Erleichterung. Jene Plug-Ins dienen wiederum nun auch als Ausgangspunkt im Quell-Repository. (Im Quell-Repository werden Quellcode-Dateien o.ä. in einem Projektarchiv gehalten. Diese werden „ausgecheckt“ und auf den Rechner des Programmierers geladen, wenn angefragt. Nach der Bearbeitung werden diese Dateien wieder eingecheckt & die Veränderung protokolliert. Diese Versionsverwaltung dient zum Beispiel zur Rekonstruktion früherer Zustände.) Zusätzlich sind diese Plug-Ins in einer Vielzahl an Systemen verfügbar. Nach dem die Eingaben bezogen wurden, startet Bamboo den Build. Dies kann beispielsweise durch den Aufruf von MSBuild zur Erstellung Ihrer Visuals Studio-Lösung geschehen. (Oder  was auch immer Sie hierbei eben verwendet wird). Sobald Sie Ihre Lösung / Ihr Projekt fertig gestellt ist, stehen Ihnen „Artefakte“ zu Verfügung. (Hierbei handelt es sich um beispielsweise Build-Ergebnisse. Dies sind ausführbare Anwendungen oder Konfigurationdateien) Mit diesen „Artefakten“ können Sie wiederum zum Beispiel: einen Installation-Builder darauf laufen lassen, ein MSI erstellen oder zur Überprüfung auf einen Testserver installieren. Auch können Sie diese in eine ZIP-Datei packen welche Sie schließlich überall hinkopieren können. Nebenbei bietet Bamboo auch ein Front-End welches sich je nach Anforderung oder Benutzer konfigurieren lässt. Auch dient dieses als Übersicht über den jeweiligen Status der Builds, um das Projekt fortlaufend zu monitoren.

Schaubild Bamboo vom Entwickler die Code-Eingaben an den Quellcode-Repository (Source Repository) weiter geben. Dieser löst Build aus. Nun kommt Bamboo ins Spiel. Bamboo stellt den Build zusammen, führt Unit-Tests durch, danach Integrationstests und Verpackt diese Anschließend. Nun wird die Anwendung via VPN an die Web-Server bereit stellt.

Wie wird der Bamboo-Workflow organisiert?

Bamboo verwendet das Konzept von „Projekt“ mit „Plan“, „Stufe“, „Job“ und „Aufgabe“, um die Aktionen im Workflow zu konfigurieren und zu ordnen. Im folgendem erläutern wir Ihnen dieses Konzept näher.

Workflow-Einteilung von Bamboo in Projekt, Plan, Stufe, Job und Task

Projekt

Ein Projekt stellt die komplette Kampagne in Berichten dar und stellt Links zu anderen Anwendung zur Verfügung. In einem Projekt befinden sich ein oder mehrere Pläne. Außerdem kann in Projekten die Einrichtung von Berechtigungen für alle enthaltenen Pläne getätigt werden.

Plan

Gibt das Standard-Repository an und beschreibt wie der Build ausgelöst wird. Außerdem sind hier auch die auslösenden Abhängigkeiten zwischen Plänen anderer Projekte angegeben. Auch die Benachrichtigungen über Build-Ergebnisse befinden sich im Plan. Wie auch im „Projekt“ kann hier die Berechtigung zum Anzeigen und Konfigurieren des Plans und seiner Jobs dargestellt werden. Pläne bestehen normalerweise aus einer „Stufe“, welche allerdings zur Gruppierung in mehreren Stufen dargestellt werden.

Stufe

Eine Stufe besteht aus einem einzigen „Job“, welche parallel auf mehreren Agents (sofern verfügbar) verarbeitet werden. Damit der Bamboo-CI-Server im Plan verarbeitet werden kann, müssen alle Jobs erfolgreich abgeschlossen sein. Außerdem werden hier auch „Artefakte“ erzeugt, welche daraufhin zur Verfügung gestellt werden können.

Job

Jobs verarbeiten entweder einzelne Aufgaben oder mehrere aufeinanderfolgende Aufgaben, die in einer festgelegten Reihenfolge nacheinander auf demselben Agent ausgeführt werden. Zusätzlich werden hier die Anforderungen  des Bamboo-CI-Server gesammelt, sodass diese mit den Fähigkeiten der Agents abgeglichen werden können. In den Jobs finden sich auch die „Artefakte“ aus der „Stufe“ wieder, welche hier definiert und vom Build erzeugt werden. Zuletzt werden noch alle Labels festgelegt, mit denen das Build-Ergebnis oder die Build-„Artefakte“ gekennzeichnet wurden.

Aufgabe

Aufgaben sind kleine, diskrete Arbeitsheinheiten, wie beispielsweise „Quellcode Überprüfung“, Ausführen eines Maven-Ziels oder Skripten/Parsen von Testergebnissen. Diese werden sequentiell innerhalb eines Jobs in einem Bamboo-Arbeitsverzeichnis ausgeführt.

Bamboo in a nutshell

Kontaktieren Sie uns.

Offene Fragen? Dann kontaktieren Sie uns doch über das beistehende Formular oder direkt via Telefon.

Kontaktanfrage

Bereich

Bereich