Getty Images/iStockphoto

Tip

8 tips for building a multi-cloud DevOps strategy

DevOps practices and tools have many benefits for application development, deployment and monitoring in complex IT environments that span multiple clouds.

Using multiple clouds is increasingly common in enterprise IT. But managing multi-cloud infrastructure can be daunting for IT ops. Extending the DevOps approach to multi-cloud environments can support and simplify application development, delivery and maintenance.

Incorporating DevOps into a multi-cloud strategy might entail some compromises for DevOps traditionalists. But such compromises aren't necessarily a bad thing. After all, the DevOps process can greatly democratize development and maintenance work in multi-cloud environments and help organizations build competitive advantage.

1. Implement a cloud management platform and self-service cloud brokerage

IT teams need a standardized toolset to manage and automate application deployment, scaling and monitoring across multiple clouds. Centralizing management and provisioning of all cloud services is integral to achieving this goal.

Self-service tools to implement and provision cloud services for application development are crucial when extending DevOps to a multi-cloud context. A well-crafted cloud brokerage includes detailed service catalog descriptions of each available cloud service, its dependencies and its pricing. This benefits both the service desk by relieving them of extra burden and developers by helping them work efficiently across environments.

The mark of a mature self-service cloud brokerage is automated cloud cost optimization, which keeps developers within budget and alerts them to lower-cost cloud service options. The brokerage should also deduct cloud spending from a preset project budget.

The chart displays data on cloud adoption across organizations, with 84% reporting a multi-cloud strategy.
As more organizations adopt multi-cloud and hybrid cloud strategies, IT teams are seeking ways to manage the complexity.

2. Create a centralized code repository

Create a centralized repository of infrastructure as code and application code with version control and collaboration tools, whether as part of an all-in-one DevOps platform or as a standalone tool that can integrate into CI/CD pipelines. Establishing this type of repository facilitates teamwork and code sharing across IT teams and cloud environments.

3. Commit to containers

While some organizations are already running software on containers, moving to a multi-cloud environment means it's time to commit to them.

Help developers adjust to containerized environments with these tips:

4. Standardize on a cloud-agnostic approach to development

In a multi-cloud environment, IT teams might be tempted to stick with the features of each cloud service provider (CSP). However, building a multi-cloud infrastructure should take a cloud-agnostic approach to infrastructure and application design so that IT teams can use the same DevOps processes and code across CSPs.

5. Integrate DevOps thinking into a multi-cloud strategy

Extend the DevOps mindset to a multi-cloud environment by prioritizing agility, performance and automation.

Practice cloud arbitrage -- shifting workloads between CSPs -- to optimize multi-cloud infrastructure by taking advantage of higher availability, lower latency and negotiated discounts that keep applications compliant with customer service-level agreements. Maximize specific CSPs for applications by region and country to optimize workloads and reduce latency.

The image lists several common cloud automation tasks: auto-provisioning virtual servers, eliminating zombie cloud instances, backing up data on regular intervals, establishing infrastructure as code, defining common configuration items, providing version control for workflows and driving cloud integration processes.
Automating these common tasks can reduce the time and costs associated with cloud infrastructure management.

6. Capture and document team knowledge and policies

Update established DevOps processes, playbooks, policies, procedures and documentation to reflect how IT teams should work across multi-cloud environments. As a follow-up, provide IT teams with training to ensure they comply with the policies and follow the new workflows.

Don't just publish documentation and training to a central repository. Instead, look for ways to integrate documentation and training content into CI/CD pipelines so IT teams can easily access it throughout the project lifecycle.

7. Adjust DevOps tooling to multi-cloud environments

When implemented correctly, DevOps practices and tools should simplify software delivery in multi-cloud environments. One best practice is to standardize on one software delivery platform for IT teams. While this move seemingly goes against the freedom of choice characteristic of DevOps, it plays well into the advent of comprehensive, centralized DevOps platforms.

Even if an organization doesn't adopt a third-party platform to manage the full DevOps cycle, a multi-cloud environment still requires CI/CD pipelines to automate application building, testing and deployment.

8. Prioritize monitoring, observability and logging across multiple clouds

Multi-cloud DevOps also requires IT teams to have a real-time picture of toolchains and cloud environments. Achieving this level of visibility involves using monitoring, logging and observability tools to collect and centralize data from multiple clouds.

After implementing a monitoring practice, make data available to authorized technical and business stakeholders. Centralized dashboards offer quick access to actionable insights about application performance and availability across multi-cloud environments.

Managing environments containing infrastructure from multiple CSPs presents a strong use case for full-stack observability. Technology and business stakeholders -- and, importantly, security teams -- benefit from detailed views and reporting across multi-cloud environments.

Next Steps

Third-party tools help manage DevOps with AWS, multi-cloud

What is multi-cloud visibility, and how do I achieve it?

Handling Kubernetes challenges in complex cloud environments

Dig Deeper on DevOps