Running your applications not on servers that are in your possession (either onsite or in a datacenter), but on somebody else’s server. That is where it all began. When people are talking about ‘the cloud’, they often mean the original big three:
And probably in that order. Amazon was and is the first major, worldwide player with their AWS. Microsoft’s Azure seems to be gaining market share rapidly, especially in Europe and the Benelux. Google and GCP is always mentioned as being part of the big three but is falling behind for a while now.
Now there are a couple of other growing ones as well:
- Originally from China, there is Alibaba Cloud which is the biggest player in that part of the world
- A real ‘cloud partner’, says IBM about their IBM Cloud. As the relatively new owner of Red Hat, they are at least trying
- Oracle with the Oracle Cloud Infrastructure (OCI). They really go out of their way to attack their competitors’ prices (which does certainly not go for their licenses though)
According to most sources Alibaba Cloud is even bigger than GCP, but I didn’t crunch the numbers on that one myself. Speaking of numbers, you could even say that the cutoff lies at IBM Cloud and that all others that come behind are considered ‘the rest’. So that’s OCI as well. A couple of others that come to mind:
There are many, many others that roam the cloud space, but they did not end up on the above lists because they are just too niche (Salesforce, Adobe, Verizon, Cisco) or can be better categorized as ‘classic cloud’ (see below).
In any case: Everyone wants their piece of the cloud pie. There are a lot of differences out there, but they all have at least one thing in common: these are providers that leverage the cloud native capabilities we hear so much about (for example elasticity, scalability and global high availability). I’ll talk about these more in depth later on.
So, what about all the others, when there was no cloud? The ones that once started out with one shared webhosting server and grew to be a company with virtual and dedicated servers in high-end datacenters? These companies also have all this cutting-edge technology and instances that are up in a matter of seconds. Well in my opinion they still have their place and hopefully they are not a dying breed, not in the last place because monopolies are never a good thing.
I personally like to call this ‘the classic cloud’ and the companies that operate in it ‘VPS providers’, although they often do way more than providing VPS’s. A VPS stands for a Virtual Private Server, or a server that does not have dedicated hardware and is virtualized. It shares its hardware with other virtual servers. From this point I’ll keep referring to this model as VPS providers, to clearly differentiate between them and ‘the current cloud’.
There really are some great companies out there that not all have the elastic capabilities the cloud is famous for, but are trying to expand and have some awesome technology, good customer support, in-depth technical articles, great prices, etc. I’m mainly thinking of companies like:
But also closer to (my) home:
These two lists could also be dozens of entries longer, but it are my personal top picks. And as long as there is an API to talk to, we can automate stuff, which is probably most important for a DevOps engineer.
So back in the day when you needed a website and/or email addresses, you ended up buying a webhosting package at a provider for a monthly fee, got access to a control panel and you could start shaping your personal space within the world wide web. You were sharing this space (and CPU, memory and other resources) on a physical server with dozens of other people and companies. You did not get access to the underlying operating system.
Later, business started to feel they needed more control and through a couple of intermediate steps the VPS was born. Getting an entire virtual server somewhere in the cloud with real access to the entire operating system and a reserved piece of the resources (CPU, memory, etc.), kickstarted adaptation of this kind of infrastructure. Now management tools that were being used on-premises could also be used on these virtual servers in the cloud. Not only websites could be hosted elsewhere, but also other business applications.
I’m obviously missing a couple of steps here, but I wanted to give you a very brief impression of the history of the creation of the cloud as we know it today and a big shoutout to these ‘classic cloud providers’ because I like them a lot and still use them daily.
So now about ‘the cloud’, as we know it today. Many people know the meme about the cloud being just someone else’s computer, but do not actually know what we’re dealing with. I’ll try to explain the most important characteristics.
On a side note, the meme does tackle the first difference you’ll probably deal with: you don’t have to invest in your own hardware. Your expenses shift from capital expenditure (CAPEX) to operational expenditures (OPEX). This can be a huge benefit to, for instance, startups.
Historically speaking, one of the main differences is the clustered approach the cloud is taking in contrast to a more traditional approach of the VPS providers. Now in all honestly, VPS providers are catching up, but still a lot of them don’t have the infrastructure anywhere near something like AWS, Azure and GCP. The global reach and the ability to get a website or application near almost any user anywhere in the world for the lowest latency possible, is a huge benefit.
The US National Institute of Standards and Technology (NIST) formulated the ‘Essential Characteristics’ of the cloud, summing it up nicely:
- On-demand self-service: spinning stuff up and down on your own
- Broad network access: access from any device anywhere in the world
- Resource pooling: combining and don’t wasting resources
- Rapid elasticity: scaling up and down and in and out rapidly and automatically
- Measured service: pay-per-use and charge-per-use basis
And that is really it. These five characteristics define the cloud and house all benefits the cloud has to offer. There are dozens of documented benefits of the cloud, and they can all be tracked back to these five. For completeness’s sake I’ve Googled a few for you:
|· Cost Savings
· Increased speed
· Mobility advantages
· Increased Collaboration
|· Quality Control
· Disaster Recovery
· Loss Prevention
· Easier Compliance
· Automatic Software Updates
· Competitive Edge
· Strategic value
· Sustainability benefits
Types of cloud
Up till now we’ve been talking about one type of cloud and that is the public cloud. But there are more types.
- Public cloud. As said the one we’ve been talking about already. The entire infrastructure is located at a cloud provider, and it is shared by multiple customers with multiple sorts of use cases.
- Being used by the general public
- No maintenance required
- Pay-as-you-go pricing model
- Private cloud. An infrastructure is on or off premises and is provisioned for exclusive use by a single organization. Often of course not the smallest organizations and often consisting of multiple internal customers, departments, etc.
- Single tenant architecture
- High security
- Scalability and self-service
- Hybrid cloud. Both private and public types of cloud computing depending on your purpose. Often services at multiple (cloud) providers. You can move between private and public clouds and choose where to place data and applications based on your needs.
- Partially shared and dedicated
- Easy transition
- Safe and secure
- Community cloud. An often-overlooked type, provisioned for exclusive use by a specific community of consumers from organizations that have shared concerns, shared goals and requirements of a certain community.
- Multi-tenant architecture
- Collective control and maintenance
- Shared cost
Shared responsibility model
Years ago, when introduced into the cloud, this one was a real eye-opener for me. The shared responsibility model shows us where our responsibility ends, and the cloud providers’ responsibility starts; because when we own on-premises hardware and need to maintain and support it, you know your company is responsible for it all. You can image that when you are not owning the hardware you are running on, and have limited or no access to it, this changes.
This is best explained in a diagram. Mind you that when you’re Googling for it, there are a lot of faulty ones out there, not giving you the complete picture of the shared responsibility model. Microsoft has a good one with Azure, see below.
At the far right our classic model where we own, operate and maintain hardware on our own premises. From layer 1 to layer 7 (if you’re familiar with the OSI Model) and back: all responsibility is ours. Going to the left, more and more responsibilities get shifted to the cloud provider. But that forces me to explain the following: what are these acronyms on at the top?
- IaaS is Infrastructure as a Service. This is what most VPS providers provide. You get a virtual machine, and your provider is responsible for all hardware: access to and securing the datacenter, all network components and the physical hosts. You’re responsible for the operating system and up.
- PaaS is Platform as a Service. More responsibility for the cloud provider, but as you can also see from the diagram, the responsibility varies depending on the service type. There are probably more PaaS’s than you realize, but a well know and hot example is a managed Kubernetes service (e.g., EKS, AKS, GKE) at one of the cloud providers.
- SaaS is Software as a Service. Ideally all but the top layers (accounts, devices and data) are managed by the cloud provider. You only must configure access, populate the service with your data and you’re good to go. A huge number of examples out there, Office 365 and Google Workspace being two of them.
Even without a crystal ball I can assure you that the future of IT will unmistakably take place in the cloud. Where a service like Dropbox was unique many years ago, putting your data in the cloud and syncing it between devices, you can now almost not find a usable service that doesn’t store at least some of your data in the cloud (and this comes with its own challenges like security and privacy, but this is for a later post).
For companies these last couple of years a new rule of thumb also emerged:
When in need of a new service, look at a SaaS first!
Old-school-hardcore techies maybe won’t like it (they like to do it themselves) and at first glance it may seem expensive (often paying a monthly fee per user, per month) but in the long run it is almost surely cheaper to get a SaaS – think of costs like R&D, management and support, etc. When a SaaS won’t suffice for your use case, look at a PaaS. When a PaaS also doesn’t fit, just go up the chain and look at IaaS. Only as a last resort should you develop and host something yourself, on your own hardware.
All things cloud have an upward trend. I want to conclude with a very informative infographic about the cloud with a couple of numbers that might surprise you. And if it doesn’t, be sure to check out this link for more facts.
Writing the post I’ll serve you next time, I realized I first wanted to dive in some more general concepts regarding hosting, shared responsibility, the cloud, etcetera. The result is the post you’ve just read. It became a purely theoretical post, for which I apologize if this really is not your cup of tea. But I absolutely promise you I’ll make it up to you next time 😉
I’m a passionate, communicative go-getter and highly motivated to build, maintain and improve a stable and effective IT infrastructure at different sized companies. My hearth is with open source, Linux, DevOps, Kubernetes and everything that is cloud native.