Saturday, 2 February 2019

IaaS: Why a Single Cloud is better than Multi-Cloud

Cloud enables businesses to operate at at high speed and to be agile. Everything is an API call away and is lightning fast to get infrastructure running. Legacy on-premise enterprise IT is slow as it requires data centers, servers, storage, networking, load balancers, software and specialised personnel that work in separate IT silos and most importantly there are no managed services. Public cloud Infrastructure as a Service (IaaS) offer compute/storage instances and networking services as simple APIs and offers many services.

It is important to note that different cloud vendors have completely different APIs hence it is challenging to move applications from one cloud to another. Virtual servers are different, networking is different, firewalls are different, load balancers are different, autoscaling is different, security is different. Different clouds have similar services yet they are slightly different and all the APIs are completely different. Furthermore the many Platform as a Service (PaaS) offerings that are sitting on top of infrastructure services and that really give the cloud huge powers are completely different and have completely different APIs.

Many customer when they first start their journey to cloud believe that multi-cloud is preferred to using a single preferred cloud provider. They  want to be cloud-agnostic and want to avoid vendor lock-in. The vision is that they want to be able to shift workloads seamlessly between cloud providers. Also, by using two or more cloud  providers, an enterprise can protect itself against outage risks and improve IT performance by avoiding vendor lock-in and using different platforms and infrastructures. 

Advantages to using multi-cloud:
  • Avoid Lock-in. Multi-cloud avoids cloud vendor lock-in
  • Cost, choose the lowest cost option that meets business requirements
  • Latency: choice of many regions from many cloud vendors ensures close proximity to customers
  • Availability: by distributing workloads across different cloud providers can improve availability in case of outages
  • Compliance: Some companies and countries have specific regulation that require companies to keep data inside the country. Choice of many regions from many cloud vendors provides more regions around the globe
  • Best of breed services
Advantages of consolidating to a single preferred cloud:
  • Single set of APIs
  • Simplicity. Learning cloud has a steep learning curve, learning multiple cloud requires team to know multiple clouds and learn how to integrate the different clouds.
  • Fast to implement new business solutions without complexity of multi-cloud. No need to rewrite and retest application on multiple cloud platforms.
  • Staff skills. A multi-cloud deployment requires expertise on multiple cloud platforms
  • No additional tools to support multi-cloud
  • Can use services. If we want to use services on top of IaaS then we can do only so if we choose a single preferred cloud platform, yet if we use multiple clouds for IaaS as we do not want to be locked in then we can not use services. For example if we want to use a service say DynamoDB then we can not choose multi-cloud as DynomoDB is only available from AWS, same would apply if we want to use Azure Service Bus then our application is locked into Azure as this service is only available with Azure. Most services that sit on top of IaaS as proprietary and with have completely different APIs that other services. As such customers are already locked-in if they use services. If customers do not want to be locked in they can not use services.
  • Availability: The major cloud vendors have excellent availability and multiple datacenters in a region with better availability than most legacy on-premise enterprise IT environment. 
  • Better Security. Multiple cloud platforms means there are more possible attack vectors and vulnerabilities and thus require extra effort to achieve effective security, governance, and compliance.
  • Cost.  When you can consolidate larger number of VMs on a single cloud platform and commit to a multi year deal you can negotiate a much better deal with larger scale. It also simplifies all extra risks and loss of control over budgeting of cloud costs. Oversight, lack of ROI analysis, and tracking of cloud consumption can grow into a big waste.
For simplicity and agility a single preferred IaaS cloud should be a priority for most organisations, yet for PaaS  it makes sense to use the best available service from different cloud providers as they can be integrated with IaaS. Furthermore most PaaS offerings are a secure internet endpoint and are mostly independent from the IaaS offering.

It is important to note that we do not want to dilute data gravity with multiple cloud providers. The idea of data gravity is "As data accumulates (builds mass) there is a greater likelihood that additional services and applications will be attracted to this data." Such data gravity derives from "latency and throughput, which act as the accelerators in continuing a stronger and stronger reliance or pull on each other,". If data is fragmented in many different silos then data gravity is also diluted. As such using many disperse cloud data sources goes against the idea of data gravity and should be avoided when possible.

Cloud is proprietary, it has proprietary APIs  and yes it locks customers in. Yet previously many organisations bought IBM mainframes, Oracle databases, Cisco switches, F5 load balances, Palo Alto firewalls, Windows/AIX/Solaris/HP-UX operating system and many other critical components that were completely proprietary yet customers were happy to be locked in this proprietary architecture. Cloud is the same, it is proprietary, but it is lower cost and it is agile so it is far better than IT solutions in the previous decade.

For large enterprises with multiple business units, multi-cloud is inevitability, yet it should be minimised whenever possible.

No comments:

Post a Comment