Ask A Question

Notifications

You’re not receiving notifications from this thread.

How about an episode on zero-downtime deployment?

Daniel Weaver asked in General

I have a Rails app on Heroku running on just 2 web dynos (Standard type).

I'd like to know how best to ensure uninterrupted access to the app for my users while also allowing me to deploy any time I like.

I love the concept of continuous deployment but the reality is that I often wait until the early hours of the morning to deploy in case there are issues. This is never ideal for obvious reasons!

Thanks, Dan.

Reply

Great idea! I think this would be important. There's a lot that goes into orchestrating a good deploy like that especially when database migrations are involved.

I would definitely recommend checking out Heroku's Preboot feature in the meantime. https://devcenter.heroku.com/articles/preboot

Reply

Hey Chris, thanks for the link. I also just found out about the new Pipeline feature they have in beta.

It looks perfect for me. Several apps - 'review', 'staging', production' - are all part of a single application pipeline and the build is promoted from one app to the next. So a new feature would go to review for internal checks, then staging for quality, then finally to production.

The beauty of it the pipeline is that it's the compiled slug that's promoted - that means no more long compile times when deploying to live. Just push the slug and restart the app. Sounds great.

Have a look and see what you think :)

Reply

I saw that recently and haven't had a chance to use it yet, but it seems like a wonderful option. I think that'll be the way to go especially if it's a seamless experience. The one question I have is how database migrations are handled between promotions. The code's the easy part, but the db migrations can cause some trouble.

Reply
Join the discussion
Create an account Log in

Want to stay up-to-date with Ruby on Rails?

Join 85,972+ developers who get early access to new tutorials, screencasts, articles, and more.

    We care about the protection of your data. Read our Privacy Policy.