DevOps and the Cloud: A match made in heaven?
Speeding application delivery for hybrid cloud infrastructures.
Can DevOps principles be applied to the deployment of applications to the Cloud? Most definitely.
In actuality, DevOps and Cloud technologies are both striving to do the same thing: make delivering apps easier and faster. And the Cloud (whether private, public or hybrid) can become a standard part of your app delivery practices without adding overhead or risk.
The practice of delivering apps agilely
First and foremost, DevOps is a set practices, methodologies, or even ideologies designed to encourage and instill greater collaboration between development teams and IT operations.
According to Rob England, an early critic and now advocate of DevOps, “There are exciting consequences of DevOps: being more nimble, accelerating our ability to deliver, becoming better aligned with the business, giving people their life back.”
And we have real world results that back that up. Some of our customers have reported a 94% improvement in application deployment times. Release failures (risk) reduced by more than 60% and application deployment volumes increased by 300%. These organizations also report that they iterate faster and deliver more innovative features than before.
Last year’s State of DevOps Report surveyed more than 9,200 software developers and found that DevOps organizations deploy code 30 times more frequently than practitioners of more traditional development techniques and experienced 50 percent fewer failures.
Cloud deployments: Risk or reward?
On the other hand, Cloud is also purposed as a way to introduce agility and nimbleness to software development and the business. Too often though we think of it as a way to reduce the reliance development teams (and sometimes the business itself) have on IT operations.
More of a way to bypass IT ops in order to deliver applications faster and therefore serve the needs of the business better. But, that way of thinking comes with a huge risk.
Unfortunately, IT ops often gets tagged as the “department of no”. They are entrusted with the keys to the kingdom so to speak. Again from Rob England, old-school IT views “Anything that accelerates the rate of change or increases volatility inherently creates risk.”
But, incorporating a cloud strategy with DevOps principles, which includes IT ops, is proving we can not only deliver software faster with higher quality, but also reduce the risks of failure and compliance issues at the same time.
Taking the risk out of cloud deployments
We believe continuous delivery is the key enabler for cloud-based deployments—with release automation a primary lynchpin in that discipline. Martin Fowler defines continuous delivery as a software development discipline where software is built in such a way that the software can be released at anytime.
So if we break that down, that means that software enhancements are automatically integrated into the code stream, tested, and promoted to the next stage until ultimately it is ready to be promoted to production when the business demands it.
So where does the cloud come into the picture? In many cases you may be using a public cloud, say AWS or Azure, for your test environments and a private cloud environment like VMware behind the firewall for production.
You’ll want an integrated solution that automates the provisioning and configuration of those cloud environments and deploys the application to all test and production environments all within the same, consistent workflow.
An enterprise release automation solution will simplify the process of creating, managing and decommissioning complete, production-like environments within an application deployment workflow.
It will ensure your environments are provisioned with exactly the resources you need as you need them. It will integrate your test streams and run those tests in parallel and identify any potential conflicts while enabling you to collaborate and share the results with other stakeholders.
Finally, it should automate the promotion of the application to the next stage of the lifecycle including production, while decommissioning obsolete test environments to free up resources for other application testing—again, all within the workflow.
Cloud and DevOps principles with highly sophisticated release automation go hand-in-hand to ensure your business can compete in this new application economy.