Multi Cloud Enterprise Deployment Pattern

Chanaka Fernando
May 15, 2019 · 4 min read

Introduction

Enterprises are expanding their IT operations to match with the consumer demand and to become the leader in their respective industries. Cloud has provided a reliable platform to these enterprises to run their business operations without much hassle. Few years ago, Amazon Web Services or AWS was the only choice people had when they want to deploy their applications in a cloud environment. But the market has been changed and there are many other vendors who offers cloud infrastructure at a competitive price. This allowed the enterprises to choose the best cloud environment for a given task rather than locking into a single vendor.

Advantages

Instead of running all your business functionality in a single cloud or on-premise platform, running on multiple clouds give enterprises many advantages. Here are few advantages.

  • Provides much better service availability — Given that your applications are running across multiple cloud environments, your services can run without much interruption even if an entire cloud system goes down.
  • Get enterprises free from vendor lock-in — Cloud vendors always try to get as much applications into their own cloud and that will lock you into a single vendor so that you cannot get away from them even you need to do it. With the multi-cloud approach, you don’t need to lock into any vendor and move away from them at any time.
  • Can negotiate for better deals — Once you are in multi cloud, you have more power to demand for discounts since every vendor wants to increase their share of your account.
  • Can use best technology for the applications — Different cloud vendors are strong in different areas. When you have a multi cloud strategy, you can select the best technology for your task which is provided by the resective cloud vendor.
  • Can provide better performance to consumers — Your applications can run on multiple clouds and expose the functionality through cloud gateways which are closed to the consumers in relevant cloud deployments based on locations.

Architecture

Maintaining a multi cloud deployment is not a trivial task. You need to architect the deployment such that it is maintainable. Otherwise you will lose the purpose of setting up the multi cloud stretegy in the first place. Given below is a high level solutions architecture on how you can deploy your applications within a multi cloud environment.

Image for post
Image for post
Multi Cloud Enterprise Deployment Pattern

As depicted in the above figure, it is best to have a master deployment which acts as the leader of the overall deployment. This master deployment can be hosted on-premise or in a cloud infrastructure. In this master deployment, you should have the components like

  • Management components which are used to add/modify artefacts to runtimes
  • Analytics and monitoring components which are capable of monitoring across multiple clouds
  • Master datasources which acts as master in a master/slave or master/master (multi-master) deployment
  • Runtime components which serves the traffic from consumers

In addition to this master deployment, there can be multiple of worker deployments which contains

  • Runtime components which served the traffic from customers
  • Master/Slave data sources which contains runtime and metadata which are required by the applications

The above architecture explains at a high level which type of components can run on which parts of the deployment. Let’s understand this better with a reference architecture where WSO2 API Manager is deployed in a multi cloud deployment architecture.

Image for post
Image for post
WSO2 APIM Multi Cloud Deployment

As depicted in the above figure, management components of the WSO2 API Manager are deployed in the master deployment. This can be a deployment on an on-premise DC, private cloud or a public (shared) cloud. The components in the master deployment are

  • API Publisher
  • API Store
  • API Analytics
  • API Key Manager
  • API Gateway

Additionally, you can have worker deployments across different cloud environments which contains the APIM Gateway component.

Usage Patterns

Multi cloud deployment architecture can be used for different use cases. Here are some of the usage patterns.

  • Run production on master and pre-production on worker deployments
  • Run production on both master and worker deployments for load balancing, high availability and better performance
  • Run bursts in worker clouds while running main production load in master cloud
  • Run DR site on worker cloud while running production in master
  • Run workloads across clouds based on the load and the cheapest pricing option (cloud arbitrage)

Challenges

While there are many advantages in the multi cloud strategy, there are challenges which needs to be properly managed. Here are some disadvantages

  • Managing deployment across multiple clouds require expertise on respective clouds which is costly than using a single infrastructure
  • Performance will get impacted when the worker deployments needs to contact with master deployment
  • Increased security risk with a widen attack surface

If you like this content, don’t forget give a star to the GitHub repository which contains the original source of this article.

Conclusion

Multi-cloud strategy is something every enterprise is looking into because of the advantages it brings around the availability, pricing and freedom from vendor-locking. In the same time, it is not coming without it’s own challenges. With the multi cloud strategies becoming more main stream, these challenges will be addressed through proper solutions.

Solution Architecture Patterns

Reusable solution architecture patterns for enterprise

Sign up for Solution Architecture Pattern Newsletter

By Solution Architecture Patterns

Latest solution architecture patterns Take a look.

By signing up, you will create a Medium account if you don’t already have one. Review our Privacy Policy for more information about our privacy practices.

Check your inbox
Medium sent you an email at to complete your subscription.

Chanaka Fernando

Written by

Engineer | Author | Speaker | Associate Director @ WSO2

Solution Architecture Patterns

https://github.com/chanakaudaya/solution-architecture-patterns

Chanaka Fernando

Written by

Engineer | Author | Speaker | Associate Director @ WSO2

Solution Architecture Patterns

https://github.com/chanakaudaya/solution-architecture-patterns

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store