Chapter 1. What Is Polycloud?
Cloud computing is central to most modern organizations’ infrastructure operations, and cloud native applications are becoming more the norm for new application development. Additionally, as competition between cloud providers heats up and legitimate competitors to Amazon Web Services (AWS) begin to take hold, applications that span more than one cloud provider are becoming more typical.
The term multicloud, used to describe these cloud-spanning applications, has been in our vocabulary for many years. But the term has never been well-defined. It describes using more than one cloud provider, but it does not specify how those cloud providers are used. Over the years, many different models of multicloud have come into modern usage, and each of them has different sets of advantages and disadvantages. Yet the terminology used to describe each of these has not yet been defined in a standardized manner.
Enter polycloud. Polycloud is one particular model for using multicloud that has gained significant traction in recent years, especially as cloud providers have added higher-order capabilities above basic cloud infrastructure services such as storage, compute, and networking. These higher-order capabilities have encouraged cloud specialization and differentiation. Many applications aim to ignore those differentiations, but polycloud is an architectural model that encourages cloud specialization and differentiation.
In this report, we will define what polycloud is and how it compares to other types of multiple cloud deployments. Additionally, we will show how your application can evolve into a polycloud architecture, and we will examine some common examples of polycloud.
Types of Cloud Deployments
There are many types of multicloud deployments that all serve different purposes for the organizations that use them. Some were designed for strategic purposes, and others emerged from organic growth and individual business choices. Let’s take a closer look at how these multicloud deployments work in practice.
Hybrid Cloud: Moving Off Premises
A typical first approach to a cloud strategy is for a company to move part of its application to the cloud, creating a hybrid cloud deployment. In a hybrid cloud, components of the application are on premises and components of the application run in a cloud provider using cloud services. Applications using this model typically will employ basic cloud services such as object storage, database, and other application building blocks. An example hybrid cloud deployment is shown in Figure 1-1.
Cloud Native: Fully Off Premises
To avoid requiring on-premises components, many applications are moved to a full cloud deployment. They may either be migrated from on premises to a full cloud deployment model, as shown in Figure 1-2, or be developed in a cloud native environment. Either way, the entire application runs in a full cloud or cloud native environment.
Multicloud: Leveraging Capabilities
As cloud providers expand their offerings, applications become more complex and companies become more cloud savvy. This leads many companies to adopt a simple multicloud architecture for their applications, such as the one shown in Figure 1-3.
In this model, either the entire application is duplicated across multiple providers or parts of the application are on one cloud provider and parts are on another cloud provider. In either case, typically no specialization exists. The application does not usually take advantage of feature optimizations provided by individual cloud providers. In fact, use of specialized cloud provider services may be discouraged or even disallowed for applications. Instead, only basic, standard cloud capabilities tend to be used.
Polycloud: Cloud Specialization
Cloud providers are creating more sophisticated services and are starting to differentiate these capabilities among themselves. These differentiations can take a variety of forms:
-
The types of infrastructure provided, such as Microsoft Windows Servers versus Linux servers
-
The types of services offered, such as specialized machine learning and artificial intelligence services
-
The topics of analytics provided or auxiliary tools and services provided over and above the base capabilities
Large, complex applications take advantage of many of these specialized services and often will use different services from different cloud providers, based on the specific specialized services available. As such, an application may make use of multiple cloud providers to provide different service capabilities.
This is called polycloud and is illustrated in Figure 1-4. In this diagram, we see AWS providing basic cloud services for the application. We see Microsoft Azure providing Microsoft Windows–based servers for a portion of the application. And we see Google Cloud Platform (GCP) providing AI capabilities for the application. Each cloud provider is giving unique capabilities to the application.
While multicloud is about using multiple cloud providers in a cloud-agnostic manner, polycloud is about using specialized capabilities of multiple cloud providers.
Multicloud stresses the generic nature of cloud capabilities. Polycloud stresses the specialization of cloud providers. Multicloud tries to downplay the differences between the providers, while polycloud uses the differences to the benefit of the application.
Now that we have a clearer understanding of what various multicloud deployments look like, let’s take a closer look at polycloud in particular and the various paths your organization can take to find itself working in this type of architecture.
Get What Is Polycloud? now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.