The advent of cloud computing is changing the relationship between application development and operations teams, and the roles of the individuals within them. Organizations with mature DevOps are
Before we can begin to understand Forrester’s NoOps, we must first consider DevOps. “DevOps is a fairly new concept,” says Forrester Senior Analyst Glenn O’Donnell. “What DevOps is more than anything else is a movement to improve the relationship between development and the operations people in your typical IT organization. That is a relationship that is, today, fairly contentious in a lot of companies.”
Mature DevOps is characterized by collaboration and communication throughout the application lifecycle, but particularly during the release management and production support process. “This is a common resistance point in less-effective organizations and, as such, is the key focus of DevOps. Streamlined service life cycles experience little to no friction at this transition,” writes O’Donnell with other Forrester analysts in the report “Augment DevOps with NoOps.”
In these organizations, development and operations teams are accustomed to working together throughout the application development life cycle. Capacity planning, for example, is a joint effort. The teams meet before and during a development project to determine what the application will run on, whether existing infrastructure is suitable and, if not, what needs to be acquired.
Having all parties involved in the early stages of the service life cycle is essential. The architects, the testers, the infrastructure guys -- they all have to be involved -- not just to be informed, but to be empowered to contribute.Glenn O'Donnell, Senior Analyst at Forrester
In organizations with mature DevOps, the adoption of cloud computing services doesn’t have to be disruptive. In fact, it can usher in a new era. “Cloud happens now, on demand. There’s an extreme level of automation, so we get the human beings out of the picture. Where human beings are involved, it isn’t the cloud. If I’m an application developer and I need to roll something out, I don’t want any human being in the way to hold me up. That’s where we get from DevOps to NoOps,” explains O’Donnell.
Forrester defines NoOps as “the goal of completely automating the deployment, monitoring and management of applications and the infrastructure on which they run.”
Is it possible to achieve 100% automation? “It is possible to have everything automated. Automation is more an evolution of trust than it is an evolution of technology. We have the technology, but we may not trust it yet,” says O’Donnell.
Technology, however, isn’t the biggest challenge. O’Donnell maintains that “you need the right automation technologies, but more so you need the right organizational mentality, and that’s the hardest part. You do that by putting in the right incentives, financial or otherwise.”
For those organizations that haven’t achieved a mature DevOps environment, the adoption of cloud computing services will amplify any animosity existing between development and operations teams. “Overcoming the us versus them mentality is the hardest thing to do,” says O’Donnell. A strong leadership presence -- not management -- needs to come in and get people to communicate and trust each other, he says.
In a NoOps situation, O’Donnell says developers and operations view each other as team members. He asserts that “in the typical organization it’s us and them. In NoOps it’s all us. We’re in this together. We are teammates.”
Everyone has a role in making a NoOps environment succeed. Forrester advocates that operations professionals make cloud computing a reality for their organizations by building a private cloud or establishing relationships with public cloud providers. Developers, on the other hand, must move away from traditional application architectures like three-tier static Web and client/server architectures that don’t scale. Instead, they must design applications using an “elastic architecture,” according to Forrester.
Collaboration between the development and operations teams is more important than ever before. “Having all parties involved in the early stages of the service life cycle is essential. The architects, the testers, the infrastructure guys -- they all have to be involved -- not just to be informed, but to be empowered to contribute,” says O’Donnell.
Despite what it may sound like, NoOps doesn’t imply that the organization operates without an operations department. “With NoOps the key is we’ve accelerated to the point where we cannot have the humans involved. From an execution standpoint, ops is not part of the equation. They are still integral, but their role has changed,” suggests O’Donnell.
Whereas in a DevOps environment the operations and development teams worked together to determine where an application would run, in a NoOps environment, operations “establishes cloud resources that start small and ramp as fast as necessary,” according to the Forrester report. Likewise, during the infrastructure build, instead of allocating or acquiring infrastructure based on the maximum expected workload, operations determines the cost of cloud resources, taking into account the minimum and maximum expected usage.
A shift to NoOps requires that both developers and operations professionals hone their business skills. This includes project planning, sales and marketing skills. “A lot of the skills that you learn in business school are starting to take center stage. It’s more an operations thing, but even developers need to develop more social and business skills far beyond what we see in a stereotypical geek,” recommends O’Donnell.
Because the deployment, monitoring and management of applications is automated, organizations can de-emphasize the importance of technology skills. “I don’t need a genius with a certification in XYZ to do certain things because I can buy a tool to do that for me,” O’Donnell says. “You still need those people, but you don’t need an army of them.”
This was first published in July 2011