Wednesday, February 20, 2013

Step It Up to Continuous Delivery Without Breaking a Sweat!


A guest post by Krishnan Badrinarayanan, one of our good friends at ZeroTurnaround

Why bother? Happy users and $$$ … Duh

If you are a SaaS vendor, provider of online apps, or an online retailer, offering 24/7 uptime is essential to the success of your business. Any downtime means lost revenue or unhappy customers. At the same time, your customers expect only the best from you. Your predicament: how do you release all those awesome improvements without calling for maintenance windows so that you can push updates frequently?

Ideally, you’d like to release updates frequently, without impacting user experience. Fail to do so and you risk driving users to competitors or other alternatives. Great products give you a competitive edge and most importantly, lead to loyal customers.

How do Dev, QA and Ops teams rise to the challenge?

Development and QA teams create, build and test products and features rapidly as users demand more, with productivity tools from CloudBees at their disposal. Operations teams then follow through to deliver updates to users as quickly as possible without interrupting service or compromising stability. This usually means calling for a maintenance window at 3AM on a Sunday. And this still doesn’t ensure that no user is interrupted! Plus, if something were to go wrong, the folks that can help fix it are usually sound asleep at home during these midnight deployments.

Enter Continuous Delivery (Continuous Integration + Release Automation)


How do you continuously deliver cool features to your users, proactively, seamlessly and reliably? And during business hours without impacting user experience? Answer: The right kind of AUTOMATION.

With the right tools, you can implement a single application deployment pipeline - from developer to user - with all the checks to ensure that no bugs find their way to users. Your team should be able to develop, safely test and deploy updates seamlessly and as frequently as required, without impacting user experience. This is more or less the Continuous Delivery that we aspire for.

Tooling for Continuous Delivery with Jenkins and LiveRebel

An excellent set of tools is - Jenkins Enterprise by CloudBees and ZeroTurnaround’s LiveRebel, for release automation and management - will help build an application deployment pipeline. Once implemented, the diagram below shows how code updates go from developers, through QA and staging, into production, and in front of your users. We will go over each stage one by one.


 
  1. Develop: Developers, based on user needs and feedback, quickly develop features using their favorite IDE and commit them to source control.
  2. Integrate: The code changes are then integrated using Jenkins Enterprise by CloudBees. If the integration fails, Jenkins immediately sends feedback to the developers who then proceed to fix it. Once the build is generated by Jenkins, it is passed over to LiveRebel via a readily available plugin.
  3. Deploy: ZeroTurnaround’s LiveRebel deploys the build with database and configuration changes across environments of your choice - whether it is hosted by CloudBees, in the cloud, or in your datacenter. In the example above, LiveRebel deploys to the testing and staging environments where UAT and staging tests are run, and then to production, with zero downtime and without disrupting user experience.

The benefit: Reduced risk, more user feedback, happy customers!

Practicing Continuous Delivery enables software teams to automatically release features, however small, regularly. Users get to try them right away and provide feedback immediately via social media, forums, email or other channels you can listen into. You are also exposed to a lot less risk since you avoid making massive updates that could run successfully in testing but fail in production (dang!). With LiveRebel, if a deployment were to fail in production, it will automatically rollback to the previous state without impacting users.

Setting Up Your Own

You will need to first install both Jenkins Enterprise by CloudBees and LiveRebel. As you proceed to do so, you will receive information on how you can configure them individually.


Then take a few minutes to install and configure the LiveRebel plugin for Jenkins and follow these instructions.

You are now tooled up and ready to practice Continuous Delivery!

By integrating LiveRebel with Jenkins Enterprise by Cloudbees, you have now created a application deployment pipeline right from development, through QA and Ops, directly to your users. You and your team can now confidently practice Continuous Delivery and provide your users new features with 24/7 uptime. Plus, you and your colleagues will get to sleep soundly on deployment Sunday!



Krishnan Badrinarayanan is the product marketing manager for LiveRebel, ZeroTurnaround's application release automation and management tool that helps software teams take products to users faster. A Java geek turned product marketer, Krishnan is well versed with issues that plague IT teams and is passionate about applying technology to solve their challenges. Prior to ZeroTurnaround, Krishnan held various positions within large, mid-sized and start-up companies.

Follow CloudBees:
   

No comments:

Post a Comment