It's clean and simple (to me). Billing is in one place, nicely separated by projects. Monitoring & Logging is already built in. No need to span multiple dev SaaS tools. So far managed to avoid Redis caching because Golang + Postgres is fast enough, so far. But if you need Redis you can DIY on Compute Engine or try Cloud Memorystore (configure the memory to a low amount for cost savings).
Google Cloud drawbacks: Additional charges necessary to connect Cloud Run to VPC (via proxy instances). Load balancing on GCP ain't cheap ($18/month, though to a larger enterprise that is a rounding error). But in my setup I didn't need these things.
As shown above, I have heavily optimized for cost and simplicity in my setup.
I find the UI to be too slow for the purpose it serves. I'm fine with a slow-ish app sometimes but not when I have to use it often and during incidents.
I also had a few instances over the course of several years where policies seemed to have transparently broke because a system metric name changed. It's possible the issues were of my doing but I don't think they were.
Lastly Monitoring, Tracing and Error Reporting are too disjointed. I wanted a solution that created a more holistic view of what's going on.
Pretty happy for my use cases. Stackdriver is no more and now fully integrated into Cloud Console. Error Reporting is useful for production errors, even on frontend. Monitoring uptime is quick and easy. Metrics alerting has been okay. Mobile app alerts via GCP app.
Cool. Like you said, having everything under one umbrella is very nice. It's a big reason why I stuck with it for so long. Ultimately, it just didn't fit well enough for my use cases.
Cloud Run supports websockets now fyi. This is the approach, more or less, that I use for my personal projects. With CR and Firestore are literally free for my use cases. I only pay a few cents to host some static assets in GCS.
- Cloud Run (serverless containers)
- Cloud SQL (via proxy)
- Cloud Monitoring & Logging (formerly Stackdriver)
- Compute Engine (if necessary, e.g. websockets)
- Cloud Build for GitOps (deploy on push)
It's clean and simple (to me). Billing is in one place, nicely separated by projects. Monitoring & Logging is already built in. No need to span multiple dev SaaS tools. So far managed to avoid Redis caching because Golang + Postgres is fast enough, so far. But if you need Redis you can DIY on Compute Engine or try Cloud Memorystore (configure the memory to a low amount for cost savings).
Google Cloud drawbacks: Additional charges necessary to connect Cloud Run to VPC (via proxy instances). Load balancing on GCP ain't cheap ($18/month, though to a larger enterprise that is a rounding error). But in my setup I didn't need these things.
As shown above, I have heavily optimized for cost and simplicity in my setup.