เจาะประเด็น
Tech / Infrastructure
GitHub เซิร์ฟเวอร์ล่มวันเดียว แต่ความเชื่อใจของนักพัฒนาทั้งโลกคือสิ่งที่ต้องซ่อมยาวๆ
บล็อกทางการของ GitHub ออกมาเล่าเบื้องหลังเหตุการณ์เมื่อวันที่ 17 สิงหาคม และนี่คือสิ่งที่เขาตั้งใจจะทำเพื่อไม่ให้เกิดซ้ำ
ทีมข่าว เอไอไทย.com
⏱ อ่าน 3 นาที
เวลาที่แพลตฟอร์มที่คนทั้งโลกใช้ทำงานพร้อมกันล่มแบบนี้ คำถามจริงๆ ไม่ใช่ "เมื่อไหร่จะกลับมา" แต่คือ "ทำไมมันถึงเกิดขึ้นได้" ต่างหาก
เริ่มกันแบบนี้เลย — เมื่อวันที่ 17 สิงหาคมที่ผ่านมา GitHub เจอเหตุการณ์หนักที่ไม่มีใครอยากให้เกิด: เซิร์ฟเวอร์ล่มเป็นวงกว้าง จนนักพัฒนาหลายล้านคนที่กำลังนั่งทำงานอยู่ดีๆ ก็ push โค้ดไม่ได้ pull ไม่ได้ เปิด repo ไม่ขึ้น แถมหน้าเว็บยังโหลดช้าหรือเด้ง error เป็นระยะๆ ถ้าใครเป็นสาย dev หรือทำงานสายเทคฯ คงรู้ดีว่าช่วงเวลานั้นมันโคตรจะน่าหงุดหงิดขนาดไหน เพราะ GitHub ไม่ใช่แค่เว็บฝากโค้ด แต่คือโครงสร้างพื้นฐานของวงการซอฟต์แวร์ทั้งโลกเลยก็ว่าได้
ทีมงาน GitHub เพิ่งออกมาอัปเดตผ่านบล็อกทางการ เล่ารายละเอียดว่าที่จริงแล้วมันเกิดอะไรขึ้นบ้าง และที่สำคัญกว่าคือเขาจะทำยังไงต่อเพื่อไม่ให้เหตุการณ์แบบนี้เกิดขึ้นซ้ำอีก บทความนี้ไม่ได้ยาวมาก แต่ประเด็นที่มันกระทบต่อความเชื่อใจของผู้ใช้มันใหญ่กว่าที่เห็น
จากที่ทีมงานเล่าไว้ สาเหตุหลักของการล่มครั้งนี้มาจากการเปลี่ยนแปลงโครงสร้างพื้นฐานด้านฐานข้อมูล (database infrastructure) ซึ่งเป็นส่วนที่อ่อนไหวที่สุดในระบบใหญ่ๆ แบบนี้อยู่แล้ว แค่พลาดนิดเดียวก็ส่งผลเป็นลูกโซ่ได้ทั้งระบบ และนี่ก็คือสิ่งที่เกิดขึ้นจริง — การเปลี่ยนแปลงที่ตั้งใจจะทำให้ดีขึ้น กลับกลายเป็นชนวนที่ทำให้บริการหลักๆ หลายอย่างรวนไปพร้อมกัน
จุดที่ทำให้เรื่องนี้ปวดหัวกว่าปกติคือ มันไม่ใช่แค่หน้าเว็บหลุดชั่วคราว แต่เป็น "การหยุดชะงักเป็นวงกว้าง" ที่กินเวลานานพอให้ผู้ใช้เริ่มตั้งคำถามถึงความน่าเชื่อถือของแพลตฟอร์ม ใครที่ทำงานกับทีมระยะไกลหรือต้องดีพลอยเมนต์งานด่วนๆ ในวันนั้นคงเข้าใจดีว่ามันเสียหายแค่ไหน
ต้องบอกตรงนี้เลยว่า ผมไม่ได้คิดว่า GitHub เป็นบริษัทที่ทำระบบแย่ๆ แต่การที่แพลตฟอร์มระดับนี้ล่มได้เพราะการเปลี่ยนแปลงฐานข้อมูลแบบนี้ มันสะท้อนให้เห็นว่าแม้แต่ยักษ์ใหญ่ที่มีวิศวกรเก่งๆ เต็มทีม ก็ยังประมาทไม่ได้ในเรื่องของความซับซ้อนของระบบ การที่เขาออกมาพูดถึง "บทเรียน" และ "แผนปรับปรุง" เป็นเรื่องที่ดี แต่คำถามที่ค้างคาในใจของนักพัฒนาหลายคนคือ — แล้วครั้งหน้าเราจะยังไว้ใจให้คุณเป็นที่เก็บโค้ดหลักของเราไหม?
ในบล็อกเขาบอกว่ากำลังดำเนินการหลายอย่างเพื่อเพิ่มความเสถียร ไม่ได้ทิ้งรายละเอียดไว้แค่ว่า "เราจะทำให้ดีขึ้น" แต่พูดถึงการลงทุนกับเครื่องมือและกระบวนการตรวจสอบให้รัดกุมกว่าเดิม ซึ่งมันก็เป็นสิ่งที่ควรทำอยู่แล้ว แต่ผมมองว่าสิ่งที่สำคัญไม่แพ้กันคือการสื่อสารกับผู้ใช้ระหว่างเกิดเหตุ — ยิ่งช้า ยิ่งแย่ เพราะคนที่งานค้างอยู่ต้องการคำตอบ ไม่ใช่แค่สัญญาณว่า "กำลังแก้ไขอยู่"
ความเสียหายต่อความเชื่อใจ
นักพัฒนาจำนวนมากเริ่มตั้งคำถามถึงการใช้ GitHub เป็นที่เก็บงานหลัก หลายทีมเริ่มมองหาทางเลือกสำรองหรือแม้แต่ย้ายไปใช้บริการอื่น
บทเรียนจากเหตุการณ์
การเปลี่ยนแปลงระบบฐานข้อมูลคือ "มีดผ่าตัด" ที่คมเสมอ ถ้าควบคุมจังหวะหรือทดสอบไม่ดีพอ มันจะบาดมือตัวเองเสมอ ไม่ว่าใครจะเก่งแค่ไหน
เรื่องนี้เป็นอุทาหรณ์ชั้นดีให้กับวงการ tech ทุกแพลตฟอร์ม ไม่ใช่แค่ GitHub ว่าการที่ระบบเคยเสถียรมานาน ไม่ได้การันตีว่ามันจะเสถียรตลอดไป การลงทุนกับความเสถียร (reliability) คือการลงทุนที่ไม่มีวันจบ และไม่มีคำว่า "พอแล้ว" สำหรับเรื่องนี้
สรุปคือ GitHub พลาดจริง และเขาก็ยอมรับแล้ว แต่การที่เขาออกมาอัปเดตแบบนี้ถือว่าใส่ใจผู้ใช้พอสมควร ทีม dev ทุกทีมควรถือคติจากเหตุการณ์นี้ไว้ว่า ไม่มีระบบไหนยืดหยุ่นพอจะประมาทได้ แม้แต่ยักษ์ใหญ่ของวงการเองก็ตาม
ที่มา: GitHub Blog — อ่านต้นฉบับ
ความคิดเห็น 5
กำลังโหลดความคิดเห็น...