Modernisierung von Build-Prozessen mit Bamboo

Viele moderne Software-Teams wollen heute automatisierte Builds, Tests und Releases in einem einzelnen Workflow zusammenschnüren. Atlassian Bamboo unterstützt diese Teams durch seine Flexibilität, die Teams in die Lage versetzt, selbst die kompliziertesten Contiunous-Integration- und Continuous-Delivery-Workflows professionell und effizient zu handhaben.

Mit Bamboo 6 hat Atlassian noch einen drauf gesetzt und Bamboo Specs ausgeliefert, ein Feature, das für Build-Pläne den Configuration-as-code-Ansatz einführt. In diesem Beitrag zeigen wir, wie Bamboo die CI/CD-Praxis in Form von Bamboo Specs, Build-spezifischem Container-Support und der tieferen Integration mit Bitbucket Server unterstützt.

Build-Pläne schnell iterieren

Die Möglichkeit, schnelle Iterationen durchführen und schnell auf Änderungen reagieren zu können, ist in der modernen Software-Entwicklung ein erfolgskritischer Faktor. Mit Bamboo 6 hat Atlassian mit Bamboo Specs eine neue Art und Weise zur Konfiguration von Builds eingeführt.

Bislang mussten Entwickler mit der Bamboo-Nutzeroberfläche arbeiten, um Build-Konfigurationen zu ändern und/oder zu erstellen, ein manchmal lästiger Prozess mit vielen sich wiederholenden Schritten. Das Konzept, die Konfiguration als Code zu definieren, vereinfacht diesen Prozess. Die so definierten Pläne werden in Bamboo als Code implementiert, sobald ein Plan als Teil des Workflows akzeptiert wurde, und das Team kann seine Zeit darin investieren, auf das Release hinzuarbeiten.

Da Bamboo Specs Java nutzt, können Entwickler alle Vorteile ihrer IDE wie Autokorrektur und Syntaxhervorhebung nutzen, wenn sie Pläne editieren. Das stärkt die Entwicklerproduktivität und gibt Teams ein modernes, flexibles CI-Toolset an die Hand, mit dem Build-Konfigurationen so schnell evolvieren können wie die Code-Basis selbst. Die Möglichkeit, schnelle Änderungen vorzunehmen, verleiht Entwicklern mehr Ownership und Verantwortung hinsichtlich der CI-Pipeline. Und da ihr Code in einem Versionskontrollsystem gespeichert ist, profitieren Teams zusätzlich von Code-Reviews und Versionshistorie: Will ein Entwickler beispielsweise frühere Versionen eines Builds vergleichen, um zu sehen, warum etwas nicht funktioniert hat, kann er den Build einfach genau so ausführen, wie er zu diesem Zeitpunkt konfiguriert war.

Builds und Tests an einem Ort

Heutzutage tendieren Entwicklungsteams dazu, mehr als eine Plattform zu unterstützen. Mit dem Release von Bamboo 6 führt Atlassian Schritte ein, die sicherstellen, dass alle Applikationen mit nativem (offiziellem) Support für Xcode und Fastlane abgedeckt sind. Ein Team kann seine mobilen iOS- oder OSX-Apps also nebenher mit anderen Applikationen bauen und testen.

Xcode ist spezifisch für iPhone, iPad, Mac, Apple Watch und Apple TV. Fastlane ist dagegen ein Open-Source-Tool, um Beta-Deployments und -Relases für iOS- und Android-Apps zu automatisieren. Das Tool erfüllt zahlreiche Aufgaben wie das Generieren von Screenshots, das Handling mit Code-Signing und das Releasen der Applikation.

Die Unterstützung von Build-Tools wie Xcode und Fastlane ist im Zusammenhang mit CI/CD wichtig. Eine Builder-Task erlaubt es dem Team, einen Bamboo-Plan oder -Job mit einem Build-Tool wie Fastlane zu verknüpfen. Damit entsteht eine Continuous-Integration-Pipeline, in deren Rahmen die bestehende Konfiguration genutzt wird, wenn der Plan oder Job gebaut wird.

Was ist das Moderne daran? Ob nun eine iPad- oder Android-App – es handelt sich um die zeitgemäßen Technologien für Builds, und die Builds können in einem Tool über mehrere Plattformen hinweg ausgeführt werden. Entwickler müssen weniger Zeit in die Verwaltung ihrer Build-Systeme investieren und haben mehr fürs Coden.

Builds genau dann, wenn sie sinnvoll sind

Ein weiterer Pfeiler von CI/CD ist das Einreißen Silos, ob kultureller Natur oder in Form von Tools. Mit Bamboo 6 wurden neue Integrationsmöglichkeiten zwischen Bamboo und Bitbucket Server ausgeliefert, die helfen, Tool-Silos innerhalb der Atlassian-Infrastruktur zu eliminieren.

Bamboo harmoniert bestens mit Branching-Workflows in Bitbucket, aber bislang war es schwierig, zum Beispiel während eines Code-Reviews Fragen wie "Ist dieser Build durchgelaufen?" zu beantworten. Solche Fragen können Teams nun beantworten, indem sie Build-Pläne für Branches und Pull-Requests in Bitbucket automatisch erstellen und ausführen. Auch sendet Bamboo nun Informationen an Bitbucket, wenn Builds starten, sodass Entwickler komplette Transparenz über den Fortschritt eines Builds haben.

Entwickler müssen wissen, was in ihren unterschiedlichen Tools passiert. Das Herunterdrehen des Build-Lärms und das Freistellen von Build-Agents sind direkte Vorteile, die sich aus der Option ergeben, Builds anzustoßen, wenn Branches oder Pull-Requests erstellt werden.

Ebenso führt das Monitoring des Build-Fortschritts zu mehr Sichtbarkeit und weniger Kontextwechseln für den Entwickler. Die noch tiefere Integration legt ein Fundament für die Best Practices bei der Nutzung von Plan-Branches, um zu wissen, dass jeder Pull-Request auch gebaut wird. Plan-Branching gibt den Entwicklern zudem die Freiheit, ihre Konfigurationen einmal vorzunehmen und dann zu vergessen: Bamboo hält sie stets vor, wenn ein Pull-Request erstellt wird.

Die Fähigkeit, Dinge zu tun wie etwa Builds für Pull-Requests zu automatisieren statt für jeden neuen Branch einen Build zu erstellen, macht Entwicklungskapazitäten frei und führt zu einer CI/CD-Praxis, die hilft, Code schneller auszuliefern.

Diese neuen Möglichkeiten helfen Teams, mithilfe von Bamboo CI/CD-Methoden zu implementieren, und Atlassian hat bereits angekündigt, weiter in Features zu investieren, die Software-Unternehmen bei der Transition in die Welt von Continuous Delivery und DevOps unterstützen.

Wir sind Ihr Atlassian-Partner

Interessieren Sie sich für Entwickler-Tools von Atlassian? Wir sind seit vielen Jahren Atlassian-Vertriebspartner und einer der größten Atlassian Experts weltweit. Gerne unterstützen wir Sie bei allen Aspekten einer Einführung: Beratung, Lizenzierung, Konfiguration, produktive Nutzung. Melden Sie sich bei uns!

Weiterführende Infos

DevOps-Transition mit Bamboo 6 und Bitbucket 5
Individuelle Software-Entwicklung: Workflows, Branching-Modelle und Continuous Delivery
Echte Integration: Das Zusammenspiel von JIRA, Bitbucket und Bamboo im Entwicklungsprozess
Continuous Delivery in der Praxis: Deployment auf Knopfdruck und Release-Verwaltung mit Bamboo
Code-Qualität optimieren mit SonarQube und Bamboo