This is part 4 in a series on multi-cloud use maturity. A comprehensive eBook that includes the entire multi-cloud use maturity framework can be found here. Today we take a look at the role of DevOps in supporting multi-cloud use.
Why DevOps is critical to multi-cloud use success
Having a strong and broadly adopted DevOps program is a necessary component of multi-cloud use success. That’s because multi-cloud use is all about making sure that each application is matched to the cloud environment that best meets the requirements of that application. For the concept of multi-cloud use maturity to make sense, the maturity of application development processes must also be considered.
Two decades plus of evolution
Depending on what milestone you pick, Agile development came into the lexicon of app development sometime in the late 1990s to early 2000’s. DevOps followed in the late 2000’s. “The Phoenix Project”, written by Gene Kim, did a lot to catalyze the movement and make it mainstream.
The Phoenix Project was published in 2013, the same year that Docker, which super-charged container adoption, was launched. The advent of containers intersected with the movement towards micro-services which itself was an evolution of the ideas that gave birth to Service Oriented Architecture, which came on the scene in the 1990s.
Whew, that was a busy and eventful period of evolution for application development. Agile, DevOps, Containers and Microservices are all now mainstream concepts. For organizations to be successful in multi-cloud use they must also be successful developing high-quality software designed to run in a cloud environment.
Assess the strength of these specific practices
Being successful in this area can be decomposed into the organization having broadly adopted the following practices.
- Using containers and micro-services to build new software
- Establishing an SRE function to move operation centric functions closer to development
- Leveraging automated and continuous practices (development, testing, integration, delivery, deployment)
- Treating infrastructure as code (version controlled, immutable, integrated into CI/CD pipelines)
- Making sure developers can self-service their needs and get immediate access to resources
- Adopting technologies and techniques that support observability for modern, cloud scale apps
While the principles of DevOps have been around for quite a while now, survey after survey continues to show that broad adoption and deep expertise is still lagging in most organizations. As you consider where you are with multi-cloud use maturity, you’ll want to also look at where your organization is in terms of having a solid program around DevOps. It doesn’t do much good to be great in other areas of multi-cloud use if the practices closest to developing the software you will run in that multi-cloud environment are weak.
Other blogs in the series