Doing DevOps without monitoring and measurement? Expect to fail, warns New Relic's Abner Germanow

'If you don't measure the progress that you're making and you're not doing it in a data-driven fashion, you will fail,' says Germanow

One of the key requirements for successful DevOps adoption is ensuring that clear information about the performance of code can be made available to everyone working within DevOps teams. That information, furthermore, ought to be disseminated via collaboration tools that everyone has access to.

That is the message of Abner Germanow, senior director of solutions marketing at New Relic, who added that far from encouraging finger pointing, it can also help take much of the heat out of bug fixing.

"It takes a lot of the emotion out of the environment, and focuses the activities on fixing problems, holding the team accountable to each other and speeding up the process," Germanow told Computing.

The drive behind DevOps, he added, is ultimately powered by the need of organisations of all types to better serve customers - 24 hours a day, seven days a week - in a connected world.

"There's pressure, competitive and/or growth-oriented, to ensure that software and 'the digital experience' is phenomenal, and is driving the business forward. What companies use New Relic for is to make sure they are focused on that application. If you think about the complexity of a standard application in a decent-sized web operation, it might have certain components in the cloud, and some in the data centre, and there's a lot of complexity in all of those components.

"Trying to run your own monitoring infrastructure on top of running all of those components is a huge distraction that people don't need," said Germanow (pictured left). However, organisations want the monitoring capability without the kind of infrastructure associated with old-style systems management.

"That's extremely important when you're dealing with environments where the application is changing on a regular basis, because you can't assume that just because everything was working well yesterday, that one line of code that was changed this morning could change your experience quite dramatically," he adds.

That is to say, in a DevOps environment where there might be daily releases, it's important to have access to application performance figures on a minute-by-minute basis so that action can quickly be taken if one of those releases affects the running of the application, and the experience of users.

New tools

New Relic is one of a number of new tools and services - such as Chef, Puppet and Jenkins CI - that have emerged to support organisations as they shift the focus of new developments towards the cloud, and IT teams are increasingly reorganised around DevOps methodologies. Whereas, for example, Puppet aids with automation, New Relic provides the monitoring technology, plugging in to some of the emerging collaboration tools that IT teams favour over email, such as Slack and HipChat.

"New Relic agents are deployed alongside the application right with Puppet and Chef. We integrate with those, so the way that you deploy New Relic into your application can be very closely tied to those automation tools.

"Then, in the workflow itself, many DevOps teams are using tools like HipChat or Slack, as well as ticketing systems like Jira. On the other side, we integrate our alerting and notifications into those tools so that when, say, a Puppet run or changing configuration is kicked off, that will show up in Slack or HipChat. If something adverse happens, New Relic will put that back into the collaboration tool so that the team can understand what's happening.

"The integration of the tools that people use is something we are big on. We have a slick API structure for doing that [but] we will never be the only tool that people use in the DevOps environment. There will always be lots of different tools that have different specialities," said Germanow.

Continuous integration server Jenkins CI is another (open-source) tool that is increasingly widely used in DevOps environments.

[Please turn to page two to read about monitoring Docker containers and how code is becoming the beating heart of big business]

Doing DevOps without monitoring and measurement? Expect to fail, warns New Relic's Abner Germanow

'If you don't measure the progress that you're making and you're not doing it in a data-driven fashion, you will fail,' says Germanow

"When you deploy new code into the environment, those tools will send a notification to New Relic and we put a deployment marker on the graph that you can see. That comes along with a set of other information, so that when I'm looking at the performance of the application or the adoption of a particular feature I can see that George (for example) deployed code at 2.46pm and things either got better or worse. If they got worse, then I can talk directly to George about that and if they got better I can send a note to George's boss to tell him that 'George is awesome'," he said.

The shift towards tools like New Relic from old-style systems and network management tools reflects the shift towards cloud and DevOps methodologies, added Germanow.

"If you look at the history of monitoring, we used to monitor the networks and servers, partly because that was the only thing that we could economically monitor. We used to assume that if the network and servers were okay, the application was probably fine.

"That worked in a world where the application didn't change every day; every week; every quarter. But in a world where high-performing software teams are making multiple changes every day, just monitoring the network and the servers alone doesn't give you visibility into the efficacy of those changes or visibility into the actual customer experience," he said.

Containerisation

However, in cloud environments, much of the old-style systems management software is irrelevant, as it's ultimately owned and run by someone else, and organisations are far more focused on the health of their applications rather than their servers.

"I don't own the server any more so I don't care about the server from an investment perspective. But I do care about the server in terms of how well the application is performing and whether it's the server that's the problem, the network causing a customer experience glitch or it's in my code. I need to have visibility into all of that," he said.

Increasingly, added Germanow, the application monitoring challenge in the cloud environment is focused on Docker "containers". Docker containers provide an underlying server consistency that enables cloud developers to make constant changes to their applications with confidence.

"From a monitoring perspective, that layer of abstraction actually created a blind spot because you have to be able to see what the application is doing and you want to relate that back through the containers all the way down to the infrastructure that you are paying for."

Ultimately, he added, DevOps is about much more than a mere methodology or changing the way that IT teams work - it's about re-orienting the organisation around the IT that is becoming the beating heart of the business.

"Large companies in particular are becoming software businesses. You can see a transition inside development teams from focusing on code that was not necessarily customer facing, to code that actually runs the business. When you make that transition, there's a level of responsibility that developers have to take for that code - it raises the importance of understanding the impact of that code, not just from a performance standpoint, but from a business standpoint," said Germanow.

That's what makes monitoring and measurement so important, he added.

"If you're going to do DevOps, if you don't measure the progress that you're making and you're not doing it in a data-driven fashion, you will fail. You will fail because your ability to connect the success of the project; the ability for you to bring the cultural values and the responsibility that developers have for the code that they write will be lost in buzzwords and methodologies.

"But if you measure your progress and have clear visibility into the metrics that matter to your business and connect your application performance to your customer experience, then you will win."