No version left behind: Our epic journey of GitLab upgrades
May 3, 2024Saurabh Vajpayee

Summary
This post details Grab's journey to establish a consistent GitLab upgrade routine, moving from a 14-month backlog to a streamlined process. It outlines the preparation steps, the 'create before destroy' and 'in-place node rotation' strategies for stateless and stateful components respectively, and the sequential deployment order for Gitaly, Praefect, Sidekiq, App Servers, NFS, and Elasticsearch. Key challenges addressed include Gitaly cluster sync issues, Praefect load distribution, NFS deprecation, handling CI operation surges, and right-sizing resources. The post highlights the adoption of version skipping and the resulting 50% reduction in upgrade time.