While discovering internet for answers to my questions regarding Service Discovery, Monitoring, Scheduling with Docker for production deployments I found nice resource to get some thoughts regarding this, here it is http://progrium.com/blog/
I’ve just finished preparing a demo for my upcoming talk at EPAM SEC 2013 regarding build tool Buildr.
The idea is to demonstrate usage of Buildr for building of some open source projects. I chosen next projects, written in different programming languages, CodeNarc on Groovy, JUnit on Java and spring-scala module on Scala.
It’s ok, I’ve done with switching of build to Buildr, but there is a constraint for talk – I cannot use my laptop to live demo. I was thinking about remote connection, VM preparation, and finally come up with idea to use Travis CI.
After some reading of documentation and playing with Travis CI build configuration I compete my set up, and it just wonderful how it’s easy and pretty straight forward to achieve continuous integration for open source project.
There was one trick though with using of Ruby kind of project to build Java related source code, but it was easily done with help of Bundler to install Buildr and then just execute it’s commands through
bundle exec buildr clean test
Here are my set ups:
Thanks Travis CI for great job.
There is a set of open source deployment orchestration tools I’d like to keep in hands:
As for me this is much more interesting tool comparing to rest due it’s distributive nature, speed and scaleability. It provides a transport for Capistrano and seems not so hard to set up. It has one big issue – usage of torrent peer-to-peer transport protocol (BitTornado), in some companies it could be illegal to use. But torrent’s transport is a working horse in Murder’s case.
- Other one is Capistrano – http://www.capistranorb.com/
This tool is written in Ruby and this year was re-incarnated. After 5 years there is a new version 3.x with quite nice promises. We were used it at one project to deploy several huge Java applications but within scale Capistrano was lug a bit.
- The last but least one my attention was dropped onto is Fezzik – https://github.com/dmacdougall/fezzik
That’s probably it to remind me some time later.
There is a presentation from my speech at JEEConf regarding Vagrant and it’s practical usage for JEE developer – http://www.slideshare.net/IzzetMustafaiev/simplify-jee-project-env-configuration-with-vagrant
As for benefits:
- development environment is like production
- usage of same set of recipes to set up testing or staging environments
- effortless creation and destroying of env
- easy sharing changes with testing team
- less time spent on env configuration due to automation
In some time at JEEConf site will be a video from and if you’re interested you can check it out.
If once upon a time you need to start something from Jenkins, Websphere Application Server for example, and to not to wait till server will be stopped and not to have stopped process after job finishes you can use approach described in next article https://wiki.jenkins-ci.org/display/JENKINS/ProcessTreeKiller.
In my case I have a Linux machine and after start WAS always goes down, after I add
BUILD_ID=dontKillMe /app/was/.../startServer.sh server1
Now I have running server after finished job.