Cloud computing is often lauded for obvious financial benefits, such as lower infrastructure costs, and its technical ones, such as reduced hardware complexity. But all too often, companies forget one of its most exciting opportunities: the chance to transform the way that different parts of the organization work together. This potential for collaboration can often manifest itself in sophisticated ways. Perhaps the most sophisticated is DevOps, a relatively new approach to software development and deployment that can dramatically alter an organization’s ability to innovate.
Traditionally, software developers and operations teams have often been at odds with each other. They have had different agendas; developers typically focus on changing software to introduce new features and fix bugs. Operations staff are tasked with keeping the lights on and the engines running. They don’t like change or disruption, because it risks interrupting IT services.
That kind of schism can stifle an organization’s ability to deliver new software functionality to its employees, and potentially its customers.
DevOps is designed to fix that problem. More than simply a product, toolset or management methodology, DevOps is a movement. At its foundation, it’s about creating a new, integrated team that works in unison, drawing together practitioners from these separate disciplines.
Implemented correctly, DevOps can bring significant benefits to your organization. It can reduce the time taken to provision new applications, and it can strip out redundant, duplicated work from the organization. It eliminates silos between different teams, opening up communications between them, and getting managers to think about outcomes across different functions, in a joined-up way.
Mixing ice and fire, in the cloud
DevOps is an enticing idea, but it is also a difficult proposition. Bringing together teams with such different agendas is like mixing ice and fire. Luckily, the cloud can help to achieve these goals.
One of the biggest challenges when getting development and operations teams to work together is infrastructure. In the past, managing development, testing and deployment servers between teams has been time consuming, and sometimes error-prone, leading to situations in which operations staff highlight deployment issues, only to be told that it works on the test server.
In the cloud, the architecture is stateless, meaning that the underlying hardware infrastructure is governed by management software that maintains a virtual pool of resources and makes them available via different service profiles. This means that development and operations staff can create standardized service profiles to suit different application requirements.
This agile, service-oriented infrastructure brings other benefits to developers and operations teams that bring them closer together. Automated provisioning makes it possible for both developers and operation staff to quickly access the resources they need, often through self-service portals. This makes it possible to integrate development and delivery in ways that were not possible before. It also creates a platform for the use of automation tools to manage the workflow between development and operations teams.
Other than the benefits of a cloud architecture, what else is needed to implement DevOps properly? It is a new way of working, which will often go against entrenched team values. Managers may meet resistance from staff on both sides, so incentives may be necessary.
Agility and accountability
The incentives are already there, but they must be communicated. Coding teams must be alerted to the possibilities of agile development. With the increased velocity of deployment and feedback afforded by the cloud, developers can depart from traditional waterfall-style development methods in which cumbersome, bloated requirements documents are created at the start, followed by extended periods of ‘heads down’ development work in which users are no longer consulted.
Instead, they can be in frequent communication with users throughout the entire cycle of a project, deploying smaller chunks of software functionality in small incremental cycles and regularly garnering user feedback to help steer their efforts.
Operations staff can benefit from enhanced communication and collaboration with developers, and they also get to take advantage of tools that monitor their operations more closely, providing them with useful feedback for developers. They can define which metrics are important to them, often with input from business stakeholders, and then use cloud-based monitoring tools to report early on issues.
Being able to present evidence of application operation issues to developers will solve a great deal of frustration for operations staff. This is especially true if the developers are using the same centrally-defined, cloud-based service profile when producing the software as the operations staff are using to deploy it.
This monitoring also creates other benefits. Choosing the right metrics enables DevOps teams to deliver useful feedback to business stakeholders. Staff can show business managers how this new, integrated approach has reduced the time to delivery and the frequency of software updates, for example. They can report back on increases in software reliability stemming from a unified approach to development and operations.
This feedback can encourage more buy-in from senior management, enabling DevOps pilots to garner more support and spread beyond test projects.
The evolution of DevOps in the cloud is a shining example of how infrastructural innovation can help to transform ways of working in an organization. Are your operations and development teams up to the challenge?
Find out more about cloud computing from Orange Business Services and read case studies, ebooks, factsheets and more on the Private Cloud Solutions page.