An Unbiased Opinion of ALL Public Cloud Vendors
If I start to repeat myself in day to day I like to come here to write up the result, partly to vent from the frustration of repeating myself but also to redirect and teach others. As an engineer there is a need to "solve a problem" for good and that is what has driven this post.
If I have said it once, I have screamed it a thousand times. There are many key differences between the big three (four?) cloud providers when it comes to the DevOps Lifecycle. Through out my career at Cloudreach I have witnessed many clients with different motivations all wanting to migrate to the cloud, in some cases migrating between clouds as the original choice did not serve it's purpose.
Which Cloud is the Best?
Azure
AWS
AliBaba... effectively AWS
AliBaba is effectively a rip off of AWS but with less services, should you need to operate in China, I would suggest using this provider as they are already set up behind the great firewall. Their toolkit is essentially the same as AWS, to the point I would wonder if they ripped the code from inside AWS some how to market as their own. Even some of the documentation bares a similar feel with interesting translations.
Either way, it is a public Cloud platform and has its own pros and cons like any other platform.
GCP
GCP is probably the newest for the classical offerings of Cloud, if you don't count the years it spent offering GAPS (Google Applications Service). And with that it has been created differently which gives an interesting twist to the classic check list.
I have found that much like working with the Go programming language, using GCP is very much "Do it the Go/Google/GCP way or pick another platform". This can be great as there can often be less to configure for the setup and a small business can achieve maximum efficiency and security pretty simply with the recommended defaults. However, this sadly falls down when an obscure workload that Google has not found before is required, there just isn't the level of customisability as a more mature platform such as AWS.
Short Verdict
As you can see that no Cloud is actually the best, like most tools, it depends on what you are doing with it which will mandate what you choose to use!
Automation
Cloud providers typically offer a native infrastructure as code language that exclusively supports the deployment of resources to their cloud platform. For AWS, that offering is a service called AWS CloudFormation. There are other tools on the market, some of which are sometimes described as “cloud agnostic” due to their ability to support the deployment to multiple cloud providers, which we will discuss in further detail later.
However, if you are looking to provision services on multiple cloud platforms, Terraform is your go-to option. While Terraform supports all cloud vendors like AWS, GCP, Azure, and many others, CloudFormation is confined only to AWS. So, in case your environment involves multiple cloud deployments, Cloudformation is not for you. Suppose you are using AWS resources like EC2, S3, etc., you are best advised to stick to Cloudformation or the platform equivalent.
Wrap Up!
Cloud Computing has revolutionised the world of DevOps. It is not just a buzzword anymore; it is here and it is here to change the way we develop and maintain our applications. There are very few companies who are not using Cloud Technology as part of their set up to speed up their delivery cadence.
In future posts we will explore the different automations of each of these Clouds and see if we can unite them!