As companies go multi-cloud, a new set of tools simplify IT management and application development.
By Ben Lorica and Ion Stoica.
[This post originally appeared on the Anyscale blog.]
In a previous post we examined current serverless computing offerings and described why Ray is an ideal substrate for general purpose computing platforms. While serverless has only been around since 2015, many companies are embracing it and there are many highly scalable applications being built with serverless technologies.
Another important trend in computing is the growing number of multi-cloud companies. A series of recent surveys all concluded that a vast majority of companies already use multiple cloud providers and/or multiple hybrid clouds. Multi-cloud lets companies match different public and private clouds to their workloads. Since many companies are already building cloud native applications with containers, microservices, and components from different cloud providers, the trend towards multi-cloud is likely to continue.
A related trend is the hybrid cloud where companies aim to deploy applications that work both on their on-premise and public clouds. Rather than treating hybrid clouds separately, in this blog we treat them as just another multi-cloud deployment where the on-premise cluster is just another cloud. This is motivated by the emergence of software stacks that aim to unify public clouds and on-premise clusters, including Google Anthos, Azure Stack, and AWS Outposts.
Traditional Multi-cloud solutions
The trend towards multi-cloud has not been lost on software vendors and many actively highlight their availability on multiple cloud platforms. A common scenario is for users to first select a cloud provider, then cast around for tools available on their chosen cloud platform. Because potential customers may prefer to have critical workloads run on preferred cloud platforms (e.g., retailers may want to avoid AWS), this means that SaaS companies that start out on one cloud platform eventually need to branch out to other cloud providers to meet customer demand. However, even after providing their products on multiple clouds, the customer’s experience with these products remains the same: the customer first needs to select a particular cloud, and then use the product exclusively on that cloud.
Multi-cloud native solutions
While traditional multi-cloud solutions enable users to run the product in their cloud of choice, there is no easy way to switch between clouds. To run in a different cloud, the users might need to buy the product again for that cloud. This is similar to buying a game twice, once to run on your Mac and another time to run on your PC.
An emerging set of new multi-cloud native applications aims to address this limitation by letting users execute jobs across different cloud platforms. In this scenario, users typically buy the product without committing to a specific cloud, and the provider enables these users to run their applications on different clouds. This is akin to buying an application once and being able to use it on both your Mac and your PC (e.g., for a service like Netflix you pay only once and you can run it anywhere, on your PC, phone, set-top box, and many more).
Future multi-cloud native products will further abstract away the cloud provider. Users will focus on defining and launching a computational task, and the product will transparently select a cloud provider to run it on. Here are some current examples:
- BigQuery Omni lets users analyze data across multiple cloud platforms (GCP, AWS, Azure) all through the familiar BigQuery user interface.
- An Anyscale user who wants to train a model can write and test a machine learning pipeline on a laptop, then select a cloud platform to execute it on.
- Azure Arc lets users run Azure tools and data services on other cloud platforms.
However, using an application that accesses data across multiple clouds will incur additional costs due to data transfer charges. A quick comparison of data transfer and storage charges on AWS reveals that transferring data across cloud platforms is more expensive than storing it with a single provider. Thus, using a multi-cloud application that queries and transfers data across cloud providers should factor in additional costs that come with substantial data transfers. This will be less of an issue for applications that rely on data that doesn’t change too frequently. For data that is frequently updated, an alternative would be to run the application in the same public cloud that stores the data. A multi-cloud native solution naturally supports this scenario as it can seamlessly run the application on any cloud.
An emerging set of multi-cloud native platforms aim to make it easier for other SaaS developers to build multi-cloud native applications. For example one can create a machine learning platform on top of Anyscale, and because Anyscale is multi-cloud native, the ML platform is automatically multi-cloud. In this example, the creator of the ML platform built on top of Anyscale owns the relationship with users. Users of such an ML platform can select cloud providers based on preset criteria (estimated cost, estimated compute duration, etc.).
Reasons why companies are going multi-cloud
In some organizations technology adoption decisions aren’t controlled by centralized teams or processes. As such different teams may end up independently choosing different cloud providers and their organizations end up multi-cloud. But while a small percentage of companies inadvertently end up being multi-cloud, many more companies are deliberately choosing to do so for the following reasons:
Flexibility is one of the leading reasons companies use multiple clouds. Companies lessen the likelihood of “vendor lock-in” by going multi-cloud. Architecturally, they also have access to a broader selection of tools and hardware resources, and are thus able to design applications that span multiple cloud providers or consume services from multiple clouds. Of course having more options can lead to additional complexity and more moving parts. But this can be addressed if you build on platforms (like Anyscale) that are multi-cloud native yet come with simple and open APIs.
Cost savings is another important reason companies go multi-cloud. Companies can spin up whatever cloud resources they need and make choices that optimize their ROI. Multi-cloud native platforms can even potentially provide upfront cost estimates so companies can run their jobs on the cloud platform that delivers the largest cost-savings. Finally, having multiple providers compete for a company’s business usually ends up saving them money.
Performance and Resiliency improvements are two key operational reasons why companies go multi-cloud. Performance improvements are made possible by the fact that companies who are multi-cloud can choose a data center (based on location or other criteria) that meets their latency and hardware requirements. In addition they can combine best-of-breed of tools and resources not just the ones supported by a single cloud provider. Resiliency improves because diversifying across cloud providers provides a hedge against outages (all cloud providers suffer occasional outages).
Compliance and regulatory requirements are also prompting companies to go multi-cloud. There are many new regulations that require user data be held in certain locations. These rules are prompting companies to diversify to cloud platforms that have data centers in key jurisdictions.
Security and Privacy. Protecting IP, privacy, and regulatory constraints are frequently cited as reasons come companies avoid the cloud. Multi-cloud also adds another layer of complexity for security teams: data is not only outside the company firewall, it’s in multiple external environments.
With that said, there are security benefits that come with being multi-cloud. Data and IP are spread across multiple platforms potentially lessening the damage from security breaches. Secondly, researchers are working on tools that enable analytics and machine learning across multiple clouds which means companies can deliver cutting edge applications without storing data on a single platform. Finally, by combining public and private clouds, companies can place the most sensitive workloads in a private cloud while regular applications can use cost-effective public cloud networks.
Summary and Predictions
Surveys indicate that a vast majority of companies use multiple cloud platforms. Companies cite many reasons for going multi-cloud including cost-savings, performance and resiliency, flexibility, and security and privacy. Software vendors and developers have noted this trend and are beginning to address the needs of multi-cloud companies.
We close this post with the following predictions about multi-cloud computing over the next few years:
- An emerging set of multi-cloud native applications and platforms will accelerate the move towards multi-cloud.
- Because they make it easier for companies to build multi-cloud applications, more companies will develop such applications on top of multi-cloud native platforms.
- Since multi-cloud native platforms abstract away cloud computing resources, this raises the possibility that cloud computing platforms will get commoditized.
- Cloud providers will try to counter the trend towards multi-cloud by highlighting performance and cost benefits, ease of use (better integration), and better tools for managing privacy and security.
- Privacy-preserving tools will find a receptive audience among multi-cloud companies. There will be more tools to help companies build analytic and AI applications that use data stored across multiple cloud platforms so that no single cloud is able to compromise data privacy.
[Image taken at the Cass Sculpture Foundation, by Ben Lorica.]