So in theory we don’t release on a Friday. To be fair, I should have done the release yesterday, but basically forgot. Instead I punted the new version out this morning while getting ready to go to work… and then rolled back to a previous version when it all seemed to go a bit pear shaped.
Now, I know the rationale for not releasing on a Friday, however, I’m reasonably happy doing them as long as it’s early. Our infrastructure, while far from perfect, gives me a high level of confidence that I can roll back successfully. The combination of Docker and Git means I can get back to the exact configuration I was running before the release. Worst case scenario is you need to roll back and try again Monday.
Actually, technically the worst case scenario is that it breaks and never ever works again. But even then I can just hook up our staging environment to our production database and be up and running again in a fairly short time. Hell, I can rebuild the entire thing from backups in under 20 minutes if really pushed.
Basically the questions you need to ask yourself are:
- Do you have time to fully test the release to be sure it’s good?
- Do you have time to rollback the release if the tests show problems?
- Do you mind having to log in tomorrow to perform a rollback when something you’ve overlooked is found?
If you can answer Yes to all three you’re good to go. It also helps to have a Beta tag you can hide behind 😉