Note: จริงๆ บล็อคนี้เขียนไว้เป็นตอนจบของบล็อคที่แล้ว แต่รู้สึกว่าควรจะแยกเป็นตอนใหม่
ถ้าใครเคย inbox เข้ามาที่เพจ หรืออ่านเวลาผมประกาศว่าเว็บล่ม คำพูดนึงที่ใช้บ่อยมากคือ “ขออภัยในความไม่สะดวก”
ประกาศในหน้าเว็บเคยมีคำนี้ทั้งหมด 10 ครั้ง
เวลาเขียนคำนี้มันเจ็บนะ มันรู้สึกว่าเรากำลังทำลายความเชื่อมั่นของผู้ใช้งานอยู่ และคำขอโทษที่ใช้จนเฝือเกินไปมันไม่มีความหมาย
ขณะนี้ระบบสื่อสารของเว็บขัดข้อง
ขออภัยในความไม่สะดวก
ผมจำไม่ได้ว่าประโยคประมาณนี้เคยพูดไปกี่รอบ โดยเฉพาะในช่วงเดือนก่อนย้ายเว็บ
หลายต่อหลายครั้งเข้า ประกาศจึงต้องเปลี่ยนรูปแบบไป
ตอนนี้ระบบสื่อสารมีปัญหา อยู่ในระหว่างแก้ไขครับ น่าจะใช้เวลาประมาณ 30 นาที – 1 ชั่วโมง
ระยะหลังเราเริ่มมีปัญหาลักษณะนี้กับผู้ให้บริการ ซึ่งเรากำลังพิจารณาเปลี่ยนไปใช้บริการ Google Cloud ครับ
สิ่งที่ควรพูดมากกว่าในตอนนี้แล้วคือ ในเมื่อมีปัญหาเกิดขึ้นบ่อยครั้งมาก จะทำอย่างไรไม่ให้เกิดปัญหา
คนที่ให้แนวคิดนี้ก็ไม่ใช่ใครแต่ก็คือ Google Cloud ที่เราย้ายเข้ามา
เมื่อปีที่แล้ว Google Cloud ล่มพร้อมกันทั่วโลก แต่หลังจากอ่านรายงานนั้นแล้วผมรู้สึกว่าผมไว้ใจระบบของเค้ามากกว่าเดิมเสียอีก
ลองมาดูรายงานไปพร้อมๆ กันนะครับ
- วันที่ 11 เมษายน 2016 เวลา 14:50 วิศวกร Google ได้ลบ IP ของ Compute Engine ที่ไม่ได้ใช้ออกจากระบบ
- เนื่องจากข้อผิดพลาดของระบบ ทำให้ไฟล์ตั้งค่า 2 อันไม่ตรงกัน ระบบควบคุมจับข้อผิดพลาดได้จึงพยายามยกเลิกการแก้ไข
- กระบวนการยกเลิกมีบั๊ก ทำให้มันลบ IP ทั้งหมดออกจากการตั้งค่า
- การตั้งค่าใหม่จะถูกทดลองกับ 1 ที่ก่อน ซึ่งในขั้นทดลองก็จับข้อผิดพลาดนี้ได้
- ระบบควบคุมมีข้อผิดพลาดอีกจุดหนึ่งที่ทำให้แทนที่จะเลิก กลับไปติดตั้งให้กับระบบที่เหลือ
- พอระบบเริ่มกระจายการตั้งค่าใหม่นี้ออกไป ระบบยังไม่ล่มในทันทีเพราะผู้ใช้งานจะถูกย้ายไปเชื่อมต่อกับจุดอื่นๆ ที่ยังไม่ได้อัพเดต
- พอการตั้งค่าเริ่มกระจายมากขึ้นเรื่อยๆ ระบบจึงแจ้งวิศวกรจากการที่ latency เพิ่มสูงขึ้นเรื่อยๆ
- วิศวกร Google ได้เริ่มตรวจสอบตั้งแต่ได้รับข้อความแจ้งเตือน แต่ยังหาสาเหตุไม่ได้
- 53 นาทีต่อมา การตั้งค่าใหม่กระจายครบทั้งทั่วโลกแล้วทำให้ไม่สามารถเชื่อมต่อเข้าสู่ Compute Engine ได้โดยสมบูรณ์
- ระบบแจ้งเตือนเห็นปริมาณข้อมูลลดลงผิดปกติจึงแจ้งเตือนอีกครั้ง
- วิศวกรที่กำลังตรวจสอบจึงทราบว่าปัญหาเกิดขึ้นทั่วโลก เค้าจึงย้อนการตั้งค่ากลับในทันที
- รวมแล้วจากเวลาที่ตรวจพบจนถึงเริ่มย้อนการตั้งค่า ใช้เวลา 18 นาที
-
สิ่งที่ Google จะปรับปรุงในอนาคตคือ เพิ่มการตรวจจับเมื่อ redundancy ลดลงแม้ระบบจะยังใช้งานได้อยู่, ตรวจสอบขนาด IP Block ว่ายังมีขนาดถูกต้องอยู่หลังการแก้ไข และตรวจสอบ config อัตโนมัติว่ามี IP Block ที่กำหนดไว้
ความผิดพลาดเป็นเรื่องปกติที่ใครๆ ก็เจอ สิ่งที่ผมเห็นจากรายงานนี้คือระบบที่ออกแบบมาป้องกันความผิดพลาดหลายชั้น และยังมีการแจ้งเตือนเมื่อระบบทำงานผิดพลาด แม้ปราการทั้งหมดจะล้มเหลวไปพร้อมกัน แต่เค้ามีแผนการชัดเจนว่าจะทำอย่างไรให้ไม่เกิดข้อผิดพลาดแบบนี้อีก
นั่นคือสิ่งที่ผมอยากจะทำในเว็บ อาจจะไม่ได้ถึงกับว่าล่มครั้งเดียวแล้วแก้ไขได้ใน 18 นาที เพราะคนเฝ้ามีผมคนเดียว
แต่อย่างน้อยๆ คือถ้ามันเกิดซ้ำหลายครั้งแล้วเราจะต้องสามารถแจ้งผู้ใช้งานได้ว่าจะทำยังไงไม่ให้มันเกิดขึ้นอีก
Streamlabs ขัดข้องครับ
ขออภัยในความไม่สะดวก
ก่อนระบบล่มครั้งสุดท้าย เว็บมีปัญหากับ Streamlabs เยอะมาก บางครั้งก็ Login ไม่ได้ บางครั้งส่ง Alert ไปก็ไม่ขึ้นให้
คำตอบเดียวที่ให้ผู้ใช้งานได้คือ “แจ้งไปทาง Streamlabs แล้วครับ ต้องรอทางนั้นแก้ไข” ซึ่งก็เป็นเรื่องจริง แต่ผมว่าผู้ใช้งานคงไม่ชอบ
แผนการต่อไปของเว็บคือเราจะทำระบบมาแข่งกับ Streamlabs
ซึ่งมันไม่ง่ายเลย มันเหนื่อยมากและยังมองไม่เห็นว่าจะใช้เวลากี่เดือนจึงจะถึงจุดที่ผู้ใช้งานยอมรับ
แต่ก็ต้องทำเพราะไม่อยากใช้คำขอโทษสิ้นเปลืองอีกแล้ว