ระบบตรวจสอบระดับน้ำในคลอง และน้ำท่วมถนน

ระบบตรวจสอบน้ำในคลองต่างๆ ของ กทม.
URL : http://ton.packetlove.com/bkkflood.php

ระบบตรวจสอบระดับน้ำบนถนนต่างๆ ของ กทม.
URL : http://ton.packetlove.com/bkkroad.php

เมื่อวานหลังจากที่ผมลองเข้าเว็บของสำนักระบายน้ำ กทม. และหน่วยงานอื่นๆ
ที่เกี่ยวกับน้ำท่วม ทำให้ผมเกิดความไม่สะดวกมาก เพราะเว็บค่อนข้างหนัก
และส่วนใหญ่เป็น Flash ทำให้ไม่สามารถ ใช้พวก mobile device ต่างๆ เข้าถึงได้
เพราะถึงเวลาจริงๆ แล้ว ปัจจุบัน คนส่วนใหญ่ ใช้ mobile device ในการเข้าถึงข้อมูล
กันมากกว่าใช้ PC เสียอีก เพราะสะดวก และสามารถทำได้ทุกที่ ลักษณะการใช้งาน
ส่วนใหญ่ ต้องการข้อมูลที่ดูแล้วเข้าใจง่าย เข้าถึงได้เร็ว รู้ว่าตรงไหนจะท่วมหรือไม่
แค่นั้นเอง จะได้เตรียมตัวถูก ..

ตอนแรกผมคิดว่าจะทำเป็น app ไปแจกใน App Store แต่ว่ามันจะเป็นเรื่องใหญ่ไป
และกว่าจะได้  approve คงไม่ทันได้ช่วยเหลืออะไรทันแน่ๆ ก็เลยเขียนเป็น web เอา
และให้ทำงานได้ ในทุก device ไม่ว่าจะเป็น PC/mobile หรืออะไรต่างๆ ที่มี browser
ที่รองรับ HTML แบบพื้นฐานได้ และมีแต่ข้อมูลที่จำเป็นจริงๆ เท่านั้นก็น่าจะพอ ..

รายละเอียดต่างๆ ผมดึงข้อมูล ที่เป็น XML ของ สำนักระบายน้ำ กทม. มา โดยไม่ได้
ทำการขออนุญาต แต่อย่างใด ซึ่งผมคิดว่า คงไม่น่าจะมีปัญหาอะไร เพราะก็เป็นทางนึง
ที่จะช่วยทำให้ข้อมูลข่าวสารที่ถูกต้อง เข้าถึงประชาชนจำนวนมากได้ ทันเหตุณ์การ
ช่วยลดความสูญเสีย ความกังวลต่างๆ ของประชาชนได้ แค่นี้ก็น่าจะพอแล้ว ..
จริงๆ แล้ว ทางสำนักระบายน้ำ ไม่ได้มี APIs ให้ใช้แต่อย่างใด แต่ก็น่าชื่นชมที่หลายๆท่าน
ใช้วิธีการแกะ การเจาะ จนได้ข้อมูลต่างๆ ที่เป็นประโยชน์ มาช่วยบริการประชาชน
ที่กำลังเดือดร้อนในตอนนี้ ..

สิ่งนึงที่ผมหวังว่าทางหน่วยงานของรัฐคงจะนำบทเรียนครั้งนี้ไปคิดดูให้ดี ในการจัดการ
กับระบบเตือนภัยต่างๆ ของประเทศ ไม่ว่าจะเป็นระบบ เตือนน้ำท่วม เตือนสภาพอากาศ
เตือนซึนามิ เตือนระบบจราจร และอื่นๆ ให้ดีขึ้นกว่านี้ และควรจะมี APIs ที่เป็นมาตรฐาน
เพื่อที่จะให้หน่วยงานเอกชน บุคคล หรือคนที่มีกำลังมีความสามารถ ได้นำเอา ข้อมูลที่
จำเป็นเหล่านี้ ไปใช้ให้เกิดประโยชน์ ต่อส่วนรวมได้ ต่อไปอาจจะมี app ดีๆ ต่างๆ มากมาย
ตรงนี้ ผมก็เพียงแต่คิดว่า มันจะมี แต่ก็ไปหวังอะไรไม่ได้มากนัก ..

สุดท้ายผมหวังว่า เราชาวไทย จะผ่านเหตุการณ์นี้ไปได้ด้วยดีครับ 🙂

Why Varnish Cache

User <-------> Varnish <-------> Web Server <--------> DB

วันนี้ ผมมีโอกาสมาพูดถึง เจ้า Varnish อีกครั้ง ว่าทำไม มันถึงน่าสนใจ มันมีอะไรดี
แล้วมันช่วยอะไรกับระบบเว็บขนาดใหญ่ ที่มีคนเข้าจำนวนมากได้ ..
โดยเฉพาะถ้าเว็บคุณเป็น content พวก static ยิ่งดีเลย เพราะว่า varnish สามารถ
caching ตรงส่วนนี้ได้หมด บน memory ทำให้ เครื่อง web server และ DB เอง
แทบไม่ต้องทำงานอะไรเลย แต่ถ้าเป็นพวก dynamic ตัว varnish เอง ก็ช่วยได้เหมือนกัน
มาดูรายละเอียดกันครับ ว่าทำไมต้อง varnish ??

– เพราะเป็น Open Source ที่มีคุณภาพ ทำไมต้องไปใช้ BlueCoat ที่มีราคาแพงด้วย
ทั้งๆ ที่ Varnish ดีกว่ามากๆๆๆๆๆๆๆๆๆ ถ้าคุณใช้มันเป็น 🙂

– Varnish Configuration Language (VCL) ซึ่งเป็นการเขียน config แบบเข้าใจได้ง่าย
เป็นโครงสร้างที่คล้ายๆ ภาษา C ทำให้เราสามารถ เขียน VCL ให้ทำงานต่างๆ ได้ละเอียด
ตามที่เราต้องการ และใช้การ compile เพียงครั้งเดียว ทำให้ การทำงานทำได้อย่างดี เร็ว
และมีประสิทธิภาพมากๆ

– Varnish เก็บ cache ต่างๆ บน memory ด้วยโครงสร้างที่ดี ทำให้ lookup ได้เร็วมาก
เวลาต้องการเรียกใช้งาน cache ที่ต้องการ โดยแทบจะไม่ทำให้ เครื่อง เกิด i/o load เลย

– Varnish สามารถทำเป็น Load Balance ได้

– Purge URL ที่ต้องการไม่ให้ cache ได้ โดยใช้คำสั่งเข้าใจง่ายๆ สามารถใช้ PHP
เขียนติดต่อ ที่ T port เพื่อทำการ purge URL ทำให้เว็บ มีประสิทธิภาพมาก เพราะว่า
ในกรณีนี้ เราจะสามารถ เขียน VCL ให้ cache URL ทั้งหมด ของระบบได้ ทำให้
Web Server และ DB Server แทบไม่ต้องทำงานเลย แต่ถ้าเวลามีการ update ต่างๆ
เราก็สามารถส่ง URL ที่ต้องการ มา purge ได้ 🙂

ที่เล่ามาก็เป็นส่วนหนึ่งที่ทำไมผมคิดว่า Varnish เหมาะที่จะมาช่วยทำให้ระบบเว็บขนาดใหญ่
สามารถทำงานได้ดีขึ้น มีประสิทธิภาพสูงขึ้น และประหยัดค่าใช้จ่ายในการซื้อ Software
และ Hardware ที่ไม่จำเป็น เป็นการช่วยลดโลกร้อน ที่เป็นปัญหาให้เกิดน้ำท่วมได้ 🙂