Migrating from Heroku to Fly

Hey there!

I’m thinking about moving Quirrel (a SaaS that provides a job queueing solution to serverless) to Fly.
Naturally, I want to make the transition as smooth as possible, ideally with near-zero downtime.
It currently runs on Heroku and Heroku Redis, and I want to move it to Fly and Lambda Store.

This is my current plan of action:

  • set up Fly x Lambda Store
  • put Heroku deployment into maintenance mode
  • migrate the database
  • point DNS entries to Fly
  • reenable Heroku deployment, this time as a reverse proxy to the Fly deployment
  • after all DNS caches point to Fly: Shut down Heroku

As this is the first migration I’m doing, I’d love to hear what you think about this. Does it make sense? Which experiences did you have regarding migrations? Any tips & tricks?

Looking forward to your replies! :smiley:

1 Like

@skn0tt Howdy. Quirrel looks neat!

That migration looks right, though a lot can go wrong migrating hosting providers or DBs, so I’d split the work into 2 less risky phases:

  1. Move app to fly - first get your app running on fly connecting to redis on Heroku. Once it’s ready, change DNS to fly so both are serving traffic, then scale Heroku down once all traffic is going to fly. It helps to change your DNS TTL to ~60s a few days before the migration to speed propagation.
  2. move DB to Lambda Store - put your app into maintenance mode (we don’t have this built in, but you can have your app serve 503s or whatever you need), migrate the DB, then point to the new DB.

You can do those in either order, just practice beforehand :smiley:

Also, you can now run redis or keydb clusters on fly using the persistent storage and private networking features we just launched. Might be cheaper and give more control than Lambda Store, but I’m biased :wink:


I’m using Redis on fly in production, just deleted the Digital Ocean’s Redis instance :smiley:

@mo.rajbi That’s awesome! Are you using multiple regions or replicas?