How Netflix, Mars Curiosity Rover, testing & automation can help us deploy better code, faster

YOW! 2015 Brisbane is a wrap! I have been to many developer conferences over the course of my career in IT, and the level of thought leadership and innovation at this event by speakers, sponsors, and developers won’t soon be matched. The best and the brightest from Netflix, Facebook, Microsoft, Expedia, NASA, and DARPA, (just to name a few) lead keynotes and sessions that inspired and shaped the minds of all attendees.

Our Mars landing is the “End User”

Adrian Cockroft, Anita Sengupta, and Kamal Oudrhiri kicked off the conference days as keynote speakers. Adrian lent us his insight from his cloud architect experience at Netflix, while Anita and Kamal inspired us with their crucial contribution to the successful landing and operation of the Mars Curiosity Rover where there is ZERO margin for error. See “Curiosity’s Seven Minutes of Terror”.

Without a doubt, the common theme of these keynotes was how testing and automation are the key principles of success in technology. There is no room for assumption or guesswork where there is zero margin of error.

Developers, we live in a world where bugs are a normal part of our code evolution, no matter how diligently we try to prevent them. However, we must be continually vigilant in improving our deployment and release success if we are to remain successful in delivering the best end user experience possible. Our version of a successful Mars landing, is a great end user experience.

DevOps needs end-to-end “Visibility”

In their keynotes, both Adrian and Anita highlighted the importance of end-to-end performance visibility of your technology architecture. As developers, we

YOW2need to make this our creed.   The world we now develop in no longer allows us to deploy code that we EXPECT to work, especially when our application supply chains are so complex. End users see a web page rendered, but that presentation layer most likely passed through dozens of host servers and thousands of lines of code to be successful, each of which have the ability to fail, or frustrate the user experience.

Gone are the days of releasing code that has to be rolled back because of a bug. We develop in an agile world where rapid change is demanded by the business, and if we fail, we must fail forward.

The old saying goes “you can’t improve, what you can’t measure”. Do you hear this developers?  How do you know that your code is faster or slower than before, and how do you know if the end user experience is better or worse than your last code release?   Visibility is the answer, and it starts in the dev environment, not in production.

Instant root cause analysis is crucial

It’s not realistic to expect zero bugs, zero hardware failures, zero network interruptions, or a perfectly unified cross-browser user experience. I am confident that we will be living on Mars before Microsoft quits introducing new IE headaches for developers.

YOW3Until then, we need rapid root cause analysis in the “end-to-end” visibility of our application supply chain, and it needs to be automated. Let’s not confuse “root cause analysis” with “monitoring”. Monitoring is a passive exercise, while root cause analysis isolates the domain of the defect, and has “pin-point” level accuracy. YOW4It’s an agile activity that leads to rapidly engineering a solution.  More important still, is early root cause analysis. Doing this correctly requires the same decision making tools in DEV, QA, and PROD. NASA’s success in delivering the rover to the red planet began with highly accurate decision making tools during the development cycles of the mission, not waiting until final stages of the mission to instrument, detect, and remediate performance problems.

Observing response times during a high stress load test no longer cuts the mustard. If you don’t have visibility into every layer of your application supply chain, and “line of code” level performance data while under load, you are doing it wrong.

It comes down to “Service Assurance”

YOW! sessions and keynotes covered too many topics to discuss at length here, but one underlying message was clear. All of our developer efforts come down to “Service Assurance”. Unpredictability is like a cancer to the business. To stay competitive requires development teams to shift from being reactive to proactive.

YOW6At the core of every design, performance has to be feature #1.YOW5
Even the most innovative UX features, automated deployments, and Docker-based cloud architectures are doomed to failure if performance cannot be instrumented and visualized from end-to-end starting with the user. As developers, we are expected to deliver continuous improvement and an exceptional level of service assurance from our software.

We are highly passionate about performance visibility, and ensuring that your digital business is successful. Thanks to those who took the time to stop by our booth and learn more about Dynatrace’s application performance management platform. We hope to see you next year.

Matt Hintze hunts bottlenecks in code. He has 20 years of experience in performance testing and tuning, while developing applications with a core focus on performance and scalability. Currently he works for team Dynatrace in Brisbane Australia as a solutions architect.