GitHub กับกระบวนการย้ายจาก MySQL 5.7 ไปสู่ MySQL 8.0
(github.blog)-
GitHub ได้ดำเนินการอัปเกรดโฮสต์ MySQL มากกว่า 1,200 เครื่องไปเป็น MySQL 8.0 โดยเหตุผลของการอัปเกรดครั้งนี้คือ MySQL 5.7 กำลังหมดอายุการสนับสนุน และต้องการใช้แพตช์ความปลอดภัยล่าสุดรวมถึงฟีเจอร์ใหม่ ๆ ซึ่งกระบวนการทั้งหมดใช้เวลามากกว่า 1 ปี ประสบการณ์ด้านความท้าทายทางเทคนิคและบทเรียนที่ได้จากการอัปเกรดโครงสร้างพื้นฐาน MySQL ที่หลากหลายและซับซ้อนนี้ ตอกย้ำความสำคัญของระบบอัตโนมัติและการจัดการฟลีต
-
GitHub เริ่มต้นเมื่อ 15 ปีก่อนด้วยแอปพลิเคชัน Ruby on Rails และฐานข้อมูล MySQL เดี่ยว จากนั้น GitHub ได้พัฒนาสถาปัตยกรรม MySQL อย่างต่อเนื่องเพื่อรองรับความต้องการด้านการขยายระบบและความทนทานของแพลตฟอร์ม และในครั้งนี้ก็ได้ดำเนินการอัปเกรดโฮสต์ MySQL มากกว่า 1,200 เครื่องไปเป็น MySQL 8.0
-
แรงจูงใจในการอัปเกรดคือ MySQL 5.7 กำลังเข้าสู่ระยะหมดอายุการสนับสนุน ทำให้ GitHub ต้องการย้ายไปยัง MySQL 8.0 เพื่อรับแพตช์ความปลอดภัยล่าสุด การแก้ไขบั๊ก และการปรับปรุงประสิทธิภาพ นอกจากนี้ 8.0 ยังมีฟีเจอร์ใหม่อย่าง Instant DDLs, invisible indexes และ compressed bin logs
-
โครงสร้างพื้นฐาน MySQL ของ GitHub ประกอบด้วยการติดตั้งใช้งานที่หลากหลายและซับซ้อนบนโฮสต์มากกว่า 1,200 เครื่อง การดำเนินการอัปเกรดโดยยังคงรักษาระบบเหล่านี้ไว้ได้ จำเป็นต้องอาศัยการวางแผนอย่างรอบคอบ ระบบทดสอบอัตโนมัติ และความร่วมมือระหว่างหลายทีม
-
ในขั้นเตรียมการอัปเกรด GitHub ได้ดำเนินงานต่าง ๆ เช่น การอัปเกรดโครงสร้างพื้นฐาน การตรวจสอบความเข้ากันได้ของแอปพลิเคชัน การรักษาการสื่อสารและความโปร่งใส รวมถึงการกำหนดกลยุทธ์การอัปเกรดแบบค่อยเป็นค่อยไป การอัปเกรดดำเนินไปหลายระยะ และประเด็นสำคัญคือการทำให้อัปเกรดได้โดยยังคงความสามารถในการย้อนกลับ
-
ระหว่างการอัปเกรด มีปัญหาว่าการย้อนกลับจาก MySQL 8.0 ไปยัง MySQL 5.7 ทำได้ยาก แต่ GitHub ก็สามารถดำเนินการอัปเกรดอย่างปลอดภัยพร้อมรักษาความสามารถในการย้อนกลับไว้ได้ แม้จะต้องเผชิญกับความท้าทายทางเทคนิคหลายอย่าง เช่น Vitess แต่ก็สามารถฝ่าฟันปัญหาเหล่านี้ไปได้ และกระบวนการอัปเกรดทั้งหมดใช้เวลามากกว่า 1 ปี
-
ประสบการณ์และบทเรียนจากโปรเจ็กต์นี้ทำให้ GitHub ตอกย้ำว่า การอัปเกรด MySQL เป็นหนึ่งในงานบำรุงรักษาตามรอบที่สำคัญ และสรุปได้ว่าการพัฒนาระบบอัตโนมัติและเครื่องมือจัดการฟลีตที่เชื่อถือได้ จะช่วยให้การอัปเกรดในอนาคตมีประสิทธิภาพยิ่งขึ้น
3 ความคิดเห็น
ดูเหมือนว่า MS จะไม่ได้บังคับบริษัทที่เข้าซื้อกิจการให้ย้ายไปใช้เทคโนโลยีสแตกของตัวเองโดยเฉพาะ... จนถึงตอนนี้ก็ยังเป็น RoR / mysql อยู่สินะ
การย้ายฐานข้อมูลของ GitHub.. แค่จินตนาการก็น่ากลัวแล้ว
หรือคงเป็นเพราะรู้ว่าถ้าไปแตะเข้าแล้วจะยิ่งแก้ไม่ตก เลยอยู่นิ่ง ๆ มั้งครับ 555