ขออภัยในความไม่สะดวก

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

ซึ่งมันไม่ง่ายเลย มันเหนื่อยมากและยังมองไม่เห็นว่าจะใช้เวลากี่เดือนจึงจะถึงจุดที่ผู้ใช้งานยอมรับ

แต่ก็ต้องทำเพราะไม่อยากใช้คำขอโทษสิ้นเปลืองอีกแล้ว