Upgrading GitHub.com to MySQL 8.0
Blog post from GitHub
GitHub's upgrade of its MySQL infrastructure to version 8.0 involved a complex and collaborative process lasting over a year, addressing both technical challenges and the need for high availability. The motivation for the upgrade stemmed from MySQL 5.7 nearing end of life, alongside the desire to leverage new features and enhanced security in 8.0. The upgrade strategy included careful planning, extensive testing, and a phased rollout to maintain service level objectives and agreements. A significant aspect of the upgrade was ensuring the ability to rollback without disruption, which required meticulous replication management between MySQL 5.7 and 8.0. The project highlighted the importance of observability, consistent client configurations, and partitioned data as critical factors for success. Furthermore, it underscored the need for automation in future upgrades to improve efficiency and reduce manual intervention, ultimately aiming for a more scalable and resilient database infrastructure.