DevOps (development and operations) is an enterprise software development phrase used to mean a type of agile relationship between development and IT operations. The goal of DevOps is to change and improve the relationship by advocating better communication and collaboration between these two business units.
In the Enterprise In the enterprise there is a need to break down silos, where business units operate as individual entities within the enterprise where management, processes and information are guarded. On the software development side — and for those working in IT operations — there needs to be better communication and collaboration to best serve the IT business needs of the organization.
The DevOps Culture One answer to breaking down enterprise silos is the move towards a DevOps-based culture that partners developers with operations staff to ensure the organization achieves optimal running of software with minimal problems. This culture is one that supports a willingness to work together and share. The DevOps culture puts a focus on creating a fast and stable work flow through development and IT operations. One main goal of DevOps is to deploy features into production quickly and to detect and correct problems when they occur, without disrupting other services
DevOps Professional Principles DevOps is not based on stringent methodologies and processes: it is based on professional principles that help business units collaborate inside the enterprise and break down the traditional silos. The guiding principles of DevOps include culture, measurement, automation and sharing. DevOps is considered to be a new approach to the more traditional application lifecycle management (ALM) process.
What is DevOps? There are many definitions of the word “DevOps.” Is it a movement? A new process or technology? A job title? Or just a way of thinking? “DevOps” as a term was first coined in 2009 by Patrick Debois, who became one of its chief proponents. Simply put, DevOps is a combination of software development and operations—and as its name suggests, it's a melding of these two disciplines in order to emphasize communication, collaboration, and cohesion between the traditionally separate developer and IT operations teams. Rather than seeing these as two distinct groups who are responsible for their specific tasks but don’t really work together, the DevOps methodology recognizes the interdependence of the two groups. By integrating these functions as one team or department, DevOps helps an organization deploy software more frequently, while maintaining service stability and gaining the speed necessary for more innovation. And, in the end, everyone is able to deliver the best results and overall experience possible to the customer.
Extending the Agile movement A few years ago, critical thinking on many converging methodologies—including Agile, Operations Management (Systems Thinking and Dynamics), Theory of Constraints, LEAN and IT Service management—all started bubbling up in conferences, talks, and Twitter (#devops) debates worldwide. These conversations eventually became the philosophy behind the DevOps movement. Agile software development paved the way, steering away from the waterfall method of software development toward a continuous development cycle. But this didn’t include the operations side, so while development could be continuous, deployment was still waterfall-oriented. In a DevOps environment, cross-functionality, shared responsibilities, and trust are all promoted. DevOps essentially extends the continuous development goals of the Agile movement to continuous integration and continuous delivery. In order to accommodate these continuous releases, DevOps encourages automation of the change, configuration, and deploy processes.
DevOps for a cloudy world The DevOps model found initial traction within native digital businesses. With modern applications running in public and private clouds, much of what was once considered infrastructure requiring manual processes now runs with highly automated processes for making changes and scaling applications. Sites with massive traffic numbers—like Google, Amazon, Twitter, and Spotify—are all known to do deployments many times a day (or even minute). In order to deploy that often, you have to know you’re not going to break what’s already working or that a change can be undone easily. DevOps helps ensure frequent deploys with a low failure rate. Companies of all sizes are beginning to implement DevOps practices, and many shops, particularly lean startups, have been “doing DevOps” without calling it DevOps for quite some time. One example of a DevOps success story is media conglomerate Hearst Corporation, who built a next-generation digital platform and continue to innovate by employing DevOps principles.