Continuous Integration with Bamboo

Continuous Integration with Bamboo

Recently we did a POC on the Bamboo and leveraged different features of it, so thought of sharing my experience with Bamboo,

Bamboo is a continuous integration server from Atlassian, which is an Australian software company. Bamboo is a CI server which used to automate the testing and release management for a software application.  It has strong integrations to other Atlassian products that are relevant for the CI cycle, such as JIRA and Bitbucket.

Bamboo gives out of box support for Java, .NET, PHP. Bamboo also offers two types; the local agents run as part of the Bamboo server as part of its process, while the remote agents run on other servers and computers. It has the ability to deploy the parallel builds on the multiple remote agents, remote agents are nothing but the slave agents. Integration of remote agents is quite simple, with few clicks around the Bamboo slick UI it is done. It also provides the agent dedication feature in remote agents, when you dedicate an agent, no other activity will able to use it unless it is dedicated to the defined activity. Each agent is assigned to the builds that match its capabilities, which allows assigning different agents to different builds. This means no wait in the queue for free build agents when there are critical bugs to fix.

Bamboo supports different platforms OS like Linux, Mac OSX, docker agents, Windows and also it runs AWS servers and agents. It supports Oracle, MySQL, Postgress databases. Bamboo is more commonly used with the Bitbucket (VCS) but it also supports other source repositories like Git, GitHub, SVN, FishEye. Bamboo supports different build tools like Maven, MSBuild, Ant, Visual studio, Xcode and Grails. Now the cool thing about the Bamboo is that if you need to upgrade the system you only need to upgrade the Bamboo master server, remote agents will automatically get upgraded via network classloader!!!

Now let's discuss the high-level architecture of Bamboo,

Bamboo uses the concept of a 'plan' with 'jobs' and 'tasks' to configure and order the actions in the workflow. You can get more information from Atlassian confluence page https://confluence.atlassian.com/bamboo/understanding-the-bamboo-ci-server-289277285.html

https://confluence.atlassian.com/bamboo/understanding-the-bamboo-ci-server-289277285.html

Bamboo also supports the codification of the pipeline, the same as Jenkins which has Jenkinsfile where a user can define the steps to execute in the CI/CD pipelines. Bamboo offers Configuration as code (CasC) which supports two languages Java and YAML. Yaml begin a user-friendly is more widely used, but the disappointing thing about YAML is that Bamboo is not having the mature level documentation. Hopefully, by the end of 2019, they will able to release few good add ons for YAML.

Hope you joined the reading, please do share your thoughts/feedback in the comment section.

Thanks for reading.

要查看或添加评论,请登录

Atul Y.的更多文章

社区洞察

其他会员也浏览了