There is a lot of confusion about DevOps, and if you ask three people what it is, you’re likely to get three different answers. Yet, the growing popularity of DevOps is due in large part to the benefits it brings to organizations—giving them the agility to quickly deploy and revise applications to meet changing business needs.
So what exactly is DevOps and how can you leverage it in your organization? DevOps is the convergence of operations activities into the development practice. It represents the last mile in the Agile development process by speeding up application delivery and solving the problems of traditional deployment. Organizations realized that the accelerated apps developed using lean and efficient Agile methods were significantly slowed down at the deployment phase—which involved the slow, manual process of configuring and provisioning each server individually. DevOps solves this problem by applying lean principles to speed up deployment and to manage continuous iteration.
DevOps accomplishes this through the Infrastructure as Code—or executable infrastructure— approach, which diminishes the role of servers. Traditionally, IT developed applications and assigned them to specific servers—which were integral to an organization’s application distribution strategy. Systems administrators took great care to ensure that these servers received upgrades and were well maintained. Since new applications often caused servers to crash, system admins spent a lot of time writing scripts to re-configure them, as well as other time-consuming activities. On top of that, there was a loss of end-user productivity until the problems were fixed and the server was up and running again.
Infrastructure as Code precludes these problems. It changes the notion of a server from a specific hardware device required to run critical applications to executable code that can be implemented on any number of interchangeable devices. Now, DevOps professionals write code to provision servers, using advanced program development techniques, such as version control, testing, small deployments, and design patterns. The application itself has become the linchpin of IT operations rather than the server, which can be easily swapped out for another.
How should CIOs adapt their organizations to best leverage DevOps? The first step is to reconfigure and redeploy your tech team for this evolving environment. Under the Infrastructure as Code approach, the need for a systems administrator or network engineer to serve as a middleman to deploy and maintain applications is no longer necessary. Some of these operations professionals can join the development team, running Quality Assurance (QA) testing—which now becomes integrated into the application development process. Others can join the DevOps team as systems architects, determining how to set up an environment, writing application scripts, and provisioning servers to deploy applications within an organization.
As with any organizational change, you need to focus on creating a new culture and new way of working together. To best support the Agile environment where developers are iterating changes and new revs continually, collaboration and communication are critical to keep all team members abreast of changing requirements throughout the process.
The Infrastructure as Code approach, coupled with Agile development, enables the rapid development and deployment of applications, delivering significant advantage to an organization. Savvy CIOs are recognizing the strategic impact of these trends and are redefining processes, roles and culture accordingly. The benefits are enormous—enabling businesses to move on a dime to respond to changing market and business needs and take advantage of emerging opportunities.