The Best Cloud Services in 2022
If you guys have read any of my past articles, you’ll know I’m a big fan of Firebase and Google Cloud in general. However, today I wanted to take a look at several popular cloud computing services and compare them. In order to get a fair and accurate comparison, I’ll rank each of the services out of 10 points. The points will be given for the following categories:
Sign-up experience: 1 point
Services offered: 2 points
Ease of use: 2 points
Cost-effectiveness: 3 points
Documentation and community support: 2 point
I wanted to look at six different cloud services to judge using the point system above.
Firebase
Google Cloud
Heroku
AWS
Digital Ocean
Microsoft Azure
Before I get started, I wanted to note that while Google Cloud and Firebase are extremely closely intertwined with one another and both owned and operated by Google, I wanted to examine them separately since they are technically separate services with separate billing.
Firebase: 8/10
Firebase is a BaaS (Back-end as a Service) platform that you can use to authenticate users, store images and documents, and use managed databases. Firebase started as a real-time database. It was essentially just a single document that could store and retrieve data on the front-end in real-time. Google purchased this product in 2014 and added to it immensely.
Today you can manage users using Authentication that also integrates into O-Auth for a ton of different platforms
It has 2 different kinds of databases you can use from the original real-time database to a document store (similar to MongoDB) that is fully managed and extremely scalable. If you have custom code you want to run you can run them using Firebase Functions. You can manage all your app’s analytics tracking and A/B testing. You can even host your own ML models in Firebase. The possibilities for your applications are endless.
Now that we know a bit about Firebase, let’s get down to brass tacks.
Sign Up Experience: 0.5/1
I’m giving sign-up a half-point. The reason I’m doing that is that there is no way to sign up without a Google account. I feel as though it takes away from the platform when they try to force you to have an account with them. The other really annoying thing about that is that all the important emails and billing info will be sent to the email you signed up with. So if you don’t have a Gmail account now you have a whole other account you have to manage and track. It can be a pain, so they get some points deducted.
Services Offered: 0.5/2
While Firebase has a ton of functionality, it can’t quite compete with larger platforms like Google Cloud, AWS, and Azure on the number of services offered. I only took off one point here because I feel as though Firebase has enough services to get your app out the door, but you’re limited in your expansion. Firebase will even manage a custom TensorFlow model for you, which is pretty awesome. For example, if you wanted to do anything with big data you’d have to expand to another platform or if you had code you can’t run in Firebase Functions you would have to look elsewhere. One big bummer for Firebase is that if you need functions you’re basically stuck doing NodeJS. If that’s just not your language then you can’t really run any custom code on Firebase which really sucks.
Ease of Use: 2/2
Once you’re on the platform it couldn’t be more user-friendly. It’s extremely easy to go from nothing to a full app in less than a month (depending on your app’s complexity of course). That is in no small part to how incredibly easy it is to get your code up and running on Firebase. There is a super useful and easy-to-use CLI you can install. To deploy anything onto Firebase is one simple command away firebase deploy and your app is up and running within seconds.
Cost-Effectiveness: 3/3
Firebase is absolutely one of the most cost-effective platforms out there. You can have a look at their pricing here: https://firebase.google.com/pricing
Basically, you can get started totally free and without having to provide any billing information at all. The only other plan is a pay-as-you-go model that includes a very generous free tier. You can even play with the pricing calculator at the bottom of the pricing page.
Documentation and Community Support: 2/2
A large part of the ease of use comes from Firebase’s stellar documentation. It answers pretty much any questions you might possibly have about the platform and any of its services. I find their documentation easy to navigate, extremely insightful, and not as dense as other platforms’ documentation.
Google Cloud 8.5/10
Google was quick to throw its hat into the cloud computing world after Amazon had announced AWS. I think GCP quickly rose to the top of the list as Google had the benefit of seeing what went right and wrong about other cloud computing offerings. Today, GCP has a massive amount of functionality offered to you, as well as some truly unique ones that you can’t find anywhere else.
Sign Up Experience: 0.5/1
Similarly to Firebase, you need to have a Google account to sign up so I’m giving it the same score for all the reasons I mentioned in the FIrebase section.
Services Offered: 2/2
GCP doesn’t have the same number of services like AWS, but it has the correct amount of services. Unlike Firebase, GCP is not limited to only the things that are contained on the Firebase platform. You can launch any kind of database you want with the managed database services, you can launch custom compute instances, Kubernetes and container management, and Google Cloud Functions (which are similar but kind of separate from Firebase Functions). On top of this, there are some services that only Google has. Google Cloud Run is one of my favorites, basically, if you can dockerize it you can run it in Cloud Run at any scale. You can also use Firestore from Google Cloud as a Datastore which does not offer real-time functionality but does come as a HIPAA compliant service (which Firebase Firestore is not). You have things like Cloud Spanner which gives you a SQL database with strong consistency and availability. You also get to take advantage of Google Cloud offerings like user authentication. Yes, it’s similar to Firebase (it’s almost exactly the same) except that the GCP version is also fully HIPPA compliant with a better SLA. Overall, GCP has the right services to get any app or project off the ground and plenty of places for you to expand to if you need additional services.
Ease of Use: 1.5/2
GCP is not quite as user-friendly as Firebase is. That is, in part, due to the fact that there is more to GCP. For example, you can manage your own VPCs and if you are at a company that requires certain things behind a VPN there is a lot of additional configuration that goes into that. The Google Cloud CLI is also not quite as nice to use as the Firebase CLI. It’s a little bit more involved (not too much, but still) and there is a lot more reading you have to do before you can use it effectively.
Documentation and Community Support: 2/2
I find the GCP docs to be just as good as the Firebase docs. They’re not too dense, they get to the point, and tell you what you need to know. On top of documentation, they also have tutorials for common tasks you may want to do which can help you get up and running even more quickly.
Cost-Effectiveness: 2.5/3
GCP’s array of services generally has a decent free tier along with them, but some of their services are just outright expensive. Take Cloud Spanner, at the absolute minimum usage you’re going to be paying around $70 a month. If you wanted to run a conventional app from this database you’d be paying through the nose. That being said, you are always free to use another of their many database solutions that fit your app and your budget, so you’re not constrained to their most expensive options. Additionally, they have dirt cheap services, like Cloud Run, where you could run an app for hundreds or thousands of users almost for free. A standard container (in production) running 50k requests per month at about 5 seconds per request costs you $0.0 per month. Seriously, check out the GCP calculator to see for yourself.
Heroku 7.5/10
I haven’t used Heroku much myself, but I can say I might start using it for hobby projects more after this. Heroku is more similar to Firebase as a BaaS (Back-end as a Service) offering. Heroku focuses on helping you get your ideas out of the gate as quickly as possible. They offer all the basic necessities, compute, data storage, etc. to get you going. It honestly looks like one of the more developer-focused platforms out there, which I love.
Sign Up Experience: 1/1
Signing up is easy and you can use any email address you like. All you have to do is enter your info, confirm your email, and you’re off to the races!
Services Offered: 0.5/2
Heroku is somewhat limited in the number of things you can do with it. It has all the basics but no more than that. There is no user auth system, you'd have to look elsewhere or build your own. You’re somewhat limited in data storage. The standard Heroku app you can use Postgres for free, but you are also able to get addons to use Redis, MySQL, MariaDB, etc. The services also require a bit of config. I can say, I’m into the concept of dynos. Dynos are basically little containers that run your code and website that Heroku manages. The only downside I can see is that there is not a lot of functionality from the platform itself and you’re basically going outside the platform to get that stuff or having to build it yourself. Heroku is also limited in the number of languages it officially supports, which is also kind of a downer for such a great platform.
Ease of Use: 1/2
Much like the other cloud offerings, Heroku has a CLI tool you can use to manage your deployments and whatnot. The CLI is super easy to use and get your apps on Heroku cloud. The reason I’m deducting a point from this is that I wish you could manage more stuff from the dashboard itself. When you create an app on Heroku you need to create and deploy a proc file that configures your web server before you can really do anything else. I really wish I could configure that from the dashboard rather than having to do it locally and deploy it. That would help get me set up a whole lot more quickly.
Documentation and Community Support: 2/2
Heroku has some great documentation that’s organized very well. Being a newcomer to the Heroku environment I found the docs very insightful to help get me up and running. It’s also pretty popular so if you need help doing something someone has done it before you. Overall, I think the documentation really helps new people get going quickly on Heroku.
Cost-Effectiveness: 3/3
If you’re a hobbyist and you’re looking for a platform to experiment on, stop looking. They have a really generous free account and they don’t ask for billing info up front. If you want to add billing later and scale up your app they have some super cost-effective plans available. It’s honestly one of the cheapest cloud computing services available.
AWS 5/10
I’m often overly critical of AWS, and I do that for several reasons. The first of which is that AWS has been in the game the longest. They should know the market the best, but I generally find that not to be the case. The second reason is that AWS is the LARGEST provider with the most money. Amazon (in general) has an almost unlimited amount of money and what they produce, in terms of AWS, simply isn’t good enough. I generally find that there is a ton of hype and platform lock-in which drives the adoption of AWS. I am going to judge AWS along with the exact same rules I judge all the other providers on to get a fair and balanced opinion.
Sign Up Experience: 0.5/1
I’m going to give AWS half a point for being able to use pretty much any email provider. You don’t even have to have an Amazon account to sign up. However, the sign-up process is 5 steps long and is a little annoying. They ask for basic info like your name and address but then they make you do a couple of tedious verification steps. They require your cell phone number to verify your identity and they also require payment info before being able to sign up. I find their sign-up process tedious and unnecessary. I say it’s unnecessary because companies like Heroku can offer free sign-up in 2 easy steps but Amazon can’t?
Services Offered: 2/2
Amazon probably has the largest array of services offered by any cloud provider. They have a mountain of services, managed and unmanaged, that allow you to do pretty much anything you want to do. They offer a massive amount of machine learning tools for managed machine learning as well as being able to manage your own models.
Ease of Use: 0/2
I find AWS to have the absolute worst user experience possible. While AWS has a large number of services they are confusing to use at best. Additionally, many of the services are essentially just managed EC2 (compute) instances. ElasticBeanstalk is a good example. Unlike Heroku’s dynos or Google Cloud, Run ElasticBeanstalk just manages a bunch of compute instances. Why does that matter? It matters greatly to your bill, which we’ll talk about later. Also, think about databases like DynamoDB vs Firestore. Dynamo has a fraction of the number of features and it’s terribly complex to try and use in comparison. I generally find most of their services to be unnecessarily convoluted.
Documentation and Community Support: 1/2
AWS has a ton of documentation since they have a ton of services. However, their documentation is generally dense and unhelpful. Let’s look at DynamoDB, for example. If I’m a new AWS customer and I want to know how to access DynamoDB from my NodeJS application let’s see where I have to go. If I just type into Google search “AWS DynamoDB” I get to the official product page, which is fine it’s generally what I expect. Let’s look at that page.
Can you figure out how to get to the documentation from looking at this? I doubt it. I clicked just about everything from this page and never got to the docs. Let's scroll down to about the bottom of the page.
Then when we get to the documentation it doesn’t just tell you how it works, no no no, you have to go through 6 more pages until it tells you to read the SDK docs for your language. Then you get to the SDK docs which are not Dynamo DB specific. You have to go through the SDK docs then try to find what you want to know.
One redeeming thing about AWS is that there is a large community behind it. If you were to go to YouTube and look up a tutorial for DynamoDB it would be a better option than trying to read through the docs. If you think I’m being unfair, Google “Firestore” and you’ll get to the docs pretty quick. Right from the product page.
One of the first things you see is “View docs”. When you click that and go to the specific docs for that product you go through one page before getting useful documentation. I think it’s important to point out just how awful AWS’s user experience is because of how long they’ve been around and how much money they make to give us such a garbage experience is unforgivable to me.
Cost-Effectiveness: 1.5/3
AWS is one of the largest AND most expensive products out there. Let’s do a comparison using RDS (Relational Database Service). On Heroku, you can get started with Postgres for FREE. Seriously, free. On GCP for a 2 CPU, 7.5 GB of RAM database running 24/7 with 30 GB of storage you’re looking at a little more than $100 per month. On AWS for a 2 CPU, 8GB of RAM database running 24/7 with 30 GB of storage you’re looking at about $135 (both AWS and GCP being single AZ). To be fair, for similar stats on Heroku you’d be paying about $200 but you can literally start for free. If you’re a hobby developer who needs a relational database I don’t even know why you’d consider AWS at all. We also did a comparison of ElasticBeanstalk and Cloud Run. You could have a full app running in Cloud Run basically for free, but with ElasticBeanstalk you’re subject to EC2 pricing. The AWS calculator doesn’t even give you an option to include it. Check out the pricing for yourself on their very complex pricing calculator: https://calculator.aws/
Digital Ocean — 8.5/10
I have never used Digital Ocean before personally, but it’s one I’ve been really interested in for a while.
Sign Up Experience: 1/1
I really want to take points off for requiring payment up front, but their experience is really seamless. They offer you O-Auth as well as regular email sign up and they allow you to set up Paypal, Google/Apple Pay, or enter a card manually. One of my grievances is that they do make a temporary authorization on your card to verify it.
Services Offered: 1/2
As far as services offered I have to take off a point. Their main service is a droplet, which is a unit of compute similar to EC2, Compute Engine, etc. They also offer managed databases, serverless functions, and Kubernetes. There just isn’t a whole lot of managed services like you would see on other platforms, but that’s not necessarily a bad thing as long as you have the right services.
Ease of Use: 2/2
Digital Ocean is VERY easy to use. The moment you create your account and sign in they set up a “wizard” for you to configure an app in a few clicks. It’s dumb easy. Their UI is extremely intuitive and if you give a small amount of attention to the prompts you’ll get something up and running in seconds. I wish every other cloud provider had a UI this intuitive and pleasurable to use. I’d honestly give them extra points for just how great it is to use their service.
Documentation and Community Support: 2/2
Their services are already stupid easy to use and their documentation is no exception. It’s not quite as good as their dashboard UI but it’s pretty workable, unlike AWS. You don’t need to look too far to figure out what you want. They also support their community really well with their own forums with tutorials Q/A sections etc. It’s really nice to see a cloud provider foster a community as well as they do.
Cost-Effectiveness: 2.5/3
One of my pet peeves is not being able to start for free. I love being able to test out some services risk-free to see if it’s for me. However, in the long run, you’ll generally pay less for compute on Digital Ocean than you would at most of the major cloud providers. A basic droplet, which is essentially just a small VM costs you about $5 per month.
Compared to its competitors it’s a relatively cost-effective alternative. If you know what you want to build and you’re ready to get it going Digital Ocean may just be the fit for you.
Microsoft Azure — 6/10
Azure is a service I have used in the past and I’m relatively familiar with it. Personally, it’s kind of in the middle of GCP and AWS for me. It’s not awesome, but it’s not totally terrible either.
Sign Up Experience: 0.5/1
Like Google, you have to have a Microsoft account to sign in. It’s annoying and it is what it is. Other than that, it’s not all that bad of a sign-up experience you’ll generally get on the platform quickly if you already have a Microsoft account.
Services Offered: 2/2
As a major cloud provider, Azure offers all the things you’d expect. You can build a wide range of products on top of Azure and they’ve got every tool to help you succeed. One really awesome service I know they do have is called Bot Framework. I absolutely love Bot Framework. To me, I like it more than Dialog Flow and Lex. Bot services let you manage your Bot Framework bot on Azure’s cloud, essentially connecting it to whatever platform you want your bot running on. It’s somewhat unique to Azure since Bot Framework is not at all run on AI (but you can integrate AI). Overall, if you’re looking to build something Azure will have all the tools required to do it.
Ease of Use: 1/2
It’s not the most easy-to-use platform but it’s not the worst. To be honest I don’t really have a strong opinion either way. I can get around Azure just fine. I can find and deploy the services I need. It’s not as exciting and fresh as Digital Ocean but it’s not as clunky and convoluted as AWS. Just kind of in the middle.
Documentation and Community Support: 1/2
Azure is relatively popular and has a living community. I will say, I have found their documentation frustrating at times because I’ll walk away with more questions than when I started. Or I just have a really difficult time finding what I need.
Cost-Effectiveness: 1.5/3
Azure can be pretty cost-effective for some things and others not. If you just wanted to use compute services it’s competitive with GCP and AWS. However, there are no real massive cost-saving services like Cloud Run on GCP. I honestly don’t think any platform has anything like it for the same cost which is effectively free.
The Winner
It’s hard to pick a winner. I honestly didn’t expect to like Digital Ocean as much as I did. I really felt like Digital Ocean was one of the easiest platforms to work with in terms of setup. It also looks like one of the cheapest. That being said, I still find Firebase one of the most useful platforms out there. It literally has everything tied up in a neat bundle for you. If you need additional services its close ties to GCP help you maintain the same project on the GCP end of the house if you want to run other functions. Honestly, though, I’ve run entire apps only on Firebase and it works great. So in this case based on the numbers, I would have to say it’s a tie between Google Cloud and Digital Ocean with a close second by Firebase followed by Heroku. I will probably give both Heroku and Digital Ocean a go with some personal projects later on.