Author: Rajat Bhargava

  • Survey Says: Positives and Negatives of DevOps are Two Sides of the Same Coin

    Survey Says: Positives and Negatives of DevOps are Two Sides of the Same Coin

    Isn’t that the way it always works? A person’s strength can also be their weakness. A company’s killer product becomes their Achilles heel as the market shifts. As more and more companies make the shift to DevOps, it’s interesting to learn what’s working, what the opportunities are, and what the impediments are. As many of you know, my company, JumpCloud, along with SoftLayer hosted the 2013 DevOps Conference in Boulder, CO. We had over 200 amazing people in the room – developers, ops folks, managers, execs, CEOs, and founders. Really, the whole gamut was represented in some way. It was an intense day full of presentations and panels, but with lots of time for discussion – with the audience even participating numerous times during talks!

    As part of the conference, we surveyed the audience on a number of topics related to DevOps. The results of the survey are here and the press release announcing the results with some analysis is here as well. As I sat back to take in the data, the most significant learning for me was that the movement to DevOps is constrained by time, first and foremost, and one of the opportunities of DevOps is automation. Let me say that again a different way: the very thing that companies are trying to solve – moving faster, is the thing that is preventing them from getting there.

    Lack of time is nothing new for IT people. We have been hearing that for decades. For some reason, the IT organization has always been crushed with the amount of work that they have and the resources available. Perhaps it is that they are involved in just about everything going on in an organization, or as is the case today in many businesses, the IT organization is the business. As a result, it is even harder for organizations to find the time to do the very things that will make them more efficient. Unfortunately, the cycle becomes a self-fulfilling prophecy and as organizations get more busy, they find less and less time to ‘fix’ their business.

    The survey data from the DevOps conference showed that there are any number of opportunities to automate tasks. The group gravitated to a few – deployment, patching, user management, and log analysis – but there were many more. Each organization has their list of tasks that need to be automated that they never get to. The lost productivity from those missed opportunities is likely staggering. Automation is hard and painful. Especially when you are trying to run the day-to-day business. As one of my marketing friends liked to say, we are rebuilding the car while it’s going 60 MPH.

    It’s easy to say that the solution to this is just to spend some time automating. Allocate more hours to it and put it into each sprint. Yes, that is easy to say. Unfortunately, that rarely works. The pressures of the business take over and move automation back down the list very quickly. After all, features need to be built, bugs need to be fixed, and performance issues need to be resolved. All higher priority items than automation when you are in the crucible.

    The focus on automation has to come culturally to work long-term. There needs to be recognition from all levels of the organization that automation will take precedence over other tasks. Without that perspective, automation will almost always be pushed down the priority stack. Automation is a long-term play, not a short-term gain. Band aid fixes are quick and get you back to your task list. Automation takes deliberate time, effort, and focus to happen, and then the benefits are only seen afterward. Of course, the benefits are subsumed by other tasks until they too are automated, so it’s hard to see them for long, but they are there. And, in fact, as more and more becomes automated, a company starts to see their velocity increase dramatically. They’re not focused on manual tasks, they’re focused on driving new innovative features.

    The DevOps survey really said it all – organizations that can figure out how to get off the hamster wheel of manual tasks, will automate and build high-velocity organizations. Unfortunately, that is easier said than done.

  • Ops is dead, long live DevOps

    Ops is dead, long live DevOps

    Yes, that’s a bold statement, but if the vibe at the recent AWS re:Invent conference was any indication there are a number of methodologies, technologies, and companies working to make that a reality. This article isn’t focused on whether this is a good or bad thing (my personal belief is that ops will always be a critical part of the IT delivery process). Regardless, it is critical for IT operations personnel to understand the implications of this tectonic shift. As Marc Andreessen, founder of the venture capital firm Andreessen Horowitz, has said, “software is eating the world.” As a result, ops professionals must have the ability to automate tasks that used to be managed manually. Whether or not you think that is the death of ops as we know it I will leave to you, but it does mean we will live in a world where DevOps will offer distinct advantages.

    Before we dive into what this change means to ops personnel, let’s review the underlying assumptions. The fundamental driver at the a high level has been the DevOps movement. Yes, DevOps is quickly becoming the buzzword dejour, but the underlying principles are lasting and changing IT to its core. DevOps is about integrating the various functions that it takes to release software or applications: software development, quality assurance, operations, and security among many others and rapid iteration. The process of integrating these tasks is accomplished through new processes and automation. Different functional areas such as development and operations are brought into the process earlier, and their processes are automated to the extent that they can be. This results in fast cycle times, increased quality, and hopefully increased innovation for the business. All of this is accomplished through software – at each functional level.

    Some technologies that have enabled this massive shift include Infrastructure as a Service (IaaS), Platform as a Service (PaaS), automated configuration management, server management tools, virtualization, and software defined networking. IaaS and PaaS offerings are eliminating the need for organizations to procure, provision, and deploy servers. Further, this class of technology is also dramatically reducing the need to deal with the network layer. This allows organizations to concentrate on their applications and development, and focus less on their infrastructure. The amount of time and effort spent on server and network configuration is minimized. Configuration management solutions are enabling the automation of server setup. An organization’s technology stack can be pushed, pulled, cloned and copied versus manual configuration thereby saving time and adding consistency. Top performing organizations employing DevOps go a step further and automate the scaling of capacity based on utilization. To reduce day-to-day operational activities and costs, organizations are also automating the management of servers, including users access, patches, security, and other areas through both traditional written code and SaaS solutions. Another area changing the game for ops personnel is software defined networking (SDN), which is effectively morphing data center and hardware functions into software programs.

    In short, DevOps and associated innovative new technologies are driving a paradigm shift in the way operations is done. No longer are ops personnel required to manually provision, configure, and manage the network, servers, and application stack. Combining technologies from organizations such as AWS, Rackspace, and SoftLayer along with configuration tools such as Chef and Puppet drives the provisioning and configuration of applications through software automation rather than manual effort. Once applications are deployed, the underlying infrastructure can be managed with tools such as my own company, New Relic, this author’s own JumpCloud, and others. Ops personnel have more companies than ever focusing on helping them automate the tasks that they need to deliver applications for their organizations.

    The result from all of this effort is that ops as we know it won’t exist in the future. The network operations wizard that could manually troubleshoot routing and switching issues, provision servers quickly, and tweak configurations will be tasked with automating those tasks through software. Some of that automation will be through code that ops person writes herself, some delivered by third party providers, and other portions delivered by open source or SaaS-based solutions. But, don’t shed tears for the forced obsolescence of the IT ops people. They will still exist and perhaps be more important and powerful than ever. In fact, because of DevOps ops personnel will in essence be set free from mundane, repetitive “busy work” to perform higher value tasks as well as managing over the software and systems at work. The black magic of enabling different layers of the stack to function together will be less about art and more about science, or rather good software. Solutions will be engineered to work together and be tied together through code. Caveat: yes, service providers and some large enterprises will  still run their own data centers and networks, but the same reasons that DevOps works in IaaS or PaaS will apply to private data centers or private clouds as well.

    If all of this trends toward being true as we see it happening today, what are the opportunities for ops personnel to be at the forefront of this shift? Beyond embracing DevOps – which many operations personnel are doing already – learning to code is the most critical step that ops professionals can take. Many ops professionals already know how to script which is absolutely a minimum, but many will need to go further. Embrace the DevOps movement and push further towards the development side by learning how to code. There are any number of amazing services to teach us how to code or code better. Take the step. It may be the difference between a vestige of the old school versus driving the new world in your organization. The second significant step you can take is to automate your job. Leverage the very best automation tools to code your network, server, and application infrastructure. Not only will you spend less time on these tasks manually, but you will increase availability, reliability, and performance. In most organizations, that’s more than a gold star. Finally, make the mental shift that operations in the future will be less art and more science. DevOps is driving action through data, and the technology stack is responding to this demand with more telemetry than ever. Problems are now solved through understanding performance, availability, and other metrics. And code.

    DevOps is the future. Automation is key. Code is the answer. Developers and ops are in it together for the good of their organizations. Ops pros that embrace this will win! Ops is Dead, Long Live DevOps!