Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

We have been running a Rails monolith in Heroku for over 5 years. Our application has pretty strict uptime requirements and in the last 24 months we've had several major outages that were entirely due to Heroku. We're in the range of 5-10 million requests per day.

Heroku's erratic performance over the last year or so combined with what we see as a steady decline in the responsiveness (and sometimes quality) of Heroku's support made it too painful to ignore. Their security breach was obviously also a big motivation, but by then we had already made the decision.

We are moving as much as we can into GCP.

- Web app: Cloud Run

- Background jobs: Compute Engine

- Heroku Postgres: Google Cloud SQL

- Heroku Redis: Redis Cloud (https://redis.com/redis-enterprise-cloud)

- Deploys: Custom scripts

- Provisioning: Terraform

It has taken about 6 months for me to do most of the work, with some help from the team on some of the heavy lifting. It's not full-time work though, so perhaps 3-4 months if you count person-hours.

I have decent linux sysadmin experience, but that's about it. Had to brush up on Terraform. Testing GCP services took a long time. Their docs are often good, but important details are sometimes missing or not easy to find when you're doing initial research. I don't trust the GCP console (web UI) much these days; the `gcloud` command shows your actual resources and not some half-baked abstraction. Sometimes resources aren't even visible in the UI.

The learnings were valuable for me personally. I've been interested in doing more ops-related things. For the company, the extra control we get over our own service levels is the major benefit. It has a cost in terms of developer experience and resources we need to allocate to ops as well.

Costs are about the same. Cloud SQL seems cheaper. Redis Cloud is almost exactly the same price (which feels like a lot tbh).

If you're interested in working with us (remotely) with ops, send me an email at other.water6357@fastmail.com



Why Redis cloud over Google Memorystore?


We use Redis for the source of truth for some of our data. More key-value store than cache.

Pros of Redis Cloud over Google Memorystore for Redis:

- Five nines uptime SLA, vs three in GCP.

- No sharding support in GCP, which limits scaling write throughput.

- GCP persistence is limited to hourly RDB snapshots whereas Redis Cloud supports append only file (AOF).

- During migration we needed to access our Redis instances from Heroku. We're not on Heroku's Private Spaces, so we can't set up a VPN. We'd need to set up a proxy like Twemproxy or Envoy to expose the Redis instance but with Redis Cloud we can just make sure the firewall is open.

- Redis Cloud's support is pretty awesome. Had an engineer available during our migration. GCPs support is okay at best.

Cons:

- Memorystore is quite a bit cheaper.

- No GCP IAM integration.


Great information, thanks.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: