Proses GitHub Bermigrasi dari MySQL 5.7 ke MySQL 8.0
(github.blog)-
GitHub menjalankan pekerjaan peningkatan versi lebih dari 1200 host MySQL ke MySQL 8.0. Alasan peningkatan ini adalah karena masa dukung MySQL 5.7 telah berakhir dan untuk memanfaatkan patch keamanan terbaru serta fitur-fitur baru, dan seluruh prosesnya memakan waktu lebih dari 1 tahun. Tantangan teknis dan pelajaran yang diperoleh saat meningkatkan infrastruktur MySQL yang beragam dan kompleks menekankan pentingnya otomatisasi dan manajemen fleet.
-
GitHub dimulai 15 tahun lalu dengan aplikasi Ruby on Rails dan satu basis data MySQL. Sejak itu, GitHub terus menyempurnakan arsitektur MySQL-nya untuk memenuhi kebutuhan skalabilitas dan ketahanan platform. Kali ini, GitHub melakukan peningkatan versi lebih dari 1200 host MySQL ke MySQL 8.0.
-
Motivasi peningkatan ini adalah karena MySQL 5.7 mendekati akhir masa pakainya, sehingga GitHub ingin beralih ke MySQL 8.0 untuk mendapatkan patch keamanan terbaru, perbaikan bug, dan peningkatan performa. Selain itu, versi 8.0 juga mencakup fitur-fitur baru seperti Instant DDLs, invisible indexes, dan compressed bin logs.
-
Infrastruktur MySQL GitHub terdiri dari deployment yang beragam dan kompleks dengan lebih dari 1200 host. Untuk melakukan peningkatan sambil tetap mempertahankan operasionalnya, GitHub memerlukan perencanaan yang cermat, otomatisasi pengujian, dan kolaborasi antarberbagai tim.
-
Pada tahap persiapan peningkatan, mereka melakukan pekerjaan seperti meningkatkan infrastruktur, memeriksa kompatibilitas aplikasi, menjaga komunikasi dan transparansi, serta menyusun strategi peningkatan yang berjalan secara bertahap. Peningkatan dilakukan dalam beberapa tahap, dan aspek pentingnya adalah menjaga kemungkinan rollback selama proses peningkatan berlangsung.
-
Selama proses peningkatan, ada masalah sulitnya melakukan rollback dari MySQL 8.0 ke MySQL 5.7, tetapi GitHub tetap dapat menjalankan peningkatan dengan aman sambil mempertahankan kemampuan rollback. Mereka juga menghadapi berbagai tantangan teknis seperti Vitess, namun berhasil mengatasinya, dan keseluruhan proses peningkatan memakan waktu lebih dari 1 tahun.
-
Pengalaman dan pelajaran dari proyek ini menegaskan bagi GitHub bahwa peningkatan MySQL adalah salah satu pekerjaan pemeliharaan rutin yang penting, dan menyimpulkan bahwa otomatisasi serta pengembangan alat manajemen fleet yang andal akan memungkinkan peningkatan berikutnya dilakukan dengan lebih efisien.
3 komentar
Sepertinya MS tidak benar-benar memaksakan migrasi ke stack teknologi mereka sendiri pada perusahaan yang mereka akuisisi... ternyata masih RoR / mysql ya
Migrasi db GitHub... baru dibayangkan saja sudah mengerikan.
Mungkin dia diam saja karena tahu kalau sudah disentuh, tidak ada jawabannya, ya? haha