GitHub का MySQL 5.7 से MySQL 8.0 पर माइग्रेशन का सफर
(github.blog)-
GitHub ने 1200 से अधिक MySQL hosts को MySQL 8.0 में upgrade करने का काम किया, और इस प्रक्रिया में upgrade का कारण MySQL 5.7 की lifecycle समाप्त होना, नवीनतम security patches और नए features का लाभ उठाना था। यह पूरी प्रक्रिया कुल मिलाकर 1 साल से अधिक चली। विविध और जटिल MySQL infrastructure को upgrade करते समय सामने आई तकनीकी चुनौतियों और सीखे गए सबक automation और fleet management के महत्व को रेखांकित करते हैं.
-
GitHub ने 15 साल पहले Ruby on Rails application और एक single MySQL database के साथ शुरुआत की थी। उसके बाद से GitHub प्लेटफ़ॉर्म की scaling और durability की आवश्यकताओं को पूरा करने के लिए अपनी MySQL architecture को बेहतर बनाता रहा है। और इस बार उसने 1200 से अधिक MySQL hosts को MySQL 8.0 में upgrade करने का काम किया।
-
upgrade की प्रेरणा यह थी कि MySQL 5.7 का lifecycle समाप्ति की ओर था, इसलिए नवीनतम security patches, bug fixes और performance improvements पाने के लिए MySQL 8.0 में upgrade करना आवश्यक था। साथ ही 8.0 में Instant DDLs, invisible indexes, compressed bin logs जैसे नए features भी शामिल हैं।
-
GitHub का MySQL infrastructure 1200 से अधिक hosts से बने एक विविध और जटिल deployment पर आधारित है। इसे बनाए रखते हुए upgrade करने के लिए GitHub को सावधानीपूर्वक planning, test automation, और अलग-अलग teams के बीच collaboration की आवश्यकता पड़ी।
-
upgrade की तैयारी के चरण में infrastructure को upgrade करना, application compatibility की पुष्टि करना, communication और transparency बनाए रखना, और धीरे-धीरे आगे बढ़ने वाली upgrade strategy बनाना जैसे काम किए गए। upgrade कई चरणों में किया गया, और इसका एक महत्वपूर्ण पहलू rollback की संभावना बनाए रखते हुए आगे बढ़ना था।
-
upgrade के दौरान MySQL 8.0 से MySQL 5.7 पर rollback कठिन होने की समस्या थी, लेकिन GitHub ने rollback capability बनाए रखते हुए upgrade को सुरक्षित रूप से पूरा किया। Vitess जैसी विभिन्न तकनीकी चुनौतियों का भी सामना करना पड़ा, लेकिन इन समस्याओं को पार करते हुए पूरी upgrade प्रक्रिया में 1 साल से अधिक समय लगा।
-
इस project से मिले अनुभव और lessons ने GitHub के लिए यह स्पष्ट किया कि MySQL upgrade महत्वपूर्ण routine maintenance में से एक है, और automation तथा भरोसेमंद fleet management tools का विकास भविष्य के upgrades को अधिक कुशलता से पूरा करने में मदद करेगा।
3 टिप्पणियां
लगता है MS अधिग्रहित कंपनियों पर अपने tech stack में migration करने के लिए ज़बरदस्ती नहीं करता... अभी भी RoR / mysql ही है।
GitHub की DB migration... सिर्फ कल्पना करने भर से ही डर लगता है।
शायद वे इसलिए चुप थे क्योंकि उन्हें पता था कि एक बार हाथ लगा दिया तो फिर उसका कोई जवाब नहीं रहेगा? ह