Although we’re constantly releasing new features and fixing bugs, sometimes we release an extremely big change that has the potential to break things badly. We have many ways of testing code before it is live to our customers. But we can’t always anticipate all use cases. Maybe the app will perform differently for large companies with 10,000 candidates, or for users that have not logged out in months, or…there are many potential edge cases.
Our Rails 4 release was one of Greenhouse’s first so-called blue-green releases. This means that we start by only exposing a small subset of customers to the new code. We’ll wait maybe an hour, and use monitoring tools to ensure that we have not introduced new bugs. If we do see new bugs, we may revert these customers to the old code while we fix the problem. This step is known as a rollback. If things look good, we’ll expose additional customers to the new code.