GitLab deploys code to GitLab.com up to 12 times daily using their own CI/CD platform, handling millions of developers without downtime. The deployment pipeline uses progressive rollouts through staging and production Canary environments (5% traffic), followed by full staging and production deployments. Key technical challenges include managing hybrid infrastructure (Helm charts for containers, Omnibus packages for Gitaly), handling database migrations with backward compatibility, and maintaining multi-version compatibility during deployments. The expand-migrate-contract pattern ensures safe schema changes, while post-deploy migrations run only after multiple successful deployments to minimize rollback risks. This approach validates GitLab's deployment features at massive scale before customers use them.

•11m read time•From about.gitlab.com
Post cover image
Table of contents
The business case for deployment velocityCode flow architectureDeployment pipeline makeupDeployment pipelineDatabase operationsResults and impactKey takeaways for engineering teamsImportant note on scopeMore resources
2 Comments

Sort: