Hybrid Cloud vs. Multi Cloud vs. Cloud Native - which one to choose?
With a handful of strong cloud providers on the market, more and more teams are choosing to deploy their products on multiple platforms. While high availability is a goal for some, many more are choosing a hosting approach to take advantage of combining the benefits of different platforms. In this blog post we explore the various options available, and typical use cases for them.
Hybrid Cloud
A hybrid cloud approach traditionally refers to splitting the workload to run some parts of it in on-premises data centres, and some parts on the public cloud. A typical use-case for a hybrid cloud is hosting enterprise applications in on-premises legacy infrastructure, while building new functionality in a public cloud provider such as AWS. The term hybrid cloud can also be used to describe an approach that combines different types of cloud platforms - for example a private cloud and a public cloud.
A hybrid cloud approach is often chosen as a transitory state in a cloud migration project, enabling development teams to produce value rapidly by taking advantage of the ecosystem of a public cloud provider, while minimising the risk of disruption to core business systems.
An important part of planning a hybrid cloud implementation is secure and robust connectivity. Services such as AWS Direct Connect can be used in this scenario to provide robust and redundant connectivity between multiple platforms.
Multi Cloud
Multi Cloud usually refers to an approach that combines the benefits of multiple public cloud providers. In our experience, this approach is most often chosen to take advantage of the distinct strengths of different providers - for example, Amazon Web Services typically providers a vast ecosystem of tools and services for modern applications, whereas Google Cloud might be better suited for certain data processing aspects of a workload.
While a multi cloud approach can be used to provide a higher amount of redundancy for critical applications, often the cost and complexity involved - combined with the inherent redundancy of any single major cloud provider - makes running the same workload on multiple cloud providers unfeasible.
Cloud Native
Cloud Native is an approach that should be combined with any cloud adoption strategy. Cloud native refers to designing and building modern applications in a way that takes advantage of the benefits of cloud platforms - such as scalability and flexibility. A cloud native approach also enables and strengthens the benefits of DevOps and Continuous Delivery.
For example, a cloud native application is likely to take advantage of serverless and/or containerisation frameworks that remove the requirement to provision and maintain virtual machines in the hosting environment. Instead of maintaining queuing and caching components as part of the application, a cloud native application typically uses vendor-managed services such as Amazon SQS and Amazon ElastiCache.
The main benefits of cloud native are faster time to market, and less ongoing maintenance overhead: when the delivery team needs to spend less time setting up infrastructure and auxiliary services, they can concentrate on building the parts of the application that provide a competitive edge.
In the longer term, not having to worry about hardware upgrades or security patching of virtual machines ensures that there are less unexpected surprises on the horizon.
Which one to choose?
As always, the answer is “it depends”. However, if you are building a new application, our default recommendation is to choose one of the major cloud providers and adopt a cloud native strategy for building your application on it.
At a later stage as your application evolves, it may become beneficial to consider expanding into a Multi Cloud environment for certain parts of the application estate.