On-click deployments - From fantasy to reality (part 1)


Before describing my doctrine about deployments, and One-clink Deployment (OnCD) in particular, I would like to review what 'OnCD' is.
Imagine a café scene, located in the middle of an oldish pedestrian mall in central European town.
A man in his 30's, well dress with a Gentleman's manners, sits by and drinks his espresso with small sips. Suddenly, within the crowd's noise, a cell phone rings.
The man pulls out his chic phone, listens for a second and mumbles few words into mouse piece.
He sets his phone aside, opens his laptop, tap a few stokes on it and smiles to himself. Closing back his computer, he returns to his awaiting espresso. Taking another sip, stretching back and enjoying the warmly sun…
Watching from the side, some would say it’s a classic scene from a spy-movie, where an agent gets a phone call about ransom money or an order to activate a bomb remotely.
However, as an open-minded technical person, with just a bit of imagination, I would suggest an alternative. Listen to this one:
An IT personal -  say system administrator - gets a phone call from the project manager, learning that all bug fixes and latest features were committed to the source repository. It is now time to execute a build-cycle to compile and deploy the application to a production site, or at least to the local test field. All done with a few key strokes.

My theory about deployments
It's not a fantasy. If you have a healthy build cycle, you can enjoy quality time in Europe (or an exotic place in Asia) - during day work - and perform builds with only few clicks in only minutes of your precious time.
On the other hand, if have a problematic build cycle, you can expect passing some nights at work, reviewing textual log files, running ugly scripts and eating lots of Pizza (that's not that bad, but it's not healthy either).
Within the following entries on my blog, I will share with you some of my experience related to healthy build cycle, where you can compile, package, deploy and install - all with just a few clicks, ideally with a single click.
I will use a traditionally build server, such as Hudson CI and Jetbrain's TeamCity to do the hard work for me.
Last, I will demonstrate the strength of a remote repository, such as Artifactory, that empowers the build cycle and enhance our way of life.


jbaruch said...

Yay! Don't forget to drop decent build tool to the mix - let's say Gradle.

Guy Nir said...

I'm gonna speak about Maven, Gradle, Buildr and even hybrid (mixed-language) solutions, perhaps integrating Scala/Groovy or non-Java languages, such as Erlang.

Post a Comment