My son is the proud owner of a Mitsubishi Evolution Mark VII. That might not sound like a big deal, but the petrol heads among us know that these cars are beautifully engineered examples of automotive muscle. Circa 2001, he keeps it in peak condition by constantly tuning its performance. Any changes, like the addition of new fuel injectors, must be accompanied by requisite tweaks to the car's Engine Control Unit (ECU) – such as fuel/air ratios, knock sensors and so on. Knowing that performance can only be fully assessed when the car is operating in a variety of conditions, he uses software to gather masses of real-time diagnostic data and then identify optimum settings.
Socket wrench meets software smarts – love it.
There are valuable lessons here for monitoring software applications. With business so dependent on a complex mesh of technology components, having similar insights into application performance is essential. Not just to detect problems, but to identify how applications should be tuned to deliver the best possible outcomes.
Put the Pedal to the Metal – the Value of Production Monitoring
In DevOps, great attention is placed on improving quality and preventing software defects earlier in the software development lifecycle. Commonly known as "shift-left", the practice of employing monitoring earlier rather than later makes perfect sense. Pick up performance problems upstream and avoid calamities downstream in production – it's a no-brainer. However, shift-left is only part of the solution, because as any savvy engineer will tell you, it's just as important to have complete performance insight when applications are running full-tilt in production; with the "pedal to the metal."
Sure, we can run lots of web-scale testing, load simulations and performance evaluations before going live, but with today's complex cloud-based applications, system interdependencies and unknown demand, there's nothing as valuable as real-world insights and instantly feeding this back to engineering – to shift monitoring right.
But most application monitoring solutions aren't engineered to shift-right – what's especially needed to build application strength and muscle. Look at the way most products are described and you'll find lots of talk about finding problems, managing alerts and avoiding downtime. But to me, this isn't nearly enough. What's also important are approaches that take more of a glass half-full approach – identifying patterns of performance under and variety of real-world conditions and equipping software development engineers with the nuggets of information needed to drive improvement.
Lack of Performance Insight Leads to Bad Tuning and Sub-Optimal Apps
Gaining these insights remains problematic for many organizations. Naturally, developers don't have free reign to initiate best guess tweaking to production systems and many existing monitoring systems only provide partial answers. And it isn't a data problem. Organizations today have great tools to collect data, but because these products are engineered to analyze in silos, they can't provide richer insights.
Take for example a case where the network team identified that certain conditions can result in decreased latency for web traffic. All great we might say, but because that data can't be passed in context to application support and development teams, there's no indicator into what services are impacted and which ones should be optimized and tuned to exploit it.
It's critical, therefore, that in order to gain the benefits of a "shift-right" monitoring approach, modern application performance management solutions provide capabilities much akin to those used by automotive engineers when tuning high-performance cars:
■ Single-source of truth – one screen to instantly assess the performance of applications and services as they operate in production. A system that links application performance to outcomes and aligns every engineer – be that SREs, software developers – everyone – around shared business goals, conditions and problems. A system that unequivocally identifies which services are meeting service level expectations and those that are not. This way there's no argument as to where tuning is really needed.
■ Noise Elimination – modern automotive systems account for noise and alarms, directing mechanics to major conditions and faults. Modern application monitoring does the same, leveraging analytical methods to clinically identify anomalous and emerging conditions that could take applications "off the road." Always remember that any application monitoring tool deserving a place in your own organizational garage should do one thing really well – align IT pain with business pain.
■ Detective work – fault finding is one thing, but can your system gather, correlate and contextualize data from multiple sources in order to deliver those truly golden insights? Like a modern ECU with diagnostic smarts, modern monitoring solutions understand the changing behavior of application performance as they operate on and across an ephemeral mix of cloud infrastructure and network fabric. Not only automating evidence collection and analysis to fix problems fast, but using insights to identify patterns and practices – in code, in designs, even architecture, that correlate to the best business outcomes.
The modern digital business demands high-performant applications – systems with muscle. Keep on shifting-left to improve quality and prevent problems, but never forget the tuning and optimization opportunities a shift-right approach can afford.