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?
-
I like @sllopis answer and also https://medium.com/@johncmckim/the-debate-over-what-is-serverless-d8e179449d1b – Kolban Dec 09 '19 at 15:31
-
There is no way google documentation says that dataflow is serverless. Dataflow is fully managed from the box. And if you found anywhere saying something different, then its straight wrong. – suren Dec 09 '19 at 16:28
-
3I don't agree with any of the answers. Here's my take: **Managed SERVICES**: Those provided to you in the cloud. The provider sets them up for you and they do provisioning, patching, security, etc. in their own data centers for you. You get to configure server count, type, capacity, etc. **Serverless APPLICATIONS**: Cloud's SaaS. Full solutions provided online for you, i.e. AWS S3. You know there's servers behind them but never see them. You can use serverless applications OVER managed services. You can also set-up your own non-serverless architecture OVER managed services in the cloud. – DanyAlejandro Jul 29 '20 at 16:57
-
3(continued) *Managed services* is sales wording for cloud services (they "manage" them for you, meaning HW, provisioning, security, patching, compliance, availability, durability, etc. is their responsibility, depending on the service type of course). You can set-up your fleet of servers over a managed service, you see and configure them, and SSH into them to upload your app. *Serverless applications* are things you can use or set-up in the cloud but *can't see or configure the servers* so it's a bit like magic. – DanyAlejandro Jul 29 '20 at 17:09
-
2(continued) Depending on the service it can be somewhere in a spectrum between "you control everything, even SSH into it" vs. "you can only configure 3 options using mouse clicks". Some things are more or less "serverless" depending on the degree of control you have over the underlying instances powering it. – DanyAlejandro Jul 29 '20 at 17:18
4 Answers
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!

- 66,369
- 2
- 47
- 76
-
Cost scaling to zero is a characteristic of serverless. AWS Fargate is being mispresented here because you choose your compute and memory and AWS will provision a VM behind the scenes but when there are no running services it spins back down. – Andrew WC Brown Apr 23 '21 at 11:37
Difference between serverless and fully-managed concepts in Google Cloud Platform
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.

- 2,292
- 1
- 8
- 13
In my experience Google tend to use "fully managed" term with reference to Database and caching layer technologies where you don't have to write any code.
On the other hand "serverless" tend to get used where you have to deploy some sort of code. In most cloud platforms if you write, you own it and you manage it. So Google won't claim fully managed platform for DataFlow.
That's my explanation anyway, happy to be corrected. :)
Be interesting to see what happens if GCP comes up with Serverless database.

- 1,869
- 5
- 15
Let's take the example of AWS. Aws offers many kinds of computing services, but the most popular are EC2 and Lambda. EC2 is a fully managed service, basically, AWS offers you an empty VM and you install everything you want there. But that means you also have to manage the upgrading of the servers, maintaining it and many other server-related things. Meanwhile in Lambda you just upload your code and AWS takes care of the rest.