Follow me on Twitter: @ericjbruno
Email me: eric@ericbruno.com

The Digital Love Triangle: Agile, DevOps, and Cloud

Eric J. Bruno
The cloud’s most cited benefits are how it offers shared, virtualized and physical infrastructure to deploy and host applications, with multi-tenancy, scalability and elasticity that go along with it. By now I’m sure you’re aware of the benefits of the cloud. But these benefits are so sweeping, and differ according to the audience (developers versus end-users, for example), that it’s hard to pin down exactly what the cloud is sometimes.

What has become very clear to software architects and developers is the parallel that cloud has with agile software development. The main tenets of the agile methodology include an iterative, adaptive process that promotes teamwork and collaboration, with feedback loops at each stage. Its goal is to break down projects into smaller deliverables that can be built and deployed (and tested by actual users) more often. The end result is a measurable, repeatable development process that is more flexible to change, where user feedback and problem-space changes can be more quickly adjusted for and incorporated into the software.

Agile development quickly exposes bottlenecks in other parts of the software build, test, and deployment processes. It also promotes collaboration that goes beyond development; there’s great value in including customers, business and IT folks in the loop. And with that, DevOps was born.

DevOps often includes continuous integration, build, and deployment efforts, where deployments occur to production or production-like hardware often. Not only does this type of development foster greater use of the cloud by developers and IT, its benefits are right in line with those of the cloud. For instance, both agile and cloud are:

  • Iterative: the cloud allows you to deploy portions of your infrastructure over time. You can start small and grow as you see fit or needs demand it. This is in line with the iterative nature of agile and DevOps.
  • Adaptive: through virtualization and other software-based approaches—such as software defined networking (SDN)—the cloud is very adaptable to your specific application needs.
  • Collaborative: public cloud services allow you to support remote development teams, and to easily plug in social media based features into your applications.
  • Measurable: a big reason to use the cloud to begin with is how its costs and benefits can be easily measured and accounted for.
  • Predictable: with the cloud you can accurately predict future needs and costs based on growing user demand or new application deployments.
  • Repeatable: the cloud helps you reuse infrastructure and repeat your deployments for new application types.

It’s no coincidence that DevOps and cloud have grown in both popularity and ROI at the same time. In many ways, each has enabled the other in what can be characterized as a symbiotic relationship. There’s a risk that one-off solutions based on existing on-premise IT cost too much to support proof of concept projects, take too long to deploy, and threaten to stifle innovation. The cloud is the answer to achieving an agile and iterative development platform with DevOps, potentially enabling organizations to innovate at a greater pace than we’ve ever seen. That’s an exciting prospect.

There’s even a growing trend where organizations move entire development toolsets and environments to the cloud, thereby creating a virtualized development organization.

Conclusion: The Cloud is More

The cloud is more than a data center that someone else operates. It’s more than enterprise software installed on someone else’s servers for you to access. The cloud is your bridge between information technology (physical servers and devices) and operational technology (bandwidth, control and command, and administration).

In a nutshell, the cloud delivers a global, nimble solution base, lower maintenance overhead, best-in-class security, and an overall reduction in risk. Its benefits are clearly aligned with agile processes as well as corporate budgets. The cloud in all its forms (public, private, hybrid, and brokered) is at the heart of all of this and will continue to expand into new areas quickly, allowing us all (developers and users) to do more.