Cómo GitHub pasó de MySQL 5.7 a MySQL 8.0
(github.blog)-
GitHub llevó a cabo la actualización de más de 1,200 hosts de MySQL a MySQL 8.0. El motivo fue el fin de vida de MySQL 5.7 y la necesidad de aprovechar los parches de seguridad más recientes y las nuevas funciones, en un proceso que tomó más de un año. Los desafíos técnicos y los aprendizajes surgidos al actualizar una infraestructura de MySQL diversa y compleja destacan la importancia de la automatización y de la gestión de flotas.
-
GitHub comenzó hace 15 años con una aplicación Ruby on Rails y una sola base de datos MySQL. Desde entonces, ha ido mejorando su arquitectura de MySQL para responder a las necesidades de escalado y resiliencia de la plataforma. Esta vez, llevó a cabo la actualización de más de 1,200 hosts de MySQL a MySQL 8.0.
-
La motivación de la actualización fue que MySQL 5.7 estaba llegando al fin de su vida útil, por lo que querían migrar a MySQL 8.0 para obtener los parches de seguridad más recientes, correcciones de errores y mejoras de rendimiento. Además, la versión 8.0 incluye nuevas funciones como Instant DDLs, invisible indexes y compressed bin logs.
-
La infraestructura MySQL de GitHub consiste en un despliegue diverso y complejo de más de 1,200 hosts. Para ejecutar la actualización sin dejar de mantenerla operativa, GitHub necesitó una planificación cuidadosa, automatización de pruebas y colaboración entre varios equipos.
-
En la etapa de preparación para la actualización, realizaron tareas como modernizar la infraestructura, verificar la compatibilidad de las aplicaciones, mantener la comunicación y la transparencia, y establecer una estrategia de actualización gradual. La actualización se llevó a cabo en varias fases, y un aspecto clave fue avanzar manteniendo la posibilidad de hacer rollback.
-
Durante la actualización hubo dificultades porque hacer rollback de MySQL 8.0 a MySQL 5.7 no era sencillo, pero GitHub logró realizarla de forma segura mientras preservaba esa capacidad. También enfrentó varios retos técnicos, incluidos problemas con Vitess, y aun así completó todo el proceso, que tomó más de un año.
-
La experiencia y las lecciones obtenidas con este proyecto reforzaron para GitHub que las actualizaciones de MySQL son una de las rutinas de mantenimiento importantes, y concluyeron que desarrollar automatización y herramientas confiables de gestión de flotas permitirá realizar futuras actualizaciones de manera más eficiente.
3 comentarios
Parece que MS no obliga necesariamente a las empresas que adquiere a migrar a su propio stack tecnológico... todavía siguen con RoR / mysql.
La migración de la base de datos de GitHub... da miedo con solo imaginarla.
¿No será que se quedaron quietos porque sabían que, si le metían mano, no había vuelta atrás? jaja