Atlassian annouced new versions of Bamboo and Bitbucket Server, two tools aimed to support DevOps in enterprises. New functionalities include configuration as code, enhanced build control, and build progress monitoring.
In the blog post Bitbucket Server 5.0 & Bamboo 6.0: Bringing DevOps to the Enterprise Atlassian introduces the new product versions:
Adopting DevOps in the enterprise is more than just better communication across operations and development, modern continuous integration practices, or the type of version control in place. Things like compliance and scale become just as important. Tooling must provide freedom and structure, scalability and performance – things that are not often found together.
Atlassian tools have the unique ability to make DevOps workflows a reality while ensuring traceability, availability, and security all remain intact. In Bitbucket Server and Data Center 5.0, and Bamboo 6.0 we’re upping the ante with a committer verification Git hook and updates to smart mirrors.
InfoQ interviewed Alison Huselid, head of Bamboo Business at Atlassian, about the major changes in Bamboo 6.0 and Bitbucket Server 5.0 and asked her about the benefits that these changes bring for enterprises that are applying DevOps.
InfoQ: What are the major changes in Bamboo 6.0?
Alison Huselid: One of our key focus areas for the Bamboo 6.x series is to bring modern continuous integration practices, like configuration as code, to the enterprise. In addition, workflow enhancements like deeper integrations with Bitbucket Server, will enable teams to move faster and have an easier go at adopting DevOps practices. Specifically in Bamboo 6.0 we introduced the following:
- Bamboo Specs, which modernizes enterprise software development by allowing Bamboo build plans to be configured as code. This gives developers more control over the development process, removing the need to involve other teams or switch between their code and their build systems.
- Deeper integrations with Bitbucket Server including the ability to trigger Bamboo builds on Bitbucket pull request creation, view in-progress build status in Bitbucket, and create and view pull requests in Bamboo. With these enhancements developers gain more control over when their builds kick off and can monitor progress from inside Bitbucket.
- Official support for xCode and Fastlane, which provides developers the ability to build and test all of their applications in one build tool.
InfoQ: How does defining Bamboo plan configurations as code work?
Huselid: Bamboo provides a Bamboo Specs library with an API for writing configuration as code in an IDE of your choice, and a Bamboo Specs Runner Maven plugin for deploying the plan to a Bamboo server instance.
The Bamboo Specs library is written in Java. It means that you can write your code in any high-level JVM language that interoperates with Java, for example Groovy, Scala, or Kotlin. Even if you’re not familiar with Java, our onboarding process will bootstrap you directly into a working environment and we have made sure that the plan definitions will be familiar to users of other languages such as Python, C++ or C#.
This tutorial from the Bamboo documentation explains the workflow with examples: Create a simple plan with Bamboo Specs.
Here’s a very short example of how creation of a new plan looks with Bamboo Specs:
Plan plan = new Plan(project, "My Plan One", "PLAN1") .description("This is an example of a plan") .enabled(true) .stages(stage1) .triggers(scheduledTrigger) .planBranchManagement(planBranchManagement) .dependencies(planDependencies) .linkedRepositories(myGitRepo) .planRepositories(myBitbucketRepo) .variables(var1, var2);
InfoQ: What are the benefits of defining plan configurations as code?
Huselid: By defining build configurations as code with Bamboo Specs, development teams gain more control and responsibility over the build pipeline. It also simplifies application build, speeds up the development process, and allows for code reuse (e.g. the ability to copy plans). As a bonus, if you store your code file in a version control system, you also get the benefit of code review and version history. For example, if you need to compare prior versions of a build (to see why something is broken), simply run the build as it was at that point in time.
InfoQ: What’s new in Bamboo’s integration with Bitbucket Server?
Huselid: In Bamboo 6.0, we’ve introduced several enhancements to the Bitbucket Server integration including the ability to trigger Bamboo builds on Bitbucket pull request creation, view in-progress build status in Bitbucket, and create and view pull requests in Bamboo.
InfoQ: Which benefit does this bring?
Huselid: Deeper integrations between Bamboo and Bitbucket Server bring important information forward, in the context where it’s needed most. For example, a developer can see when a Bamboo build has been triggered from inside the Bitbucket user interface, or create a Bitbucket pull request when researching build results in Bamboo. Smart build triggers, like the automatic creation of a Bamboo plan branch on pull request creation, give more control over when and how builds happen. This frees up Bamboo build agent resources and cuts down on unnecessary build noise. Even better, if you’re not using plan branches already, now you can, and know that every pull request will get built automatically.
InfoQ: What’s next for Bamboo?
Huselid: Future releases of Bamboo will continue to bring modern CI/CD practices to the enterprise by providing more time-saving features without compromising scale or security. To do so we’ll be focusing on several areas including: enhancements to the Bamboo Specs workflow, deeper integrations with Atlassian tools and other DevOps toolsets, and meeting the CI/CD needs of Enterprise organizations.