Wouldn't it be nice if multiple senior-level Google engineers would help you out with your new website or SaaS project? Maybe they could implement your authentication system or your backend service that scales to your enormous, anticipated load?
What if you could get such support for a nickel and a dime? Google Cloud (and other big players in the Cloud infrastructure market) are not only offering bare metal servers where you are in the pilot seat to set everything up. They are giving you access to dedicated services and managed environments.
One such platform-as-a-service is Google's Firebase. It is composed of many sub-services that you need to have to successfully bring your service or website online:
- Firebase Auth: Let your users sign up and sign in with state-of-the-art security
- Firebase Hosting: Serve your website via a global CDN network
- Firebase Firestore: A fast NoSQL database with real-time listeners
- Firebase Storage: Store and serve large amounts of data
- Firebase Functions: Your serverless and highly scalable backend
- And many more...
Now, maybe you can implement the plethora of functionality yourself or install a library on your own Node.js / Python server. But let's be honest: You would probably make less of a good job and more importantly does it add to the core of the product you are creating? Your end-user will most likely never care if you implemented the Authentication service yourself. Only if you messed up and stored the password without encryption your users will care and it will cost you dearly (Hashes and salt rounds and many more complex concepts come to mind and you would have to understand them to implement authentication correctly).
The argument many people would have against such an offering as Firebase is the increased costs in comparison to self-developed solutions on bare-metal servers.
Let's make a simple comparison if the increased price of the cloud resources is indeed a showstopper for using such a service.
Firebase pricing vs hiring an additional dev
If you need only one additional software engineer to look after the self-developed solution, you are set back around $100k in the US and €50k in Western Europe – at least. To get a grasp of the amount of pay-as-you-go service you could get for not even a tenth of the monthly price for a developer, the pricing set-up of a heavily used Firebase service is listed below:
Database A database with 500 GB worth of data with 100m reads, 50m writes, 25m deletes, and 1 TB network egress = $367
Storage 1 TB of data stored in Cloud Storage with 9m downloads and 1m uploads with 500GB transferred data = $89
100m Cloud functions invocations at 200 ms with 1 CPU (500 MHz), 500 MB memory, and 100 GB network egress = $172
1m website visits of your 1 MB large website = $150
Total: $778 per month. Much less than the $8333 for the additional developer...
Note: Please always do the pricing for your use case. The pricing for Firebase is available here.
These are staggering numbers.
But even more important is the thought experiment of what is happening when one of your servers is going down? Are you having some engineers on call? Are your engineers monitoring security risks like software exploits and acting with the same urgency as the security team at Google would do?
The answer is: probably not.
When it is good enough for Snapchat...
One well-known example of a company that made use of Firebase is Snapchat. How many on-call engineers did Snapchat employ to look after their product around the clock? The answer is zero according to a Firebase product manager. They already paid for this service in the normal usages fees of the Firebase service and Google supplied the engineers to ensure the smooth working of Firebase.
For my part, I am happy to pay a little bit more for the cloud resources (network, storage, compute) and have the peace of mind that experienced engineers are watching over the system as all of our engineers are sleeping.