5 ต.ค. 2021 เวลา 06:03 • วิทยาศาสตร์ & เทคโนโลยี
เข้าใจง่ายๆ ว่าทำไม Facebook ถึงล่ม?
7
.
2
เมื่อคืนนี้ Facebook มี outage ครั้งใหญ่ที่สุดครั้งหนึ่ง หลังจากที่เคยล่มครั้งใหญ่ในปี พ.ศ. 2562 ซึ่งล่มไปกว่า 24 ชม. ทำให้ Facebook, Instagram และ WhatsApp ไม่สามารถใช้งานได้ถึงกว่า 6 ชั่วโมงเลยทีเดียว แล้วถึงแม้เวลาผ่านมากว่า 12 ชั่วโมง แล้ว Facebook ก็ยังไม่กลับมา 100% ทำให้ประชาชนชาวไทยจำนวนมากอยากจะบ่นอะไรก็บ่นไม่ได้ แถมจะบ่นเรื่อง Facebook ล่มก็ทำไม่ได้อีก ส่วนพ่อค้าแม่ค้าก็บ่นกันงุบงิบ เพราะ live ขายของก็ไม่ได้
14
.
1
จุดล่มครั้งนี้อยู่ที่การแก้ไขระบบเน็ตเวิร์คของทาง Facebook เอง ในส่วนที่เรียกว่า BGP (Border Gateway Protocol) ซึ่งเป็น Protocol ในการประกาศการเชื่อมต่อของเน็ตเวิร์คภายใน หรือ autonomous systems (AS) กับภายนอก ซึ่งต้องมีการเปลี่ยนแปลงอยู่เสมอๆ ตามโครงสร้างของเน็ตเวิร์คที่เปลี่ยนแปลงไปเรื่อย ๆ
6
.
5
ใน autonomous system แต่ละที่จะมีตัวเลขตัวหนึ่งที่ใช้เรียกระบบของตัวเองที่เรียกว่า autonomous system number (ASN) และจะประกาศตัวเลขนี้ออกไป ทำให้อินเตอร์เน็ตสามารถรู้วิธีหาเส้นทางที่จะไปถึงเน็ตเวิร์คนั้น ๆ ได้ (ถ้าอยากดูรูป ลองดูภาพประกอบจาก https://www.upx.com/en/bgp-monitor-en) ซึ่งการออกแบบในลักษณะแบบนี้ ทำให้ระบบอินเตอร์เน็ตมีเสถียรภาพมาก ๆ ในกรณีที่เน็ตเวิร์คที่เชื่อมต่อเส้นใดเส้นหนึ่งเกิดปัญหา ก็สามารถเลือกที่จะเปลี่ยนเส้นทางไปอีกเส้นได้ ถ้าให้เปรียบเทียบ ก็เหมือนคุณมีบ้านเลขที่ 50 อยู่ แต่แทนที่จะบอกว่าอยู่บนถนนสุขุมวิทได้ทางเดียว คุณก็สามารถประกาศขึ้นบนป้ายโฆษณาตามถนนว่าบ้านคุณตอนนี้สามารถเข้าได้จาก ถ. สุขุมวิทได้ ถ้ามาจากทางเพชรบุรี แต่ถ้าคุณมาจากสาธร ก็แนะนำให้เข้าจากทาง ถ.พระราม 4 แต่ในวันที่รถติดบนถนนสุขุมวิทมาก ๆ ก็อาจจะบอกให้ทุกคนเข้าจากทาง ถ. พระราม 4 แทนก็ได้นั่นเอง
25
.
6
จะเห็นได้ว่าการทำแบบนี้มีข้อดีมากมาย แต่ก็มีความซับซ้อนสูงมาก ๆ พอ Facebook มีการประกาศข้อมูลที่ผิดพลาดออกไป เลยทำให้ผู้ใช้ภายนอกไม่สามารถเข้าถึงระบบเน็ตเวิร์คของ Facebook ได้เลย ถ้าให้ยกตัวอย่างความผิดพลาด ก็เหมือนการที่คุณดันไปบอกว่าบ้านคุณสามารถเข้าถึงได้จาก ถ. Fifth Ave. ใน New York ทั้ง ๆ ที่บ้านคุณอยู่แถวสุขุมวิท เป็นต้น ใครที่ดันทะลึ่งเชื่อคุณไปถึง Fifth Ave ก็คงหลงทางอยู่แถวนั้นล่ะ
14
.
3
ซึ่งปัญหาใหญ่ของ Facebook ส่วนหนึ่งคือการรวมศูนย์การบริหารเน็ตเวิร์คอยู่ที่เดียว สำหรับทุกๆ เว็บไซต์ รวมถึงเน็ตเวิร์คของบริษัทบางส่วนอีกด้วย โดยเมื่อวานนี้ แม้กระทั่งพนักงานบางส่วนไม่สามารถเข้าตึกได้ เพราะบัตรรูดไม่ผ่าน ซึ่งมีการคาดเดาไว้เหมือนกันว่า นี่อาจจะทำให้การกอบกู้สถานการณ์ล่าช้าไป เพราะพนักงานที่เกี่ยวข้องอาจจะไม่สามารถเข้าถึงเครื่องมือที่จำเป็นได้ ถ้าเรื่องนี้เป็นจริง และให้ผมเปรียบเทียบง่าย ๆ ก็คงเหมือนการที่คุณใช้ประตูไฟฟ้าในการเปิดปิดประตูบ้านตัวเอง แล้วดันทำเสียบปลั๊กไฟปั๊มน้ำนอกบ้าน แล้วไฟช็อตจนเบรกเกอร์ตัด แล้วกลับเข้าบ้านไปสับเบรกเกอร์ไม่ได้ เพราะประตูไฟฟ้าไม่ทำงาน ก็คงต้องมัวหาวิธีปีนเข้าบ้านไปสับเบรกเกอร์แทน
34
.
นอกจากนั้น Facebook เองยังมีการดูแลระบบการค้นหาโดเมนเนมที่เรียกว่า DNS (Domain Name System) ซึ่งช่วย map ชื่ออย่าง facebook.com ไปเป็น IP address อย่างเช่น 157.240.13.35 เป็นต้น แต่ระบบนี้เองดันอยู่ในระบบเน็ตเวิร์คเดียวกันที่ Facebook เองดูแล ดังนั้นจึงทำให้เราเจอ error message ที่ว่าไม่สามารถ resolve DNS ได้นั่นเอง
6
.
1
ซึ่งปัญหานี้ไม่ได้เกิดกับเฉพาะกับ Facebook เท่านั้น ปัญหาที่ Facebook ก่อขึ้น ทำให้ผู้ให้บริการ DNS มีปัญหานี้เช่นเดียวกัน เพราะปกติแล้ว DNS จะมีการ cache หรือการเก็บข้อมูลไว้ช่วงระยะเวลาหนึ่ง เพื่อให้ระบบสามารถที่จะรองรับปริมาณคำสั่งในระดับสูงได้ แต่พอระบบไม่สามารถ resolve DNS ของ facebook.com ได้ ทำให้มีคำสั่งค้นหาชื่อ facebook.com ขึ้นมาซ้ำ ๆ กันเรื่อย ๆ จนกระทั่ง DNS servers ทั่วโลกมีปริมาณคำสั่งสูงกว่าปกติหลายสิบเท่า และทำให้เกิด latency (ความล่าช้า) ในการ resolve DNS ขึ้น จนทำให้ผู้ใช้อินเตอร์เน็ตที่ไม่ได้ใช้ facebook เสียด้วยซ้ำ เกิดปัญหาตามไปด้วย
6
.
1
นอกจากการนี้ การที่ระบบใหญ่ขนาดนี้ล่มนี้ ถึงจะสามารถ rollback (แก้ไขสิ่งที่แก้ไปให้กลับมาเหมือนเดิม) ได้ แต่ก็อาจจะทำให้ระบบไม่สามารถกลับมาทำงานได้เหมือนเดิมทันที เพราะจะเจอปัญหาที่เรียกว่า cold-boot
3
.
cold-boot คือการที่ต้องเริ่ม reset ระบบใหม่จากศูนย์ ซึ่งการทำแบบนี้จะทำได้ยาก เพราะจู่ ๆ ระบบที่ไม่เคยรับปริมาณคำสั่งที่สูงมาก่อน จู่ ๆ ต้องรับปริมาณคำสั่งอย่างมหาศาล ทำให้เครื่องไม่สามารถรองรับงานได้ทันที ถ้าให้เปรียบก็คงเหมือนเวลาที่เขื่อนแตก ทำให้เกิดน้ำท่วมหลังเขื่อนอย่างรวดเร็ว และใช้เวลานานกว่าจะกลับไปเหมือนเดิม ดังนั้นหากจะทำให้ระบบกลับมาทำงานได้อย่างเดิม จะต้องหาวิธีค่อย ๆ ปล่อยคำสั่งกลับเข้าระบบทีละน้อย ๆ จนกว่าระบบจะกลับมาทำงานได้เหมือนเดิม
11
.
1
ทั้งนี้ ผมก็ได้แต่เดาว่าเกิดอะไรขึ้น และหวังว่าทาง Facebook เองจะทำการค้นหาว่าเกิดอะไรขึ้น (post-mortal analysis) และนำมาให้ผู้สนใจได้เรียนรู้ และป้องกันปัญหาในลักษณะเดียวกันไม่ให้เกิดขึ้นอีก
2
แต่คงต้องขอให้กำลังใจกับ Facebook ด้วย เพราะการที่จะดูแลระบบเน็ตเวิร์คใหญ่ขนาดนี้ไม่ใช่เรื่องง่ายเลย ความผิดพลาดเกิดขึ้นได้เสมอ เพียงแค่จะต้องมีแผนการรองรับความผิดพลาดให้ดีอีกด้วย
1
โฆษณา