By CTO Leonardo Murillo
There are many pros and cons of multi-cloud adoption, but how can you weigh these attributes with what’s right for your organization? Let’s dig into the current cloud ecosystem and how it’s evolving with the rapid adoption of multi-cloud.
Congratulations! You are now comfortable in your chosen public cloud; you’ve reduced costs, increased agility and reliability and lowered feature release times. What’s next?
Welcome to the next paradigm shift, the age of the multi-cloud. It wasn’t too long ago that there was one public cloud, AWS; oh how times have changed! The cloud landscape is evolving rapidly. Strong players are pushing fiercely for a slice of an industry still dominated by Amazon.
When you are already deriving value from your cloud of choice, you may be wondering why you need to adopt a multi-cloud strategy.
The Cloud Wars
Before looking at the pros and cons, I think it’s important to consider some characteristics of the cloud wars. These are particularly relevant when identifying future cloud strategy.
Differentiation: In order to compete, public cloud providers differentiate their service offerings by providing high level interfaces to feature sets that leverage their own unique skills.
As you compare the major cloud providers and choose which you want to align with in your multi-cloud strategy, you can clearly see that each has unique offerings. There are reasons to choose any one of them, for example, why Google Cloud? Google Cloud has a heavy lean on data and machine learning services (Machine Learning as as Service, MLaaS). Why look at Azure or AWS? Azure has the integration and features of their DevOps services, while AWS has managed email sending with their SES service.
Consumption via API: Services are becoming increasingly managed and abstract. Enterprises are consuming the cloud via APIs and not worrying about managing any underlying infrastructure.
What are the Pros of a Multi-Cloud Strategy?
1. Avoid Cloud Vendor Lock-In
The sudden availability of multiple clouds has revealed a big problem with vendor lock-in with multi-cloud management. This is particularly true for those enterprises that became early adopters of the cloud.
The various clouds are evolving, specializing and differentiating themselves. When you take advantage of a multi-cloud environment, you minimize dependencies and being strapped to just one provider as multi-cloud standards develop and mature.
2. Use Features Not Available in Your Current Cloud
Go ahead and keep your existing cloud. A multi-cloud strategy is not replacing the value from your existing cloud investment. Instead, multi-cloud extends the reach of your current solution while allowing you to take advantage of the latest and greatest services.
Look at other clouds and choose the services which enable whole new features and value for your clients in a way that is manageable and supportive of your strategy and evolution.
3. Multi-Cloud Offers Business Continuity and Disaster Recovery
The mantra of “design for failure” should be in our minds at all times, and across everything we build. The hard truth: system failures will occur. And yet, enterprises and corporations are building solutions that rely solely on the uptime promises of a single public cloud. With the public clouds’ rapid expansion, we’ve seen a single service going down result in big chunks of the Internet being broken in a single shot.
The solution? Leverage multiple clouds for business continuity and disaster recovery.
The number of proven architecture and deployment patterns is continually growing. So is the availability of third- party products and services focused on enabling businesses to both replicate and failover workloads across clouds.
A Note About Multi-Cloud Disaster Recovery and Data
Personally, I think multi-cloud disaster recovery should begin with data. Porting compute solutions to multiple providers is becoming more and more simplified, thanks to containers, Kubernetes, serverless frameworks, cloud-agnostic configuration management and Infrastructure as Code (IaC) tools. But it makes very little sense to have your solution running in a failover cloud without your data.
4. Flexibility to Choose Desired APIs
The days of spinning up VMs and managing infrastructure are quickly fading and giving way to the world of managed services. This has resulted in a much greater level of flexibility for developers when they are looking to leverage multiple cloud-specific features.
Pre-trained machine learning models, exposed through Machine Learning as a Service (MLaaS) cloud APIs, are a great example of this. The number of “packaged machine learning” services provided by the major public clouds is increasing. And given the nature of machine learning, some of these ML algorithms are becoming smarter than the others. After all, these services rely on data and algorithm tweaks to increase their accuracy, and both these are unique differentiators amongst cloud vendors.
Now, let’s put this lesson into practice. Let’s say you run your primary workloads on AWS, but you see value in using Google Cloud’s Vision API in your solution as well. What do you do?
You simply enable the Google Vision API in your Google Cloud account. Next, you generate a key, and you’re good to go. You then start integrating this service into your existing solution.
5. Flexibility in Deployment Architecture
Let’s imagine you are running your workloads in Azure and you have already containerized your solution. If you look at the managed Kubernetes service offered by various clouds, you’ll quickly notice that Google Cloud’s GKE is considerably less expensive than Azure’s AKS.
So does that mean you need to migrate your production environment to Google Cloud?
Not quite! The use of multiple clouds and cloud-agnostic technologies to deliver solutions to different clouds at varying deployment stages is a great way to approach multi-cloud.
Consider instead this configuration scenario:
- Run all your development environments in the most cost-effective cloud.
- Leave your production and staging environments where they currently exist, perhaps in other cloud(s), where you have a more mature presence.
What are the Cons of a Multi-Cloud Strategy?
1. More Clouds is More Surface
More clouds is more surface, and more surface is more risk. Now you need to have clear visibility into each cloud to track what is happening. You need to guarantee security in heterogeneous environments where the tools may be different and the visibility may be different. Ideally, you want a “single pane of glass”, where you can see your different clouds from a consolidated location and platform.
2. Multi-Cloud Security Carries More Variables
How you securely deploy across clouds may differ. The tools that protect each deployment, each workload is going to be slightly different, because you don’t have the same services in each cloud.
However, this is usually a layer that gets implemented at the orchestrator level. So when we talk about Kubernetes, there is a lot you can do in terms of security that is built within the Kubernetes ecosystem. For example, you have role based access control, you have policies, and you have a service mesh.
In terms of securing a load balancer, the managed services that the Google Cloud has for its web application firewall is not the same one that AWS has for its web application firewall. So now you have two load balancers and two workloads running your application with a load balancer in front of it.
This is a risk, it is an exposure to the outside world, a target for attack that can be probed for vulnerability. You’re using different services, and those services have different features. So all of a sudden, you’re exposed to scenarios where in one cloud, you have coverage against certain risks, whereas in the others you have coverage against other risks. You will need to engineer ways to fill that gap for each cloud specifically for those higher level services.
3. A Data Strategy Must be Carefully Designed
A true multi-cloud solution or strategy must include a data strategy. You have to think about BOTH your compute workloads and your data.
Look at the design of your software – how cloud native is your application? Design is a critical component that will make your multi-cloud strategy easy or difficult.
Consider the following questions:
- What native services are available within the clouds to manage data?
- What is the cost?
- How is this data going from A to B? Is it going over the public Internet or secure channels?
- When you’re dealing with moving data across clouds, how are you keeping in compliance?
- How can you have both visibility and compliance?
- Do you have enough bandwidth to push that amount of data within the constraints of your metrics?
- What are your availability expectations?
- Do you need to batch it? Do you need to encrypt it?
- How are you going to manage schema migrations across clouds?
Next Steps In Implementing a Multi-Cloud Strategy
Multi-cloud can mean many things, which you will discover as your company and your respective cloud ecosystem evolve. The key is remaining flexible so you adapt and take advantage of the opportunities of multi-cloud, while also managing the risks of multi-cloud.
Discover what all the clouds have to offer, and use that knowledge as a component of your future cloud strategy – and reach out to the right partner. At Qwinix we’ve supported companies in migrations and adoptions of all the major public clouds. This gives us a unique perspective in helping you extract the most value from the very exciting times of the multi-cloud.
Schedule a Complimentary Cloud Consultation