Modern enterprise IT organizations must adapt to a number of radical changes in technology, user expectations and business objectives. DevOps — a new way of thinking about the relationship between Development and Operations — offers a solution to this challenge.
This white paper will give enterprise IT decision-makers a comprehensive overview of the DevOps model and the value it provides. It will look at:
There’s a new approach to software development that is transforming the modern enterprise IT organization. It’s a new way of working, of thinking and of doing business. It’s an approach that has as much to do with process and culture as it does with tools and technology.
Welcome to the world of DevOps.
DevOps is an IT organizational model in which system administrators work side-by-side with developers in a single, coordinated, agile environment. DevOps brings together functions that once worked by emphasizing the role that communication, collaboration, and integration play in delivering solid, stable business applications. DevOps also breaks down organizational walls, and it promotes a fundamentally different way of solving IT problems.
This change has been a long time coming. The rise of cloud computing, and the pressures on enterprise IT to change how it works with business users, has forced both groups to rethink this approach.
In practice, DevOps requires developers to pay closer attention to deployment scripts, configuration files, load and performance testing, and other activities usually associated with an Operations group. Developers also pay more attention to how the code they write will perform in a distributed, cloud-based environment. It’s an important and necessary evolution, as developers face more platform options than ever before and more pressure to build high-quality, user-focused applications that deliver immediate business value.
As the name suggests, however, DevOps is a two-way street: Operations gives the developers constant feedback, troubleshooting information, and other data from the production environment that shows how code performs in real-world conditions. Operations provides critical knowledge about an application’s impact on the business and end-user experience, and it works hand-in-hand with Development to resolve problems and deliver a quality product. This allows each party to learn more about the other’s job.
“DevOps is about building a support structure for collaboration between your Development and Operations functions so that you’re now communicating more closely,” said Brian Jawalka, Manager, Strategy and Architecture, Enterprise Cloud Solutions at Rackspace. “They’re aligned to similar goals and really working toward the same outcomes. That means Operations gets a deeper understanding of what the applications requires, and developers understand how what they’re doing impacts infrastructure. We believe that collaboration incites innovation, and DevOps is the key to making that possible.”
A new view of IT collaboration. Agile methodologies (see sidebar) are key to being successful with the DevOps model. Combined, they can focus on rapid, incremental releases; gather feedback, correct problems quickly, focus on quick wins and move on to the next release cycle. Most IT organizations are already familiar with Agile methods and principles, and it’s a logical next step to apply these methods to a single, tightly integrated DevOps process.
Yet DevOps is not simply another exercise in Agile methods. It is also a major cultural shift for many IT organizations. It requires Developers and Operations specialists to rethink their day-to-day working relationships. DevOps also demands strong leadership from IT executives who are committed to breaking down the silos that used to separate Development and Operations.
In this white paper, we will explore the evolution of DevOps and the IT challenges that it is designed to address. Delve into the relationship between the cloud computing revolution and the emergence of DevOps, and how both contribute to a new business model for today’s enterprise IT organizations. Finally, we examine the Rackspace approach to DevOps and discuss some key lessons that other IT organizations can adapt to their own DevOps initiatives.
Traditionally, software development and IT operations weren’t just different jobs. They were different organizations with their own goals, priorities and points of view:
Development and Operations don’t just have different priorities. They use different tools and methodologies; production environments are often very different than those used for development and QA activities. Developers and sys admins report to different managers, and in many cases they even work at different locations.
The traditional approach to writing and running code. What happens when these two groups go through a traditional application release cycle? The process often looks something like this:
“Developers build the application, and then it gets tossed over the fence for the Operations to run, but there’s little communication,” said Jawalka. “Developers say ‘I’m going to write whatever is most efficient for us to write,’ and Operations doesn’t have a deep understanding of the application.”
When virtualization technology came on the scene a little over a decade ago, this dynamic between Development and Operations shifted.
Operations could consolidate physical computing assets for more efficiency. Virtualized platforms also made it easier for Development and Operations to build and deploy applications in more standardized environments. Because the virtualization layer only impacts infrastructure, not the development platform, Development and Operations remained islands.
With the introduction of cloud computing, three unique traits were added to the enterprise IT mix: a new application platform, a new model for consuming IT services, and a foundation for new business models. Now, Development and Operations are rethinking their approach to collaboration, to align their goals and priorities, and to adopt shared toolsets.
In the cloud, the entire infrastructure stack, from storage to networking to servers, can be virtualized. Software plays a vital role in managing these virtual environments. As a result, the entire IT organization must take collective ownership of managing this automation. “Many of the traditional Operations activities have to be built into the code,” observes Jawalka in assisting Rackspace IT with their cloud transformation.
Changing the business of enterprise IT. User expectations are rising; they need applications to evolve quickly and to deliver new features almost on demand. IT organizations have the opportunity to evolve from cost centers into business enablers. To do so, enterprise IT must:
Accomplishing this transformation requires a new approach to how Development and Operations collaborate using shared goals and methodologies: the DevOps model.
How can DevOps make it possible for an enterprise IT organization to evolve and adapt to this new reality? Here are some key considerations for Development and Operations:
As Jawalka points out, all of these considerations serve a single purpose. “Within our group, we found that in order for us to build truly cloud-aware applications, many of the usual things that are considered by the typical applications support team post-deployment would have to be factored into the design of the code itself,” he said. “This includes self-provisioning, auto-scaling, self-healing and recovery, and API-based monitoring mechanisms. In order to factor all of these capabilities into the design of the application, you need a very high degree of collaboration and integration between the Development and Operations.”
“We’re not necessarily saying that the developers are now running infrastructure or the infrastructure guys are writing code,” added Jawalka. “But there’s awareness and understanding of how they work together.”
The Rackspace IT story offers a great example of why DevOps is so important to transforming the business of enterprise IT. Rackspace IT also faced challenges around serving a fast-growing business using a traditional dedicated infrastructure model, along with a traditional division of labor between separate Developer and Operations groups.
This model left Rackspace IT at a disadvantage for several reasons:
A shift to a DevOps model played a critical role in allowing Rackspace IT to reposition itself as a business-focused organization and to use the Open Cloud as a platform for innovation. This included:
“We’re now able to do releases every hour,” said Jawalka. “Instead of a single new release every month, we’re doing 15 releases a day to our public cloud. We’re improving the quality of our applications, moving more quickly to address new business needs and ultimately delivering a better product to our customers. All of this is possible because of the collaboration that is really enabled through DevOps.”
According to Jawalka, the shift to DevOps is critical to the company’s long-term success. “Rackspace is growing at a tremendous pace. IT is an enabler — we need to keep up with the business and help drive growth,” he explained.
“The traditional model was really not adequate for us to keep up with the company’s business needs. We had to get to a model where we could go from, say, doing a [release] drop a week to multiple drops a day. Now, we are partnering with the business and getting instant feedback.”
A growing number of enterprises understand how DevOps works in theory, but what does it take to run a successful DevOps model in practice? The Rackspace IT team found several considerations that stand out:
Set a long-term strategy. “In my opinion, this is the number one thing necessary for success,” said Jawalka. “Where do we want to be in 12 or 18 months? Without that, we don’t have a way to outline a roadmap or to start working on organizational alignments.”
Focus on organizational alignment. According to Jawalka, the most successful DevOps models focus on organizational issues, including leadership. “They have Operations and Development functions that are really all reporting to the same managers,” he said. “They’ve split up Operations so that they have a few Operations personnel on each Development project, allowing them to share knowledge and really foster collaboration.”
Mark Majewski, Architect, Enterprise Cloud Solutions at Rackspace, added that successful DevOps make collaboration a part of their organizational DNA: “It’s not just the cross-pollination of talent but that cultural mind shift, that willingness to share experiences.”
Leverage internal talent. Does your IT organization need to acquire the talent required to implement a DevOps model? According to Jawalka, it’s often easier and more efficient to identify members that already have the right skills to build a DevOps engine. Server and storage infrastructure support personnel, for example, are probably already well-versed in the scripting, configuration management and automation skills required to drive the “ops” side of DevOps.
Create a continuous feedback loop. In order to support continuous delivery and integration of applications, DevOps must also put the processes in place to collect and apply feedback – and not just from IT staff. “We want to have feedback from the business users,” said Jawalka.
“We put the tools and processes into place to enable continuous integration and delivery so that we can have that instant feedback from our customers.”
Cloud computing gives your enterprise IT organization the ability to rethink how it serves and adds value the business. DevOps, in turn, makes it possible to build software development, deployment and improvement processes that take full advantage of the cloud’s efficiency and productivity benefits.
In fact, according to Majewski, DevOps is an essential piece of a cloud-enabled IT business model. “It’s a mind shift around not only how applications and services are consumed, but also around how the infrastructure itself operates and how the applications interact with that infrastructure.” Without DevOps to provide a foundation for this shift, it’s impossible for IT organizations to realize the full value of cloud computing — or to meet the growing expectations placed upon them by their business users.
Find more DevOps-related resources from Rackspace:
© 2011-2013 Rackspace US, Inc.
Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License