DevOps – Widely Misunderstood
What really is DevOps and why does it have the technical community jumping through hoops?
Some people have come to believe DevOps actually refers to highly skilled developers who write all of the code and deliver the application to production single-handedly. Others confuse it with continuous delivery, automation, and sometimes even configuration management. There are plenty of misconceptions about the definition of DevOps and a quick search can reveal what DevOps is not.
So, in an attempt to define DevOps let’s see it for what it is: a methodology, a set of concepts, a movement in itself today – to building better teams and better software. DevOps is slightly different from a Sysadmin in that themes revolve around creating and assembling infrastructure as a code as opposed to the ‘manage and adapt’ roles assigned to sysadmins who ensure vendor purchased items run optimally.
The problem stems from the fact that the different teams within a substantial development project don’t understand the work of other teams. Business analysts, architects, UX designers, testers and developers have all lived on their own islands and none of the development specialists, until recently, have worried about the production environment when designing or developing applications.
So now that we understand what it is, we can find out how it is useful and what it means to development teams.
The Numbers Speak for Themselves
It seems that the processes, tools and decisions of development teams have a significant impact on the quality and predictability of a software release. Hence, it is only logical that when compared to traditional Ops, DevOps is a clear winner. Numbers from a Zeroturaround DevOps report prove this:
- Compared to Traditional IT Ops teams, DevOps-oriented teams spend 21% less time putting out fires on a weekly basis.
- Compared to Traditional IT Ops teams, DevOps-oriented teams spend 33% more time improving infrastructure against failures.
- Compared to DevOps-oriented teams, traditional IT Ops teams require nearly 60% more time per week to handle support cases.
In January 2015, RightScale surveyed 930 technical professionals across a broad cross-section of organizations about their adoption of cloud computing. Here’s some of the findings from that survey:
- Overall DevOps adoption rises to 66 percent, with enterprises reaching 71 percent.
- Chef and Puppet are used by 28 and 24 percent of organizations respectively.
- Docker, in its first year, is already used by 13 percent of organizations with a whopping 35 percent of organizations planning to use.
It is apparent, with the rosy picture the numbers have painted, that DevOps as a cultural methodology and technical concept is a definitive win for most organizations. How painful the DevOps transformation is going to be depends on each business though.
Planting the DevOps Seed
The implementation of a DevOps culture into any organization requires an updated approach to the ways that organizations process data. The technical side of things have made great strides: this is obvious from Vagrant, Chef, Puppet, Amazon, Docker, Packer, JHipster, Selenide and dozens of more tools & technologies being used and embraced by a growing population every day.
So what’s really missing and what can organizations do?
- Culture Handshake
Operations can ‘work upstream’ and identify the coming changes that might cause issues way before they are due to hit production. More importantly, they can contribute to solving the more ‘cultural’ issues such as instrumentation, the types of performance, resilience, and scalability testing that minimizes production risks.
While the developers work on the deployment, they also need to be able to do customer support from time to time. Some devs need to know why their idea is or isn’t so great to customers. Many also need to actually know and understand how the customers use or want to use the systems.
2. Establish DevOps Blueprint
Engaging CxOs to remove barriers for DevOps and providing direction is crucial. Business units where the dialogue with customers frequently changes and where the IT organization will need to iterate rapidly for new product ideas, markets, and customers are ideal candidates for agility and DevOps. These may be pilot projects on the roadmap to future opportunities.
3. Emphasis on Design for Automation
Automation, especially for testing, configuration management, release management and other delivery steps are essential. It is a key ingredient which will impact continuous delivery and DevOps productivity.
The most logical entry point to transforming business process in any organization might be customer-facing IT services. Customers expect an evolving relationship with service providers that hinges on understanding their needs and preferences. IT has come full circle today, it has the potential to bring about business transformation. Agile development, with cloud computing and DevOps centric approaches will ensure business agility.