Improve, automate, rinse and repeat: All aboard the starship DevOps
The ops staff canna take much more of this, cap’n
Steve Ballmer once famously ran around on stage screaming "developers, developers!" You never hear anyone jumping about shouting "sysadmins!" or "quality controllers!". That’s because code conventional wisdom dictates that code trickles down from the ivory tower, while the boys in the engine room make like Scotty in Star Trek, doing their best to make it work.
That’s not going to fly any more, though.
As applications move online, people expect them to evolve at the same pace as consumer ones, putting development cycles under pressure. Phrases such as "continual improvement" are becoming commonplace. And one term more than any other underpins this movement: DevOps.
DevOps became popular over the last five years. Early advocates wanted to adapt infrastructure to better support agile development techniques, so that they could deliver software more quickly and have it perform better. This requires cultural change, which lies at the heart of DevOps.
Typically, operations and QA teams are at odds with development teams. One faction is responsible for keeping systems available and reliable, while the other wants to boldly go where no Ruby coder has gone before.
Understanding how to unite two orthogonal points of view is a key part of the DevOps challenge.
This cultural change is more important than the technologies used to support DevOps. David Cummings, cloud and workload practice director for HPE UK & Ireland, compares the concept with a motor car assembly line. Every stage in the assembly line knows what to expect as an input, and what to produce as an output. They understand the tools they’ll use, too.
“Clear exception handling processes and quality gates are defined and understood,” he said. “Once these are in place, it then becomes a shift in mindset to trust the technology, to fully embrace and trust the process.”
The technology should automate these processes, which break down into integration and testing, delivery and deployment, operations, and assessment. It should make the handoff between each process smooth and fast, and should also increase visibility across all of them, measuring what’s happening so that performance can be audited. And everything must be repeatable.
Team me up, Scotty
How do companies get there? One early step involves revising your team structure, said Kief Morris, EU practice lead for continuous delivery at Thoughtworks, a consulting firm that uses agile development to produce software for its clients. “Organisations need to be willing and able to change the way that work is planned and delivered, possibly radically,” he said. “This will almost certainly involve changing the way teams are set up, favouring fully empowered, cross-functional teams over functional silos.”
On the technology side, it’s going to far easier to do this with a stateless infrastructure, in which services are bound to infrastructure at runtime. This presents an IT function – a software testing platform, for example – as a service, and doesn’t concern itself with the underlying infrastructure until it’s provisioned and run.
Instead, the IT service you’re asking for has a profile that management software then uses to assemble resources from a pool. That enables it to quickly stand up your development, testing or production machine.
Ideally, this means that you don’t have to issue a ticket and wait for days to get the VM you need. That VM is also documented and managed effectively so that you don’t end up with virtual server sprawl. This concept maps pretty well to the private cloud, and helps to reduce the friction as you hand off between these various stages of software delivery.
With this foundation in place, you can begin putting the tools in place to automate what you’re doing. You’re looking for tools that let you:
- Automatically provision and steward the resources that development, testing and operations teams need, and do it in standardised, repeatable forms
- Automate testing and formalise approvals
- Check to see what’s out of date or incompatible in your IT portfolio which could affect your software
- Automate staged deployments
- Monitor how software is performing and feed back the results so that you can spot and fix bottlenecks easily
These will come from a variety of vendors. Some, like HPE, will offer you a soup to nuts solution. Others will give you point solutions handling one or more of these tasks.
Don’t get obsessed with tools at the expensive of everything else, though. Andrew Clay Shafer, one of the pioneers of DevOps, has said that innovators focus on principles, imitators focus on practices, and idiots focus on tools.
You need technology to make all this work, but whether you cobble together scripts or use shiny platforms, it’ll all be for nothing if you aren’t following the basic principles of DevOps: collaboration and communication. What does that mean in practice? If you roll this out and your developers are still looking blankly at angry ops staff and saying ‘well, it worked alright on my machine’, then you’ve failed.
This collaboration extends outside the company, too, said HPE’s Cummings. “Another big challenge is managing and including suppliers into the delivery dynamic,” he warned. “Service level agreements need to be aligned to business goals and suppliers need to be open and considered part of the overall team.”
Going boldly where few firms have gone before
What does all this mean in practice? If you do it properly, it can result in software that runs better, with fewer configuration errors and performance issues, for which updates are released more frequently.
Still, survey figures suggest that companies have a long way to go here. QualiSystems, which provides cloud orchestration software for DevOps and cloud sandboxing, interviewed 650 US and European IT pros at VMWorld in October, and found that 75 per cent couldn’t deliver infrastructure within a typical workday.
“While DevOps has increased in popularity in the last few years, it has primarily been the domain of the unicorns, startups and cloud teams,” said Cummings. “Only now are we seeing this broaden out.”
Is the time right for you? Companies ranging from Walmart to Fidelity Worldwide Management are walking the walk when it comes to DevOps. For the rest of us, moving from "investigation mode" into action requires a leap of faith – and a team that’s willing to work together. ®