Como o GitHub migrou do MySQL 5.7 para o MySQL 8.0
(github.blog)-
O GitHub realizou a atualização de mais de 1.200 hosts MySQL para o MySQL 8.0. O motivo foi o fim da vida útil do MySQL 5.7 e a necessidade de aproveitar os patches de segurança mais recentes e novos recursos. Todo o processo levou mais de um ano. Os desafios técnicos e os aprendizados ao atualizar uma infraestrutura MySQL diversa e complexa destacam a importância da automação e da gestão de frota.
-
O GitHub começou há 15 anos com uma aplicação Ruby on Rails e um único banco de dados MySQL. Desde então, a empresa vem aprimorando sua arquitetura MySQL para atender às exigências de escala e resiliência da plataforma. Desta vez, executou a atualização de mais de 1.200 hosts MySQL para o MySQL 8.0.
-
A motivação para a atualização veio com o fim da vida útil do MySQL 5.7, e o objetivo era obter os patches de segurança mais recentes, correções de bugs e melhorias de desempenho no MySQL 8.0. Além disso, a versão 8.0 inclui novos recursos como Instant DDLs, invisible indexes e compressed bin logs.
-
A infraestrutura MySQL do GitHub é composta por uma implantação diversa e complexa com mais de 1.200 hosts. Para realizar a atualização mantendo esse ambiente, o GitHub precisou de planejamento cuidadoso, automação de testes e colaboração entre diferentes equipes.
-
Na fase de preparação para a atualização, foram realizadas tarefas como atualização da infraestrutura, verificação de compatibilidade das aplicações, manutenção da comunicação e da transparência, e definição de uma estratégia de atualização gradual. A atualização foi conduzida em várias etapas, e um aspecto importante foi manter a possibilidade de rollback durante todo o processo.
-
Durante a atualização, houve a dificuldade de fazer rollback do MySQL 8.0 para o MySQL 5.7, mas o GitHub conseguiu executar a migração com segurança preservando essa capacidade. Também enfrentou diversos desafios técnicos, como o Vitess, mas superou esses problemas, e todo o processo de atualização levou mais de um ano.
-
A experiência e as lições obtidas com esse projeto reforçaram para o GitHub que atualizações de MySQL são uma das rotinas de manutenção importantes, e levaram à conclusão de que a automação e o desenvolvimento de ferramentas confiáveis de gestão de frota permitirão executar futuras atualizações com mais eficiência.
3 comentários
Parece que a MS não força necessariamente as empresas que adquiriu a migrarem para sua própria stack de tecnologia... ainda é RoR / mysql, pelo visto.
Migração do banco de dados do GitHub... só de imaginar já dá arrepios.
Talvez tenha ficado parado justamente porque sabia que, se metesse a mão, não teria solução, né? rs