* Eventually you need to promote a function to legitimate service for cost savings (e.g. GCF ️ AppEngine Node service)
• You need a buffer (e.g. GCF outscales services it calls) such as Pub/Sub
• Multi-repo/project layout is best for deployment speed, but needs extra dev/CI tooling to simplify boilerplate
• Minimizing costs can be creative/tricky compared to legacy services
• GCF is great for automatic stats and logging (Stackdriver) and "it just works" configs, compared to Lambda
• Don't go cloud functions everything, just the parts that are a good fit
We've gotten a good uptime using cloud functions, but we're always pushing for more nines. Since the functions tie together a bunch of backend Pub/Sub queues and services/stores, a brief cold start or queue backup has no notable impact on the overall system latency or throughput.
BTW, the coolest feature of AWS Lambda I've found is tying it to SES/SNS for inbound and outbound email routing. I've been running my personal email for years through a Lambda function for a few cents a year.
Overall the space is rapidly evolving and we'll see lots more features on Azure Functions, AWS Lambda, and Google Cloud Functions. See our learnings [1].
[1] https://www.slideshare.net/JosephLust/going-microserverless-...