Skip to content

Latest commit

 

History

History

releasing

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

Releasing

Process

  • Automate the deploy process. We do it through CircleCI.
  • Always be prepared to revert a release if needed.
  • Revert button, blue/green deploy or canary deploy strategies are encouraged.
  • Use feature flags when possible. Turn it on for staging, test it, then turn it on for production. For Django-based projects, we have been using django-waffle.
  • Release soon and often - preferably, no later than 2 weeks
  • Always question yourself: "What is the simplest thing we can build to generate value?"
  • Practice the iterative and incremental approach
  • If we are not much sure on some product hypothesis, use a "low tech" or "no tech" solution first as a POC.
  • Services Best Practices can be found here 🔒

Downtime

Do not generate downtime while deploying - be especially careful with data migrations!
Check this article🔒 about how to do it in Django.

However, if downtime is inevitable:

  • Do it outside of working hours. For systems that our own employees use, consider working hours as 8am-6pm Central Time
  • Warn everyone that is affected by it with some time in advance
  • Warn again just before the downtime and right after it