According to Google Cloud documentation, Cloud Dataflow is serverless while Cloud Firestore is fully-managed. If serverless means that the infrastructure and resources are managed by the cloud provider. Then what's the difference between these two paradigms?
There isn't script definition of these 2 words. Serverless and Fully managed are very close and share the main concept: don't worry about the infrastructure, focus on your business value.
For me, and in most of Google Product, serverless means "pay as you use". No traffic, you pay nothing, lot of traffic, the scaling is automatic and you pay according with the traffic.
Cloud Run, Cloud Function, AppEngine standard, firestore, datastore, dataproc, dataflow, ai-platform are examples of serverless.
Other services are managed but not serverless, like Cloud SQL, BigTable or Spanner. You always have a minimal number of VM/node up and you pay for these, traffic or not. However, you have nothing to worry about: patching, updates, networking, backups, HA, redundancy(...) are managed for you. AppEngine flex belong to this category.
Finally you have hybrid product, like Cloud Storage or BigQuery: you pay as you use the processing (BigQuery) or the traffic (Cloud Storage), but the storage is always billed if you have no traffic.
This is for GCP. If you look for other cloud provider, the definition is not the same. For example, for AWS, Lambda and Fargate are both Serverless product. But with lamba, no traffic = 0 bill, Fargate keep at least 1 VM up and you are charged for this (don't scale to 0).
Be careful, serverless become a trendy and marketing words. Be aware of what it means for you and your use cases!
As per the documentation, Google Cloud’s serverless platform lets you write code your way without worrying about the underlying infrastructure, which is fully-managed by Google.
I would say that there is a small difference in the meaning of the two concepts; however, their meanings do overlap in many ways.
When I think of serverless, I imagine a picture of the code that makes a service or application run. In English, this would be your favorite programming language, runtimes, frameworks, and libraries. You can even choose to deploy as functions, apps, as source code, or containers since the service is fully-managed.
On the other hand, I believe that fully-managed refers to the architecture that a service uses, namely, what is really happening behind the scenes. Google handles the configuring, provisioning, load balancing, sharding, scaling, and infrastructure management, so you can focus on building great serverless applications.
Notice the paradox in my explanation. I hope this helps a bit.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With