This will be a series of articles where I will cover different cloud technologies, companies and tendencies.
When someone says cloud, people think different things. Some think about how their phone can be lost and found, others think about how they need the internet to do anything, but this series of articles will focus mainly on technologies and providers behind this new reality.
I guess first thing to cover is the different business models:
- Infrastructure-as-a-Service (IaaS): This means someone else will be running the hardware, but you still need to take care of the full OS stack.
- Platform-as-a-Service (PaaS): So you can run stuff on the cloud, but you only take care of your application. Everything else is a service.
- Software-as-a-Service (SaaS): So you only use the application or API. You don’t run anything. An example would be gmail.
In the SaaS world there is a very wide offering. Even big players like Microsoft has been moving from a license model into a service/monthly model (ie. Office365). Google with Gmail and Workspace has been a king in this segment. But there are also some big players like MailChimp, Figma (recently acquired by Adobe), Dropbox, etc…
With these services you simply stop worrying about your infrastructure entirely. Security, reliability, upgrades, etc… All stops being your responsibility. This is a very attractive option for small companies, especially if you do not need to have an IT department (or even if you would rather have your IT department focused on the business).
There also is a tendency among developers to consume APIs as a service. This also frees them up from maintenance work and allows better team velocity. There are lots of examples like Auth0, mailgun, YahooFinance, etc… They can either provide services like authentication, email sending or simply information.
The other two service models differ in terms of how “compatible” they are with the previous “all-in-house” model and how much of the maintenance work and responsibilities you keep.
For example, if you had a data center and decided to move it “to the cloud”, you might want to simply use IaaS. You no longer own hardware, performance should be as good or even better, and you can grow with just one click. But you are still running the whole stack: OS & applications. This allows a move to the cloud with little or no change to your solution architecture.
This is the best way to transition without much disruption or change, and allows your company to start moving services one by one. So once you are in the cloud, you can start changing your architecture to really use a cloud approach. An example would be to move all your physical Windows servers from your datacenter to Azure Virtual Machines (VMs). Only once you are in the cloud, you start working on a migration from your “hosted” authentication service to a cloud alternative like Azure Active Directory (Azure AD).
But be aware, moving to the cloud means more than just moving your servers to the cloud. Ideally you should embrace new ways of doing things. Either by making servers just “moving pieces of the puzzle” or simply stop thinking about servers altogether. This is what PaaS is all about, you focus on solutions not the full stack. This means you will not only stop having VMs, it also means you won’t need to worry about the OS or underlying application stack.
There are different solutions in this area, but they all share the same idea behind, you run micro services with dependencies on other micro services (or SaaS APIs). Your solution will be a collection of different pieces working together and which will require monitoring, scaling, etc… This is where the new DevOps pay off. Everything you create will have a deployment pipeline, everything running will have monitoring and ideally lots of situations (like scaling) will happen automatically.
Of course this new way of working means learning new tools and being aware of new risks. In the following articles I will be describing the offering of the different players. Even though there is a high concentration (AWS, Azure & GCS), there are lots of players (DigitalOcean, Linode, Vultr, OVHcloud, etc…). I will do my best to try to explain in the best possible way how to deal with the different offers and approaches.