Which is a better continuous integration tool for AEM, Jenkins or Bamboo | Community
Skip to main content
Level 6
January 13, 2016
Solved

Which is a better continuous integration tool for AEM, Jenkins or Bamboo

  • January 13, 2016
  • 12 replies
  • 4576 views

I am trying to work out which continuous integration system, between Bamboo and Jenkins,  would be more suitable for continuous integration.

My scenario is that developers will work on their local host  to develop components and OSGI bundles using Eclipse. So assuming everything is good to go their code was sent to a BitBucket git repository, and all merges are complete. Now I want to deploy the component code, and compile and deploy OSGI  bundles to the authoring server, do QA and then if QA is passed deploy component code, and compile and deploy OSGI  bundles bundles to production, which has two load balanced servers.

 So I know I can use Jenkins to do this. I had previously asked on the AEM experience manager forum how to use Jenkins with AEM. Titled -  "Jenkins and Continual Integration with AEM Authoring Server ".

And from the answers on it I found this link https://wiki.jenkins-ci.org/display/JENKINS/CRX+Content+Package+Deployer+Plugin.

So there is an AEM  Jenkins plugin.

I have not find a similar plugin for Bamboo, and the company has a preference for using Bamboo because of its tie in with Jira. So far it appears to me that Jenkins would be better to use for AEM continuous integration.

I would greatly appreciate it if anyone could help me by directing me to any sources of knowledge that would help be to evaluate which of the two continuous integration systems is better for use with AEM.

 

Regards

Clive Stewart

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by Asa_B

Hi Clive, both Jenkins and Bamboo will get the job done. If cost is concern Jenkins is open source. However, I recommend Bamboo over Jenkins, if the team is using Jira and/or the rest of the Atlassian stack. I personally find a lot of value in Bamboo's ability to automatically generate a pipeline per branch.  At scale this permits a githubflow style of branch management. 

You should really consider the new bread build tools such as Wercker, Circle-CI and Travis which forgo the complex user interfaces in favor of a simple YML configuration file.

I'd also highly recommend Ansible for managing the provisioning and deployment of AEM infrastructure. Having your build server execute ansible playbooks really help makes things so much more manageable. Puppet, Chef are possible of course, the main point is to automate everything. Of course Ansible has Ansible Tower as a UI to help out.

12 replies

Jitendra_S_Toma
Level 10
January 13, 2016

Clive,

To be honest, Jenkins is suitable if timeline does not allow. There are things available right now. I am not sure if anyone has done anything with Bamboo in AEM. It is unknown territory. And it will take time to build from scratch. Though could be interesting to explore.

Jenkins is also a another full proof solution which could be integrated with Jira. 

Jitendra

Level 6
January 13, 2016

Thank you Jitendra,

What you say bears out with my research so far. I have not been able to find a use case study of Bamboo with AEM. Even on this forum a search on Bamboo returns no threads (except this one).

 

Regards

Clive Stewart

Peter_Puzanovs
Community Advisor
Community Advisor
January 13, 2016

Hey Clive,

 

Have seen AEM build/deploy with Bamboo running nicely in the past.

 

Thanks,

Peter

Jitendra_S_Toma
Level 10
January 13, 2016

Is it open for everyone?. 

Jitendra

Level 8
January 13, 2016

We utilize Bamboo here because it integrates with JIRA and BitBucket.  Definitely wouldn't switch to Jenkins.

Level 8
January 13, 2016

Hey Clive, I think maybe changing your train of thought would be a good idea.  You're really not integrating Bamboo (or Jenkins) with AEM - you're integrating it with Maven.  I don't know what specific needs you have from a CI server so it's a little difficult to give answers, but our integration simply kicks off a maven build and deploys the packages to the author/publish servers and then we have a script to flush the dispatcher cache.
We use the hosted Bamboo so we run it using AWS instances.

https://confluence.atlassian.com/bamboo/maven-289277038.html

Level 6
January 13, 2016

Hi Leeasling,

I think you are correct and that I am looking at it the wrong way round.

Thank you, you have given me the answer I was looking for.

 

Regards

Clive Stewart

joerghoh
Adobe Employee
Adobe Employee
January 14, 2016

Hi Clive,

you probably want to know for which of these 2 systems the tooling is better/more mature, correct?

I don't have any preference, but let me give you an advice: I wouldn't deploy via the buildserver to production instances. Normally these tools deploy all instances at once, which isn't really appropriate for production instances; with AEM you'll have a downtime on your publish servers then.

kind regards,
Jörg

Level 6
January 15, 2016

Jörg Hoh wrote...

Hi Clive,

you probably want to know for which of these 2 systems the tooling is better/more mature, correct?

I don't have any preference, but let me give you an advice: I wouldn't deploy via the buildserver to production instances. Normally these tools deploy all instances at once, which isn't really appropriate for production instances; with AEM you'll have a downtime on your publish servers then.

kind regards,
Jörg

 

Hi Jörg,

I had not thought about how the build tools will effect the publish server. Thank you for explaining this.

However your answer has created a new question in my mind.

What then is the better way to deploy to the publish servers?

 

Regards

Clive

Asa_BAccepted solution
Level 1
January 15, 2016

Hi Clive, both Jenkins and Bamboo will get the job done. If cost is concern Jenkins is open source. However, I recommend Bamboo over Jenkins, if the team is using Jira and/or the rest of the Atlassian stack. I personally find a lot of value in Bamboo's ability to automatically generate a pipeline per branch.  At scale this permits a githubflow style of branch management. 

You should really consider the new bread build tools such as Wercker, Circle-CI and Travis which forgo the complex user interfaces in favor of a simple YML configuration file.

I'd also highly recommend Ansible for managing the provisioning and deployment of AEM infrastructure. Having your build server execute ansible playbooks really help makes things so much more manageable. Puppet, Chef are possible of course, the main point is to automate everything. Of course Ansible has Ansible Tower as a UI to help out.