Tag: feedback loops

  • Why DevOps Needs Cloudified NPM

    Why DevOps Needs Cloudified NPM

    One of the three “ways”—or principles that DevOps guru Gene Kim articulates as defining DevOps—is amplifying feedback loops. One of the key ways that Ops contributes to this amplification is by implementing rich monitoring instrumentation of operational conditions. The move toward more automated configuration management and the rise of cloud-friendly application performance management suites have gone a long way to providing strong feedback loops. However, network performance monitoring (NPM) is sorely in need of cloudification to become relevant to DevOps.

    In one of my previous articles on devopsy.kinsta.cloud, I wrote about the impact of DevOps on IT operations management, and noted that infrastructure management tools have largely lagged behind APM in terms of becoming cloudified and API-friendly. NPM is a case in point. Just to be clear on terms, by network performance monitoring, I’m talking about monitoring that collects metrics such as latency, TCP retransmits and out-of-order and fragmented packets. These four metrics can tell a network engineer a lot about whether the network is the root cause or a major contributing cause to application performance issues. Other metrics and data points that are highly relevant to NPM are interface utilization percentage, traffic flow statistics and, for any apps or services that rely on internet communications, BGP paths. These latter metrics and data sets help engineers locate underlying causes in the network, such as congestion on an interface, large spikes in flows, internet path changes or correlation of performance issues with traffic traversing a particular ISP’s network. Sounds great, right?

    The problem is, the way these metrics have been collected is all wrong for DevOps practice. For the last two decades, NPM tools have fallen into two main buckets: free, manual tools such as TCPDUMP, MRTG and WireShark; and monolithic, siloed commercial tools. Nobody will ever dispute the value of free tools, but at a certain point, chasing problems around with manual tools just doesn’t scale, so sooner or later most NetOps organizations have to invest in commercial tools.

    Commercial NPM tools were primarily architected in a pre-cloud, pre-DevOps era, when data centers all were inside the WAN, applications were centralized and monolithic and all users were somewhere else on the WAN in a campus or branch office.  Metrics collection was performed by appliances via connecting to the span interfaces of major routers and switches at choke points—the junctures of LAN and WAN connectivity.

    That era is disappearing rapidly. Most new applications are being built on a distributed basis, leveraging hybrid cloud. With distributed application components, there is a much more complex mesh of communications at play, much of which will cross networks and the internet. Further, in most cloud environments, you simply can’t deploy an appliance—not even a virtual one, since in many cases there simply are no span ports.

    The problem with traditional NPM goes beyond a lack of fit with modern application architectures. NPM appliances are designed as vertically integrated systems with a GUI as the only real way to get data out of them. As a result, their APIs are usually at best second-class citizens. This is problematic for DevOps because amplifying the feedback loop means being able to serve meaningful real-world data up across different teams.

    The cloud and DevOps gap in NPM is pronounced enough that major analyst firms have taken notice. In May of this year, Gartner analyst Sanjit Ganguli published a research note titled, “Network Performance Monitoring Tools Leave Gaps in Cloud Monitoring.” It’s a fairly biting critique of the NPM space that says, essentially, that the vast majority of current NPM approaches were largely built for a pre-cloud era, and are unable to because the new complexities brought by decentralization and full-stack virtualization. As a result, network managers are left in the lurch when trying to adapt to the realities of digital operations.

    What is needed to cloudify NPM and make it DevOps-friendly?  First of all, with distributed, hybrid cloud applications, there need to be options to embed NPM metric collection agents in cloud server deployments, either directly on app servers or load balancers such as NGINX or HAProxy. With container management and configuration automation tools, deploying lightweight NPM agents to more distributed points is very doable. By collecting NPM metrics on or very close to application servers, you get the most accurate read on “is it the network?” when app performance issues arise.

    Another key aspect of cloudifying NPM is where the analytics happens. Appliances have severe compute and storage constraints. In the era of big data and cloud-scale compute economics, relying on appliances for NPM analytics is beyond outmoded. There are a plethora of open-source big data platforms as well as a growing number of  emerging commercial SaaS options for NPM analytics. Today, big data network analytics platforms allow engineers to perform deep ad-hoc analyses on billion-row datasets and get answers in seconds.

    DevOps’ mandate for amplifying the feedback loop plus the availability of copious cloud compute capacity means that there is no excuse to not aggressively measure everything, including network performance. Networking teams can and must go beyond config automation to change the way and the scale they gather and share metrics to server and app dev teams. Cloud-friendly NPM is a needed step to bring about Net DevOps as a lived reality in IT.

    About the Author / Alex Henthorn-Iwane

    AlexAlex Henthorn-Iwane is the vice president of Marketing at Kentik. He has more than 20 years of experience bringing new technologies in networking, security and software to global markets. Henthorn-Iwane leads the global marketing strategy for Kentik and helps the company bring its story and solutions to network-dependent organizations around the world. Connect with him on LinkedIn, Twitter or SlideShare.

     

  • My picks for opening day of DevOpsDays Austin

    My picks for opening day of DevOpsDays Austin

    As we wrote earlier, we are happy to be attending and sponsoring DevOpsDays Austin 2015.  The opening day morning is chocked full of great sessions with the afternoon dedicated to openspaces as is the norm.  While everything from breakfast to Damon Edwards keynote through JJ Ashgar’s session on Chef before lunch look tasty.  Here are three sessions that I will be attending that I am really looking forward to:

    michael coteThe Coming Donkey Apocalypse by Michael Cote’ –  Cote’ formally of 451 Research and now with Pivotal is going to talk about the “state of the union” of Devops. From the abstract:

    DevOps is growing in popularity and even usage in “the real world.” It seems like we’re slowly getting past unicorns only and seeing many “horses” do DevOps. Soon we’ll see the mainstream market – the “donkeys” – start to pick it up and bend DevOps to its will. This talk will go over “the state of the union” of DevOps and provide some guidance for how to prepare for the donkey apocalypse.

    I don’t know what to make of this title but it peaked my curiosity. I don’t think DevOps adoption moving mainstream is equal to moving from horses to donkeys and so it is not a very flattering title. On top of this not only don’t I think main stream adoption of DevOps means it is Donkeys adopting it, I do not think it means an apocalypse for DevOps.  In fact I think it is a good thing. On top of this, I think the idea of calling mainstream adoption, adoption of the  donkeys and them causing an apocalypse smacks of elitism and is against what DevOps is about. I don’t think it is a bad thing that more organizations will get involved and that they will “bend DevOps”. I don’t know Michael well and have only spoken to him once briefly. Everything I hear though is that he is a very bright guy and dynamic speaker and writer.  So i am interested to hear what Michael has to say in this session and whether he thinks it is a good thing, bad thing or how we can help move it along. You can’t judge a book by its cover and you sometimes you can’t judge a session by its title and abstract.

    jpaulreedFixing your Organization by Continually Breaking It by J Paul Reed – Reed is a consultant and has over a decade of experience in the trenches as a build/release and tools engineer, working with such organizations as VMware, Mozilla, and Symantec. In 2012, he founded Release Engineering Approaches, a consultancy incorporating a host of tools and techniques to help organizations “Simply Ship. Every time.” From the abstract:

    When we discuss DevOps, we often find ourselves mired in the “tools vs. culture” debate. A point often forgotten is the “amplify feedback loops” of DevOps “3 Ways” and how to build that into our cultures. In this talk, we’ll look at the importance of continually breaking your organization with experiments, some surprising examples, and how to do it in such a way that you aren’t left with a broken organization.

    I love this concept going back to Netflix and the Simian Army and have heard similar talks before on it. Looking forward to what Reed has to say and learning. Amplifying feedback loops is something I would like to see more written about as well.  I am looking forward to this one!

    josh cormanContinuous Acceleration: Why Continuous Everything Needs a Supply Chain Approach by Josh Corman – Josh is of course the CTO of Sonatype and a former 451 Research analyst too. Besides all that Josh is a friend from the security world that I know a long time. This talk sounds like a continuation of what Josh and Gene Kim presented at DevOps Connect at RSA Conference a few weeks ago. Also Ericka Chickowski wrote a good article on her interview with Josh on this last week.  Here is the abstract:

    Today we write less code & consume more re-usable open source code. Innovation accelerates & complexity grows. Complexity is the enemy of quality. Poor quality creates break-fixes & slows dev. It’s a continuous loop.
    Learn about software supply chain management strategies to accelerate delivery: scrutinize your ‘suppliers,’ minimize risk & bloat, and improve traceability, visibility & response times. 

    Josh is a great presenter. I have seen him present many topics over the years at several events, I am sure this one won’t disappoint.

    There are other good presentations including some stuff on Dockers and containers (what would a conference be without them?). Additionally the I am sure the open spaces will spawn some good stuff as well.

    I will try to update throughout the day and give those who can’t attend a sense of what is going on.

    I realize many of you can’t make Austin tomorrow, but if you are going and see me please introduce yourself and say hi.

  • DevOps and faster feedback: fewer problems, better features (part 2)

    DevOps and faster feedback: fewer problems, better features (part 2)

    As the experts established in part one of this series , the tightening of feedback loops through DevOps gives developers a better chance to learn how well their coding choices perform in the context of production environments. This makes for higher quality code in the long-run and constantly improved skillsets among development teams.

    But fast feedback loops don’t just improve the line-by-line coding work the development team puts out. It can also push through a huge boost in the value of the features they’re producing for end users.

    “Feedback loops are important not just for technical feedback or feedback about things not working,” says Aater Suleman, CEO of Flux7 Labs and a professor in computer systems design and architecture at the University of Texas. “There’s also the feedback around what customers are looking form in terms of particular features and whether or not those features are doing well in the market or not.”

    The tighter the feedback loop is about feature sets—and the more quickly the team can release responses to that business-related feedback–the faster the pivot time to account for market conditions. The quicker assessment of how well features are doing gives development teams and the business units they answer to a more accurate barometric reading to decide where to direct programming time. As a result, it isn’t just the quality of work that goes up, but also the business value.

    “With a DevOps flow that allows developers to start seeing feedback from end customers right away, it helps them be more agile on a business level so they can be more strategic about where to spend their actual time,” Suleman says, explaining that this exposes developers to a big-picture view of their work. “You may have the most productive development environment in the world, but if a feature developers have worked on for two months is not going to be liked by the end users, it doesn’t matter how productive the developers were during that time period.”

    Not only that, but it eliminates the hamster-wheel of playing catch-up with competitors’ features.
    “I know of many  companies which still hold to quarterly release cycles. Did you competitor  just release an awesome new feature? Have fun waiting three months to catch  up,” says Curtis Poe, a consultant and Agile development coach for All Around The World. ” In today’s competitive world and fast-paced business environments, do you  really want to playing catch up all the time? Switch to continuous delivery and never worry about a lengthy  release process blocking you from offering what your competitors offer.”
    Poe says that the best DevOps teams can get the most differentiation from the crowd by understanding that they’re not just monitoring technology and code, they’re monitoring people. Namely, end users.

    “Do you sell shoes online and you have a  typical conversion rate of 3.2 percent? What happens if you make a release and the conversion rate drops to 2.5 percent?” he says. “Assuming that nothing technological is going wrong , monitoring business value, when appropriate, can instantly tell your designers,  ‘Hey, moving that button from the left to the right side impacted our sales.’”

    Additionally, that kind of business monitoring makes it more easy to understand the dependencies between technical and business functional aspects of software updates. Then the team can more easily explain to business leaders what technical obstacles stand in the way of functional improvements, and how to overcome them.

    “You always want to deliver the best experience for your customers, and you want to iterate on both the product and the non-functional aspects as often and quickly as possible,” says Arnold Goldberg, vice president of customer engineering for PayPal. “Integrating new features might be the wrong thing to do if, for example, there are challenges with performance, stability or availability.”

  • DevOps and faster feedback: fewer problems, better features (part 1)

    DevOps and faster feedback: fewer problems, better features (part 1)

    As organizations begin to institute DevOps patterns and continuous delivery into their IT shops, one of the most dramatic long-term returns on their investment is that it bolsters the class and consistency of work produced by existing development teams.

    Organizations that evolve to DevOps don’t necessarily need to hire rock star programmers to boost code and feature quality. That’s because, in the long-run, continuous delivery actually fosters an environment that makes it possible for the developers already in place to learn more efficiently and better improve the day-to-day quality of their work. The secret ingredient to this? Faster feedback loops.

    “Shorter time to feedback is the key difference between DevOps and the traditional waterfall approach,” says Aater Suleman, CEO of Flux7 Labs and a professor in computer systems design and architecture at the University of Texas. “The main challenge with waterfall was the fact that there was a very long loop for feedback, which removed the agility from the picture. It could be a month or longer before developers would actually get feedback about what they’d done.”

    The longer the cycle, the more code to sift through to find problems and the longer it takes to fix issues, says Curtis Poe, a consultant and Agile development coach for All Around The World. Shorter feedback cycles make it easier to find issues quickly and attend to them as soon as possible.

    “Having continuous delivery means that typically very little code needs to be reviewed for failure and as a developer, if I get a bug report  for code I wrote in the last hour, I’m going to be far more efficient in fixing in than for a bug report for code I wrote last month,” Poe says.

    This is true not just for out-and-out failure, but also tweaking for improved performance.

    “When frequent deployments are coupled with  well-instrumented monitoring metrics on all aspects of your application,  small nuances in performance can be detected and teased out for relatively  small amounts of code change,” says Jeff Behl, chief network architect at Logic Monitor. “Developers want quick feedback to know changing this particular small part of code can affect this aspect of the application. The sooner you learn how to optimize the application code, the better.”

    Even more important, fast feedback loops are not only critical for fixing past problems, but making sure they don’t happen again in the future. The shorter the time between when a developer writes code and receives information about how well it did out in the real world, the easier it is for them to learn from those lessons and apply them to future work.

    With longer release cycles, be they quarterly or monthly, there’s often a lot of energy expended trying to find the person who created an offending line of code that broke something, says BLANK. The top triage person will go through the ringer to figure out who broke the code, until they might pinpoint something like, this person made this code commit six months ago that broke the application.

    “Does anyone remember what they were doing six weeks ago? Of course not. But if you were writing code at ten o’ clock and I came by at one o’ clock and told you exactly what was broken and I sent you a zip file that had everything that you needed to do to reproduce that on your desktop do you think you’re going t o be a better programmer?,” Gary Gruver, vice president of quality engineering release and IT operations at Macy’s  said last fall at FlowCon, explaining that every developer wants to do a good job and is typically trying to do the best job that he or she can. “If you can’t provide them that rapid feedback , real-time in an efficiency manner, how do you expect people to get better?”

    In the scenario above, the process of developing the offending code is long gone in a developer’s memory, which means it takes more work for the coder to review their work, remember the project and then mentally link that process to the infrastructure dependencies that were affected by it.  With shorter cycles, devs spend less time remembering what they did and more cognitive work on understanding dependencies and the context in which the code operated. Long-term, that’s going to make for better code from the get-go later on.

    “Developers who can understand how their applications work under additional loads, abnormal conditions, and degraded circumstances, will end up designing better applications and systems, and in the end play a more strategic role at the company,” says Arnold Goldberg, vice president of customer engineering for PayPal.

    According to Goldberg, context in development is critical and the faster, richer feedback provided by DevOps allows developers to better understand how application improvements work in production context. And that is huge for informing best practices.

    “Much of it is specific to the fabric of the existing organic infrastructure that a company has, so it needs to be a pragmatic application of it in the context of the company’s current situation,” he says.

    Faster feedback loops aren’t just about making technical coding improvements, either. These more rapid assessment cycles can also greatly improve features and business value offered by developers. We’ll explain more in part two of this series.