Agility Throughout the LifeCycle: The Rise of DevOps

Agile practices such as continuous integration are now commonplace, but continuous deployment is much less so.

However, some companies are achieving multiple successful deployments of new functionality per day , e.g. John Allspaw’s presentation: " 10+ Deploys Per Day: Dev and Ops Cooperation at Flickr ".

The key here is having the right mind set to seek out opportunities for automation and then to actually implement them – whether through acquiring tools, or by developing scripts or local tools.

What About ITIL?
Many organisations have reaped large benefits from implementing ITIL practices within their service and support teams. However, the development side of the organisation has often not been included in such initiatives. Thus there is a still often a “wall” over which new releases are thrown. Once things are in production, the operations team may very effective at supporting it – but there is still that hurdle to get over.

There is nothing in ITIL which says this is the way it must be. Indeed, ITIL V3 takes a more holistic view of the whole lifecycle starting with service design. The concept of an application service then allows organisations to wrap up application development as part of the overall process – adding some useful checks and balances and improving communications and co-ordination. The Service Transition book covers the transition into production - but while looking at how to control it does not mean that it has to be slow or a burden - just well managed!

By taking a DevOps mindset, we are not asking operations to give up control – we are working with them to improve the overall process, and typically achieve smoother and faster releases with much less friction. The underlying principles are still the same.

How to Implement DevOps
If you want to implement this, how do you go about it? Can you hire a “DevOp” and expect all your problems to go away?!

The key starting point has to be around communication – ensuring that your development and operations departments are working together closely on a daily basis.

Look at what is causing deployment problems and releases to fail. Ensure that deployment considerations are factored in very early in the development cycle. Look at automation possibilities. Make sure you have a well managed common set of tools including your source repository.

Consider the throughput rate you are achieving – the rate at which changes are actually being deployed – and how long on average that is. Measure “inventory” – work-in-progress that has not been deployed – and seek to reduce it.

If your software architecture makes frequent deployment difficult, then seek to change it as a high priority (treat this as a major “code smell”) or item of technical debt. This can be a major issue with legacy code and tools, and may take significant time to fix.

Vendors and Tools
There are a number of companies and also open source communities which provide tools and methods :

    • Puppet Labs’ Puppet
    • Opscode’s Chef – open source “recipes”

Commercial vendors include:

    • XebiaLabs
    • Nolio (also included as part of Serena’s offering)

One of the advantages of the open source offerings is the way it encourages thinking and sharing within the wider community. People can get actively involved and engaged which is a major benefit for all (not to say that the commercial tools are bad!).

It is also important to realise that a tool will not solve the problems, or necessarily make a huge difference by itself. It is the mindset and practices around the use of that tool that make the most difference.

Summary
This

About the author

Brad Appleton's picture
Brad Appleton

Brad Appleton is a software CM/ALM solution architect and lean/agile development champion at a large telecommunications company. Currently he helps projects and teams adopt and apply lean/agile development and CM/ALM practices and tools. He is coauthor of the bookSoftware Configuration Management Patterns, a columnist in The CM Journal and The Agile Journal at CMCrossroads.com, and a former section editor for The C++ Report. You can read Brad's blog at blog.bradapp.net.

About the author

Steve Berczuk's picture
Steve Berczuk

Steve Berczuk is an engineer and ScrumMaster at Humedica where he's helping to build next-generation SaaS-based clinical informatics applications. The author of Software Configuration Management Patterns: Effective Teamwork, Practical Integration, he is a recognized expert in software configuration management and agile software development. Steve is passionate about helping teams work effectively to produce quality software. He has an M.S. in operations research from Stanford University and an S.B. in Electrical Engineering from MIT, and is a certified, practicing ScrumMaster. Contact Steve at steve@berczuk.com or visit berczuk.com and follow his blog at blog.berczuk.com.

About the author

Robert Cowham's picture
Robert Cowham

Robert Cowham has long been interested in software configuration management while retaining the attitude of a generalist with experience and skills in many aspects of software development. A regular presenter at conferences, he authored the Agile SCM column within the CM Journal together with Brad Appleton and Steve Berczuk. His day job is as Services Director for Square Mile Systems whose main focus is on skills and techniques for infrastructure configuration management and DCIM (Data Center Infrastructure Management) - applying configuration management principles to hardware documentation and implementation as well as mapping ITIL services to the underlying layers.