Let them ship code: Upgrading Node without freezing deploys
Blog post from Sigma
Sigma Computing describes its strategy for safely testing and releasing large changes, like upgrading Node.js runtime versions, without hindering development velocity. To manage major version upgrades, Sigma uses parallel deployments by building two Docker images for each commit: one with the older Node 12 and another with the new Node 16. This approach allows them to test the new version in staging while maintaining regular deployments to production. The use of feature flags is common for testing large features, but this was not feasible for their Node.js upgrade. Instead, they allowed the new version to "harden" in staging before promoting it to production. This method helps avoid deployment freezes, ensures continuous deployment, and allows engineers to identify potential issues early, thereby maintaining efficient and reliable update cycles.