My tiny team has been using Cloud Functions, Pub/Sub, and Apache Beam(Dataflow) to process tens of millions of daily events. I'm middle of the road on them.
Pro:
- They are stupid fast to develop, deploy, and update.
- Firebase tooling emulators makes local dev much easier.
- Simple enough a developer can build, deploy and monitor;
Cost less then hiring another person to handle devops.
- Now has decent IAM restrictions
- Baked in access to almost all other GCP tools.
Con:
- Like any google product could be deprecated at any time.
- They have poor versioning compared to App Engine or Cloud Run. No rollback, A/B, or multi-version deployments
- Cold starts are slow.
- Like any google product could be deprecated at any time.
Regarding cold start time; I am luke warm on golang, but I think lambdas / functions are one area where they shine. Start time is pretty quick for a golang function, and memory usage is low. Also, from what I understand it's one of the few statically typed languages supported on gcf.
I think my team will be shifting to use java more, just out of sheer familiarity, but golang works nicely for functions.
Pro: - They are stupid fast to develop, deploy, and update. - Firebase tooling emulators makes local dev much easier. - Simple enough a developer can build, deploy and monitor; Cost less then hiring another person to handle devops. - Now has decent IAM restrictions - Baked in access to almost all other GCP tools.
Con: - Like any google product could be deprecated at any time. - They have poor versioning compared to App Engine or Cloud Run. No rollback, A/B, or multi-version deployments - Cold starts are slow. - Like any google product could be deprecated at any time.