This is a re-post of my article, originally published on The Ravello Blog.
Over the last year, as enterprise awareness of the cloud has increased, more and more enterprises outsource their workload deployments to the cloud, in most cases to a single cloud provider or vendor. But the market is rapidly changing with more and more options becoming available from a variety of public IaaS providers, including Amazon, HP, IBM, RackSpace as well as private offerings such as Openstack and VMware.
The new deployment options make it possible to mix and match platforms and cloud providers, as well as to set up hybrid clouds where you keep some of your resources in your on-premises datacenter or private cloud while migrating parts of your workload to one or more public clouds. In this post I will elaborate more about the challenges, as well as the benefits of a multi-cloud environment.
Challenges of multi-cloud deployment
- Complexity – The biggest challenge of multi-cloud is its inherent complexity – different technologies, different interfaces, different services, and different terminology. There is currently no standardization of terminology, instance sizes, or methodologies across cloud vendors.
- Interoperability – or lack thereof – between different cloud vendors. This necessitates using workarounds or APIs to make the application set up work on different platforms and clouds. Specialized tools, such as Ravello, can be used to achieve seamless deployment on different external cloud providers.
- Management overhead – Multi-cloud requires a higher level of expertise in determining what to move to the cloud, where, when and why. This brings with it an increase in overall management overhead, including investments in VPN connections and monitoring. The implementation of different platforms requires expertise in a more diverse range of subjects.
And of course, as with any public cloud solution, the issues of compliance, security, and availability must always be taken into consideration.
Benefits of multi-cloud
- Autonomy – The ability to deploy your applications on different cloud providers has the clear advantage of reducing dependency on a single vendor. The resulting lower level of lock-in improves your position in negotiating with vendors for better SLA and/or costs. The ability to easily switch vendors means that you can take advantage of the most attractive offers available at any given time.
- Hybridity – You can keep some applications on-premises and others on one or more public clouds, based on a variety of considerations, such as security, performance or cost optimization. For example, a hybrid cloud solution can also be used to provide faster service, particularly if your customers are located in different countries. Deploying your applications on a cloud that is closer to your customer’s geographical location can result in better response time and performance.
- Extended capabilities – Different cloud providers support different platforms and offer constantly changing packages of capabilities. Some features, for example, Database as a Service, might not be supported by all cloud providers. It might be a good idea to shop around, comparing the various cloud offerings to identify which providers offer the best fit for you. You might prefer to pay more for specific deployments if it means you get special capabilities, while continuing to take advantage of lower costs offered by a different provider for resources where those capabilities are not relevant.
IMHO, the benefits of utilizing multiple platforms heavily outweigh the challenges. If cloud management is in place, including policies, automation and transparency, moving to a multi-cloud platform configuration can help you lower costs and improve performance. Over time, focusing on product development that is not dependent on a specific single cloud provider will also contribute to creating a better, more robust product that is supported on multiple platforms.