2.49 ล้านคำขอในสัปดาห์แรก: เบื้องหลัง BKK FloodWatch รับมือคนแห่เข้าชมช่วงน้ำท่วมกรุงเทพฯ 2569
ในสัปดาห์แรกที่เปิดให้บริการช่วงน้ำท่วมกรุงเทพฯ 2569 FloodWatch มียอดเข้าชม 105,800 ครั้ง นี่คือการถอดรหัสเชิงเทคนิคว่า flood.autobahn.bot รองรับ 2.49 ล้านรีเควสต์ได้อย่างไรโดยไม่ล่มและไร้โฆษณา
2.49 ล้านคำขอในสัปดาห์แรก: เบื้องหลัง BKK FloodWatch รับมือคนแห่เข้าชมช่วงน้ำท่วมกรุงเทพฯ 2569
ระหว่างวันที่ 26 กันยายน ถึง 3 ตุลาคม 2569 ซึ่งเป็นสัปดาห์แรกที่ FloodWatch เปิดให้บริการ กรุงเทพมหานครยังอยู่ในช่วงน้ำท่วมปี 2569 โดยระดับน้ำในคลองค่อยๆ ลดลงจากจุดสูงสุด
คลองหลายสายยังล้นตลิ่ง รวมถึงคลองลาดพร้าวแถวบางเขน ประชาชนคนเดินเท้า ไรเดอร์ส่งของ พ่อแม่ที่กำลังไปรับลูกที่โรงเรียน และพนักงานออฟฟิศ ต่างต้องการคำตอบที่ชัดเจนเพียงข้อเดียว:
"ถนนหน้าปากซอยตอนนี้น้ำท่วมหรือยัง และคลองแถวนี้จะล้นตลิ่งก่อนที่ฉันจะกลับถึงบ้านไหม?"
ผู้คนจำนวนมากจึงพร้อมใจกันเปิดเข้ามาที่ BKK FloodWatch (https://flood.autobahn.bot)
ในสัปดาห์แรกนั้น แดชบอร์ดของ Cloudflare บันทึกตัวเลขที่น่าทึ่ง: คำขอทั้งหมด (Total Requests): 2.49 ล้านครั้ง (ทุกหน้า ภาพแผนที่ สคริปต์ และการรีเฟรชอัตโนมัติ ไม่ใช่จำนวนคน) การเข้าชม (Visits): 105,800 ครั้ง (นับเป็นครั้ง ไม่ใช่จำนวนคนที่ไม่ซ้ำกัน) ปริมาณการรับส่งข้อมูล: 34.29 GB จุดสูงสุดของการเข้าชม: ราว 150,000 คำขอในชั่วโมงที่หนาแน่นที่สุด ช่วงวันที่ 30 กันยายน อัตราความผิดพลาดของเซิร์ฟเวอร์ (5xx Error Rate): 1.74% ส่วนใหญ่เกิดใน 2 ช่วงพีกรอบวันที่ 30 กันยายน ซึ่งเป็นช่วงที่ผู้คนต้องการข้อมูลมากที่สุด ค่าใช้จ่ายที่ประชาชนต้องจ่าย: 0 บาท (ไม่มีระบบสมาชิก ไม่มีการเก็บคุกกี้สอดแนม และไม่มีแบนเนอร์โฆษณาแม้แต่ชิ้นเดียว)
นี่คือเบื้องหลังทางวิศวกรรม ว่าเครื่องมือสาธารณะเล็กๆ รอดพ้นจากคลื่น 2.49 ล้านรีเควสต์มาได้อย่างไรโดยไม่พังทลายลงมา
กับดักของการพึ่งพาเซิร์ฟเวอร์ต้นทาง
ในสัปดาห์นั้น BKK FloodWatch รวบรวมข้อมูลโทรมาตรจาก สถานีวัดระดับน้ำราว 1,040 แห่งในคลองและแม่น้ำ พร้อมมุมมองแม่น้ำ 62 สาย โดยดึงข้อมูลจากแหล่งข้อมูล 5 แห่ง (สสน. กรมชลประทาน กฟผ. กทม. และ พพภ.)
ข้อมูลจากภาครัฐเหล่านี้มีประโยชน์อย่างมหาศาล แต่เซิร์ฟเวอร์ต้นทางของหน่วยงานไม่ได้ถูกออกแบบมาให้รองรับคนทั้งเมืองที่เปิดโทรศัพท์เช็กพร้อมกัน หากหน้าเว็บของเราเรียกข้อมูลตรงไปยังเซิร์ฟเวอร์ของหน่วยงานรัฐ จะเกิดหายนะตามมา 2 ข้อ: 1. เซิร์ฟเวอร์ต้นทางของภาครัฐจะล่มลงภายในเวลาไม่ถึง 3 นาที 2. ประชาชนที่ยืนตากฝนอยู่ใต้ชายคาด้วยสัญญาณมือถือ 4G เพียงขีดเดียว จะต้องยืนมองหน้าจอหมุนรอไปถึง 45 วินาที
สถาปัตยกรรมเกราะป้องกัน: ด่านกั้นระหว่างโทรศัพท์กับหน่วยงาน
เพื่อปกป้องทั้งผู้ใช้งานและเซิร์ฟเวอร์ของหน่วยงานต้นทาง เราจึงวางเซิร์ฟเวอร์ของเราเองไว้ตรงกลาง:
- 1ระบบดึงข้อมูลเบื้องหลัง (Background Polling Daemon): มีบอทเบื้องหลังคอยดึงข้อมูลจากหน่วยงานทั้ง 5 แห่งทุกๆ 5 ถึง 10 นาที แปลงข้อมูลที่หลากหลายรูปแบบให้อยู่ในมาตรฐานเดียวกัน และตรวจสอบความถูกต้องของเซนเซอร์
- 2ระบบกักกันเซนเซอร์ผิดปกติอัตโนมัติ (Anomaly Quarantine): ในช่วงพายุหนัก เซนเซอร์บางแห่งอาจเกิดการลัดวงจรหรือมีเศษสวะไปติด ทำให้ค่าความสูงของน้ำกระโดดผิดธรรมชาติ เมื่อตรวจพบความเร็วของน้ำที่เป็นไปไม่ได้ ท่อข้อมูลจะยังคงแสดงจุดที่ตั้งบนแผนที่ไว้ แต่จะซ่อนตัวเลขที่น่าสงสัยออกไป พร้อมหมายเหตุแจ้งอย่างตรงไปตรงมา
- 3ส่งผ่านเครือข่ายของ Cloudflare: ทุกคำขอวิ่งผ่านเครือข่ายของ Cloudflare แต่ในสัปดาห์แรกมีเพียง 11.41% ที่ตอบจากแคช ที่เหลือวิ่งไปถึงเซิร์ฟเวอร์เครื่องเดียวของเรา
แม้ว่าระบบ API ของบางหน่วยงานจะสะดุดไปชั่วคราว เซิร์ฟเวอร์ก็ยังแสดงค่าล่าสุดที่เก็บไว้ พร้อมบอกว่าเป็นข้อมูลเมื่อไร
การออกแบบเทคโนโลยีที่สงบเงียบ (Calm Tech) ในยามวิกฤต
เมื่อผู้คนกำลังตื่นตระหนกกับระดับน้ำที่สูงขึ้น อินเทอร์เฟซที่ใช้สีแดงกรีดร้องหรือการแจ้งเตือนที่น่ากลัวจะยิ่งซ้ำเติมความกังวล เราจึงยึดมั่นในหลักการ Calm Tech อย่างเคร่งครัด: ไม่ใช้แบนเนอร์สีแดงข่มขวัญ: สถานีที่ยังรับน้ำได้แสดงด้วยสีน้ำเงินที่สบายตา สีจะเปลี่ยนเป็นเหลือง ส้ม และแดงก็ต่อเมื่อน้ำใกล้และล้นตลิ่งเท่านั้น และมีคำกำกับเสมอ (ล้นตลิ่ง · ใกล้ตลิ่ง · เฝ้าระวัง · ยังรับน้ำได้) พร้อมทิศทางของน้ำ บอกช่วงความเป็นไปได้ตามจริง ไม่สร้างเวลานับถอยหลังปลอม: ธรรมชาติไม่ใช่ตัวนับเวลาถอยหลัง เราไม่เคยแสดงข้อความที่สร้างความเข้าใจผิด เช่น "น้ำจะมาถึงในอีก 14 นาที" แต่แบบจำลองของเราจะแสดงช่วงระดับน้ำคาดการณ์ 24, 48 และ 72 ชั่วโมงข้างหน้าอย่างตรงไปตรงมา โดยแต่ละสถานีทดสอบย้อนหลังกับข้อมูลหนึ่งปี ฝนในพื้นที่ และสถานีต้นน้ำ น้ำหนักเบาเป็นพิเศษสำหรับ 4G:* หน้าเว็บถูกออกแบบให้เบาสำหรับสัญญาณอ่อน เพื่อให้ผู้คนที่ติดอยู่ใต้สะพานลอยยังเช็กได้
เทคโนโลยีสาธารณะคือหน้าที่เพื่อสังคม
การสร้าง BKK FloodWatch เตือนใจพวกเราเสมอว่า ทำไมซอฟต์แวร์จึงมีความสำคัญ เทคโนโลยีไม่ได้มีอยู่เพียงเพื่อขายบริการรายเดือน แต่มันต้องสามารถปกป้องผู้คนและชุมชนในวันที่พายุฝนกระหน่ำลงมาได้ด้วย
ตัวระบบรุ่นแรก (ถึง v0.34) เปิดเป็นโอเพนซอร์สภายใต้สัญญาอนุญาต MIT และ JSON API ของเรายังคงเปิดให้ทุกคนใช้งานได้ฟรีโดยไม่ต้องใช้คีย์ที่ https://flood.autobahn.bot/api/docs
สำหรับทุกคนเบื้องหลังการเข้าชม 105,800 ครั้งที่เปิดดูระดับน้ำร่วมกับเราในช่วงน้ำท่วมที่ผ่านมา: ขอให้ทุกคนเดินทางปลอดภัย และรู้ไว้เสมอว่าทีมงานของเราจะคอยเฝ้าระวังระดับน้ำไปพร้อมกับคุณ
ทีมวิศวกรรมหลักของ Autobahn ส่งมอบแซนด์บ็อกซ์ที่เสถียรและโครงสร้างพื้นฐานระดับ Edge