Summary

It is now about four years since the ALM community was set alight by the DevOps buzz. In this opinion piece, Ovum takes stock of continuous delivery, which is the state of equilibrium between development and deployment, where new components are automatically pushed into production environments if they pass all quality and performance checks.

Continuous delivery is often looked at as the goal of DevOps, but Ovum does not agree with this view, primarily because DevOps is a goal in itself. It is an enabler of continuous delivery. It is all about streamlining the development and operations workflow, and this is a moving target for most organizations. Businesses adopting DevOps often stop short of continuous delivery, not because of technical issues or monetary constraints, but because the nature of their business is such that they don’t require frequent production deployments. Organizations want a handle on their development and operations processes, but this does not necessarily mean that they are looking for automated, continuous deployment to production.

Organizations should look for the DevOps flavor that suits them best

DevOps has captured the imagination of the ALM market, but like other buzzwords before it, it is often not properly or widely understood, and is often implemented haphazardly. Several DevOps approaches have been tried, including having co-located developers and operations teams, or cross-functional DevOps teams, and tool-based automation of build, test, and deploy processes. These approaches represent a step in the right direction, but organizations should not be content with initial successes. A sustainable approach to DevOps must combine elements such as automation, buy-in from development as well as operations teams, the nature of the business, competitive environment, and business objectives.

The business view of IT breaks down IT systems into systems of record, and systems of engagement at a high level. IT departments also need to take a high-level (lifecycle) view of business applications as pre-production and production applications. The motivations behind pre-production applications are significantly different from the operational constraints on applications already in production. Ovum believes that DevOps can bridge this divide.

For pre-production applications (applications under development), the primary motivation is to maintain a high development velocity, while ensuring adequate quality. Agile development methodologies and development tools help tackle the problem on the development side.

For applications already in production, the key constraint is ongoing maintenance. The issue is made more complex by various target environments and deployment architectures in production. This is where DevOps tools have the most impact. Research suggests that over 75% of development activity in enterprise organizations is geared toward maintaining and extending applications currently in production. DevOps tools enable automated builds, automated functional and integration tests, and automated deployments to either pre-configured environments or environments provisioned on the fly. By ensuring a steady supply of ready-to-deploy application components, feature requests, and changes to pre-production staging areas, organizations can push changes to production at a rate they are comfortable with, even without continuous delivery. Once the changes are in production, the primary driver becomes run-time performance management and scaling to meet spikes in demand.

Ovum is in favor of self-healing production systems that not only scale infrastructure and application instances up or down based on demand, but also take corrective or evasive action based on dynamic application health parameters. Self-healing systems like this can only be implemented on top of virtualized infrastructure. With automated management of production infrastructure, organizations can take care of most run-time application performance issues. This ensures that ongoing application maintenance is simply a matter of deploying new feature requests to production in a timely manner, a job handled well by DevOps.

Businesses should look for missing pieces of the puzzle

The beauty of DevOps is that organizations can get started with very little investment in tools. A DevOps toolset is likely to include build automation, test automation, and automated deployment and release management. An organization with some degree of ALM maturity is likely to have build and test automation infrastructure already in place, or can turn to an ALM vendor for deployment and release management components, or look at specialist providers such as Electric Cloud, Urban Code, or open source alternatives. Several infrastructure management software vendors including CA and BMC have also added DevOps tooling to their portfolios. In addition, small organizations running Amazon EC2 instances can also benefit from the DevOps approach, with Amazon Web Services (AWS) recently releasing a DevOps toolkit known as OpsWorks to service the EC2 platform.

Organizations can get more out of their development efforts by tweaking processes and tools for DevOps. Continuous delivery in practice often means continuous delivery to staging environments because most businesses are not comfortable with automated deployment to production without human oversight. However, it is a move in the right direction.