Is Your Continuous Delivery Model Destined to Fail?
Here's a scary thought entering more and more heads of late: What if our Continuous Delivery implementation is destined to fail?
Anybody asking that question is probably at a critical stage: sometime before Continuous Delivery (CD) is a proven in-house success, but after the commitment to CD has been made. This is a point in time when it's enormously important to understand the full scope of what CD, as a theory, really means - and what it will really require, if it's going to deliver the intended results.
Now, before going further I'd like to make it clear that I believe wholeheartedly in the principles behind CD. I’ve see it revolutionize underlying software development models for many of our customers — transforming delivery from a sporadic, monumental event fraught with worry into a smooth, frequent, reliable and easy process.
And I’m not alone. That's exactly why leading players, from Amazon to Google, have made a commitment to CD at a deep level (and why they're reaping many business benefits as a result). For most developers today, the question isn't really "Should we go CD?" but "What's the best way to go CD?"
Putting Theory into Practice
While the concept of CD is compelling, committing to an ideal is often easier said than done. Quite a few obstacles stand in the way of making CD a reality that pays off as much as you expect.
For many, letting go of certain manual approval steps or documentation techniques is an extremely troubling idea. Others face technical hurdles simply integrating their development and delivery tools with Continuous Integration software. Finding an elegant solution for Continuous Testing – one that both covers 100% of the code base and can seamlessly support automated build/test processes at every check in – can also be quite challenging.
Obviously, CD means far more builds are rolled out far more often. This might mean users are constantly enjoying ever-increasing performance and compelling new features. Outstanding! Break out the champagne.
Alternately, it might mean users go from a stable build to a flaky build — and with more frequent rollouts, they never know what to expect next. That's not so charming
Eliminating Programmatic Inconsistencies
This second scenario can stem from disconnects or bottlenecks within the CD model itself. Any manual intervention in the code development/integration/build process can impact outcomes. However, the real problem typically revolves around the fact that testing has failed to keep up with the advances in Continuous Integration and Continuous Delivery methodologies. Because code scenarios have become so complex, usage loads so high and performance requirements so stringent, developers have had trouble adequately matching test resources to needs at each stage in the development-delivery lifecycle.
While it seems contrary to the idea of Continuous Delivery, companies are actually better off delaying development work until they can secure continuous access to a suitable test environment capable of fully evaluating functionality and performance at scale. Without it, the good intentions behind CD will fail and the opportunity to introduce bugs will increase exponentially.
Now that’s a thought that would keep anyone up at night.
Getting it Right
Getting back to Outcome #1, means baking formal testing—and not just performance testing, rather all testing types—deeply into your CD implementation. And more than that, baking it in at every stage.
So try this idea on for size. What if you could implement world-class performance and stability testing at stages ranging from code commitment to configuration to deployment? More: what if the testing process itself could be automated and integrated with the development and CI tools you already use – be it Eclipse, Selenium, Jenkins, or Cloudbees?
That, in a nutshell, is what BlazeMeter believes that every mobile, web and cloud app developer should have at their disposal. With it, your odds of a successful CD implementation will go way up – and so will release quality.
Free White Paper To Guide You To Continuous Testing Success!
We’ve put together a whitepaper, Continuous Testing In Practice, that tells you about some of the biggest barriers companies like yours face when it comes to implementing Continuous Delivery. And it tells you how to effectively use Continuous Testing to overcome these challenges.