Automation assisted code promotion
Christmas is a great time for football fans. And as fans know, every handoff is a risk for a fumble. The same is true with DevOps.
Christmas is approaching, and for fans of American football it’s an exciting time. The college season is coming to a close with the playoffs and bowl games, and in the NFL its crunch time in the race to the post-season. In every one of these crucial games, each handoff could be the moment a team wins or loses a season-defining game. Similarly, in DevOps, every deployment is an opportunity to succeed or fumble.
Automation assisted code promotion can prevent the fumble. Why? Because unlike in football (or any sporting endeavor) automation allows you to repeat the same process precisely in any environment, any number of times. Indeed, many of the most successful sportsmen and women are those who come closest to imitating this robotic certainty, regardless of pressure or circumstance.
But even if you look at the greatest plays and tried to recreate the same conditions, they would run out differently. Little micro-decisions by the players, a gust of wind, or the angle of a ball’s trajectory could all slightly vary, resulting in a vastly different outcome. Many of sport’s memorable images are those of an individual failing in their bid to complete a straightforward action they have done thousands of times before: Roberto Baggio putting a penalty over the bar to lose Italy the World Cup final, Jean Van de Velde fishing around in water mid-way through blowing a three-shot lead on the final hole of the British Open, and Scott Norward – “wide right” – Super Bowl XXV.
If these acts were automated processes, the results would be very different. Automation enables things to be exactly repeatable – it’s the great thing about robots and continuous delivery automation mechanics. The external pressure hinging on a final play would certainly not get to them. Whereas, without automation, you are reliant on notoriously fallible human beings – even with semi-automated process you need a human to kick things off. Moreover, you need an automation system that is not too rigid; rather the modern enterprise requires one that is intelligent, flexible and can run across any environment, interacting with any technology.
Why Continuous Delivery is a Game Changer
With continuous delivery (CD), you use the same automation mechanics in every environment. So, by the time you get to production (IT’s Super Bowl…), the process is already proven in other environments dozens of times. The unpredictability of this final stage is in essence non-existent.
As the code is automatically moved through these environments, you can protect and accelerate its promotion with rule-based workflows, mobile notifications, and other process controls. How many quarterbacks would also like guaranteed protection from their offensive linemen? Integrating, automating and orchestrating the entire DevOps toolchain empowers Operations to be more agile, QA to be more streamlined, and Development to be more compliant. Ultimately, it’ll eliminate the risk around the release.
Indeed, if something goes wrong in production and you have not been using the same automation mechanics in development as production (or any other environment for that matter), you are not doing continuous delivery. If you are not doing continuous delivery and you simply chuck your code over the wall, when something goes wrong you have to investigate everything including the deployment process itself. A monumental waste of time.
What If the Outcome is Not What I Desired?
Let’s be honest; for all the reliability and consistency of technology, there will always be occasions when something brings the system crashing to a halt. But unlike in sport, there won’t be the endless questioning, ‘Did the coach have the in-game tactics and adjustments right?’ ‘Did the star player get overwhelmed by pressure?’ ‘Were the field and weather conditions responsible?’ ‘What impact did off-field distractions have?’ And so on and so forth.
The machine will always give you what you ask it for. It won’t make its own inferences or overrule your requests. It does what you say, not what you mean. Therefore, you don’t have to worry about the automated processes and procedures getting the app to its end state; just the interactions and inputs you make. And as such you can focus on what changed and work out what might have gone wrong instead of having to question the deployment processes themselves.
For if your vetted process runs in a predictable manner, you can confirm precisely what actions it took by examining the audit logs. As, human beings, we often conflate what we think we have done with what we have actually done. Muscle memory can play tricks on us; occasionally we skip a step or miss a line – our memory for whatever reason fails us on the tenth or eleventh time. Our memory is loaded will 11 other memories of doing the exact same thing, so we get into a cycle of thinking: if I did it 11 times, why would I miss the twelfth? With automation, you have a full record of everything. It removes human error and means you can quickly start looking at the root cause of the mistake.
Moreover, once the error has been found we can roll-back automatically to a stable state. Imagine if in a live football game, you could rewind and run the same play. The resulting outcome of the play is guaranteed to be different!
For more on how CA Technologies can help you use automation to increase productivity, eliminate errors and build your fully automated agile enterprise, click here.
Blog by Valia Papaspyrou, Marketing Director for the Automation BU at CA Technologies.