GitHub'un MySQL 5.7'den MySQL 8.0'a geçiş süreci
(github.blog)-
GitHub, 1200'den fazla MySQL hostunu MySQL 8.0'a yükseltti. Bu yükseltmenin nedeni MySQL 5.7'nin kullanım ömrünün sona ermesi, en güncel güvenlik yamalarından yararlanmak ve yeni özellikleri kullanmaktı; süreç toplamda 1 yıldan uzun sürdü. Çeşitli ve karmaşık MySQL altyapısını yükseltirken ortaya çıkan teknik zorluklar ve edinilen dersler, otomasyonun ve fleet yönetiminin önemini vurguluyor.
-
GitHub, 15 yıl önce Ruby on Rails uygulaması ve tek bir MySQL veritabanıyla başladı. O zamandan bu yana GitHub, platformun ölçeklenme ve dayanıklılık gereksinimlerini karşılamak için MySQL mimarisini geliştirmeyi sürdürdü. Bu kez de 1200'den fazla MySQL hostunu MySQL 8.0'a yükseltme çalışmasını gerçekleştirdi.
-
Yükseltmenin motivasyonu, MySQL 5.7'nin kullanım ömrünün sonuna yaklaşmasıyla birlikte en güncel güvenlik yamalarını, hata düzeltmelerini ve performans iyileştirmelerini elde etmekti. Ayrıca 8.0; Instant DDLs, invisible indexes ve compressed bin logs gibi yeni özellikler içeriyor.
-
GitHub'un MySQL altyapısı, 1200'den fazla hosttan oluşan çeşitli ve karmaşık bir dağıtımdan oluşuyor. Bu yapıyı koruyarak yükseltmeyi gerçekleştirmek için GitHub'ın dikkatli planlama, test otomasyonu ve farklı ekipler arasında iş birliği yapması gerekti.
-
Yükseltmeye hazırlık aşamasında altyapının güncellenmesi, uygulama uyumluluğunun doğrulanması, iletişim ve şeffaflığın korunması ve yavaş ilerleyen bir yükseltme stratejisinin oluşturulması gibi çalışmalar yapıldı. Yükseltme birden fazla aşamada yürütüldü ve kritik noktalardan biri, süreç boyunca rollback olasılığını korumaktı.
-
Yükseltme sırasında MySQL 8.0'dan MySQL 5.7'ye rollback yapmanın zor olması gibi sorunlar vardı; ancak GitHub, rollback kabiliyetini koruyarak yükseltmeyi güvenli şekilde gerçekleştirdi. Vitess gibi çeşitli teknik zorluklarla da karşılaşıldı, ancak bu sorunlar aşıldı ve tüm yükseltme süreci 1 yıldan uzun sürdü.
-
Bu proje boyunca edinilen deneyim ve çıkarılan dersler, GitHub için MySQL yükseltmelerinin önemli rutin bakım işlerinden biri olduğunu vurguladı ve otomasyon ile güvenilir fleet yönetim araçlarının geliştirilmesinin gelecekteki yükseltmeleri daha verimli hale getireceği sonucuna varıldı.
3 yorum
MS, satın aldığı şirketleri kendi teknoloji stack'ine geçmeye özellikle zorlamıyor gibi görünüyor... hâlâ RoR / mysql kullanıyorlar.
GitHub db migrasyonu... düşüncesi bile korkunç.
Sanırım el sürülürse geri dönüşü olmayacağını bildikleri için sessiz kaldılar, değil mi? :)