10 years ago cloud was simple, you had private cloud and public cloud. Now there are a number of different cloud terms, often used interchangeably. Without understanding these terms it is difficult to navigate cloud, and therefore form the right strategy.
“Cloud” is typically talked about in the context of the platform you use to host your application workloads; Azure, AWS, GCP, VMware, etc. This post discusses the terms of cloud in that context. There is a shift happening that expands this concept which I’ll cover off in another blog post.
In this post I discuss cloud to help understand the different types, how and why they are used.
Types of Cloud
No-cloud is often referred to as on-premises. This is what we had before cloud came along. A bunch of tin in server rooms or in datacentres we look after, layered with virtualised software defined datacentres for high density server workloads.
No-cloud increasingly uses Hyper-Converged Infrastructure (HCI). HCI is a combination of purpose built state of the art condensed hardware and hyper virtualisation you purchase off-the-shelf. Instead of buying Vmware software, physical servers, physical storage and physical network equipment separately and then configuring them all to work together (maybe around 7-11+ Us of rack space) you can get it all in one highly condensed pizza box (2U unit).
No-cloud utilises capital expenditure (CapEx) for building, maintaining and expanding the infrastructure.
Private Cloud organises no-cloud infrastructure into a single tenant “cloud” of computing resources (processor, RAM, disk and bandwidth). The idea being that the private cloud services are available for consumption by various parts of the business making them easy and quick to provision in a repeatable manner at scale (within reason). Private cloud is aimed at servicing the needs of a single business.
While the infrastructure is maintained through CapEx, business units can consume compute resources through internal OpEx.
Public Cloud is like private cloud except it is multi-tenanted to provide services privately to multiple businesses. It’s aimed at providing capability equally across all businesses.
Public Cloud provides more than compute resources. It provides developer tools, automation, security, edge computing, data services, IoT services, functions, batch processing and the list goes on.
Public Cloud is subscription based where you pay for what you use for as long as you use it and for as long as you are subscribing to the platform. This is a pure OpEx model.
Hosted Private Cloud
Hosted Private Cloud is like having public cloud but in your datacentre. To coin a phrase, Private Cloud in-a-box. It’s accessed and managed in exactly the same way you access and manage your public cloud tenant.
Microsoft call their offering Azure Stack, which has three flavours; Edge, HCI and Hub. Each with their own use cases.
Hosted Private Cloud enables much of the capability and power of public cloud while eliminating barriers to public cloud such as data sovereignty, security and governance by hosting it in your datacentre.
A major advantage (beyond those in the previous paragraph) is that the underlying technology (hypervisor and software defined datacentre) DNA is identical between public and private cloud meaning that moving data or distributing data is much easier.
3rd Party Private Cloud (Co-Located)
3rd Party Private Cloud is provided by a managed service provider. They build and manage the infrastructure to provide:
- Leased virtual machines – exactly what it says on the tin, one or more VMs for you to use as you wish. Not as common today. Usually purchased monthly or annually. An OpEx model.
- Leased private clouds – typically via a software defined datacentre for you to manage. Shared infrastructure logically partitioned and secured into a tenant for you to use. You choose how to utilise the compute and storage. Commonly used for spinning up VMs, but in recent years also Kubernetes environments. Usually has a lease term of one or more years. An OpEx model.
- Dedicated private cloud – hosted in their datacentre (hosted on private and physically separate infrastructure dedicated to you). Leased over several years. An OpEx model
Cloud Operating Models / Strategies
Hybrid-Cloud is where you connect on-premises and/or private cloud to public cloud and choose to maintain both clouds. Sometimes this is temporary while all resources are moved or transformed. Sometimes it’s a long term strategy.
Hybrid-Cloud has typically been seen as a temporary strategy by public cloud advocates to move data one way from no-cloud or private cloud to public cloud. After all public cloud is where to go for hyper-scaling and capability you can’t get anywhere else.
However, requirements have changed and Public Cloud doesn’t tick all boxes for all people. Hybrid-Cloud is much more a deliberate and long term strategy now, particularly with the advent of Kubernetes capability and the rise of micro-services. This is due to several reasons:
- Portability – The rapid rise of containers and Kubernetes establishing a common platform on each cloud has enabled enterprises to take advantage of the concept of best execution venue and also enable easy migration from one cloud to another. I would argue that portability for other application infrastructure types (Private Hosted Cloud notwithstanding) doesn’t really exist yet, though I expect this to change rapidly over the next 12-24 months.
- Best Execution Venue – Hosted Private Cloud bringing public cloud capability to the datacentre and the portability of containers allows enterprises to choose the best place for their workloads without having to consider the restrictions that would exist without them. Enterprises can now choose the best cloud (venue) to build and operate (execute) their applications.
- Transformation – For the portability reasons already stated (on Hosted Private Cloud too) enterprises are able to separate out modernisation and public cloud migration into two distinct and separate projects. Now enterprises can concentrate on in-place modernisation in isolation to focus on the decisions and effort necessary to produce the best outcome for their workloads prior to making public cloud decisions.
- Data Sovereignty – Geographical restrictions still play a huge role for many enterprises in shaping cloud strategies. This actively impedes a full migration to public cloud.
- Security – Isolated or highly (and physically) restricted networks are required for many classifications of workload which you simply can’t gain in public cloud by its nature – it’s always connected to the internet.
Multi-Cloud is utilising more than one public cloud to host workloads. The clouds may or may not be connected together and may or may not be connected in a Hybrid-Cloud.
Multi-Cloud came about mostly as a strategy by accident but it’s now very firmly a deliberate strategy. One of the most common reasons for a multi-cloud strategy is to avoid vendor lock-in which has become a front of mind concern for many c-level execs and IT managers. I also heard recently that there are now regulatory bodies in the world that require multi-cloud to meet their compliance requirements.
The most common deployment of a multi-cloud strategy is to operate a primary cloud and secondary clouds. In this model the majority of workloads and management is centralised in one cloud. Additional public cloud vendors are then engaged when a requirement arises that either can’t be accommodated by the primary or can be better served in an alternate cloud.
Multi-cloud is here to stay for the foreseeable future.
Inter-Cloud is new and not mainstream yet. This model utilises multiple clouds (including private), but unlike Multi-Cloud, Inter-Cloud seeks to share data across clouds and/or regularly move data between clouds. Understandably this type of strategy has formed as enterprises seek to take advantage of the data they hold.
Data is valuable for two reasons:
- To sell
- To inform decision management which is a practice in data savvy enterprises
Decision management has been around for a while, but with the rapid rise of computerisation, the cloud, and now Artificial Intelligence (AI) with Machine Learning (ML) it is intrinsically linked with data services in cloud. The faster decisions can be made, the faster a business can move and the more agility they gain. Distributing data and moving it to the best location takes advantage of the most appropriate data services in order to form the best or most accurate/successful decisions.
Distributed Cloud is very simple. This is where you use one cloud as your management plane to govern your other cloud deployments. All your cloud management is centralised in one cloud which reaches into the other clouds and no-cloud to monitor, secure, deploy and operate. This is a traditional hub and spoke model but on a multi-cloud and hybrid-cloud scale.
This is becoming common to reduce the complexity in operating a permanent hybrid-cloud or multi-cloud strategy. One set of tools and one set of processes managed in the same way by the same people.
Cloud Native and Cloud-Native
I’ve blogged about this at length here, but to summarise. Cloud Native is to utilise services native to public cloud such as Azure Sentinel, Azure SQL DB, or Azure Functions. Cloud-Native is an approach to application development in public and/or private cloud, typically centered around microservices. They are both very different and are used interchangeably which can get very confusing very quickly.