504 Gateway Timeout กับหน้าจองบัตรที่หายไป

Patcharaporn Auerach/ June 27, 2018/ Cloud Computing, Knowledge Base, News/ 0 comments

เคยใช่มั้ยคะ?

ที่บางครั้งเวลาเราเข้าเว็บไซต์ต่างๆ แล้วต้องเจอกับสถานการณ์ เว็บพัง เว็บล่ม เข้าไม่ได้ ซึ่งหน้าเว็บมันก็จะบอก Code ซึ่งเป็นตัวเลขสามตัวมา เจอบ่อยๆหน่อยก็ 404 Page Not found แต่ว่าโค้ดพวกนี้นี่มันก็มีเยอะแยะมากมาย ซึ่งเราเองก็ไม่ได้ใส่ใจอะไรเพราะโค้ดมันเยอะเหลือเกินใครจะไปนั่งจำ  อย่างมากเจอ Error อะไร ก็ก้อปไปวางใน Google แล้วหาว่ามันคืออะไร

แต่เนื่องจากล่าสุดได้มีเหตุการณ์ เว็บจองบัตรคอนเสิร์ต Wanna One ล่มค่ะ
(ก็เหมือนอย่างที่เคยเป็นมากับเว็บจองตั๋วอื่นๆ) แต่ละคนก็วิเคราะห์กันไปต่างๆนาๆ ซึ่งก็มีทั้งที่ถูกและที่ต้องมีการปรับทัศนคติกันเพิ่มเติมสักหน่อย เพื่อให้ได้ข้อมูลที่ถูกต้อง แอดมินขออนุญาตหยิบเหตุการณ์นี้มาพูดถึง เพื่อไขข้อข้องใจ ในแบบฉบับมนุษย์อ่านได้ ยายอ่านก็เข้าใจ

อะไรเอ่ย ยังไม่ทันได้จองก็หมดแล้ว!!?
( source : facebook.com/WannaOne1TheWorldinBKK/ )

 เรื่องมันเริ่มจากที่…

เมื่อวันเสาร์ที่ 9 มิถุนายน 2018 ได้มีการเปิดจองบัตรคอนเสิร์ต Wanna One ที่เว็บไซต์ (https://www.wannaone1theworldinbkk.com/)
โดยทางเว็บไซต์ได้เปิดให้จองตั้งแต่เวลา  10:00 น เป็นต้นไป…. ซึ่งพอถึงเวลาจองแล้วนั้น…..

สวัสดีจ้า 504-Gateway Timeout
(และอื่นๆ อีกมากมาย อาทิเช่น 503, 404)

(source : https://twitter.com/DDnxShop/status/1005341740264329216)

 ในวันนั้นก็เกิดปรากฎการณ์ทางโซเชียลมากมาย  

ตั้งแต่การที่ทุกคนร่วมใจกันสรรเสริญพี่ 504 จนติดอันดับเทรนด์บน Twitter เกิดการนำเลขไปแทงหวย เกิดกูรูผู้รู้ตื่นด้วยการพยายาม Inspect Element เข้าไปดู HTML เพื่อหา Root ของปัญหา (ได้หรอ 555)  และที่พีคสุดคือพี่ 504 Gateway Timeout แกดังจนถึงขนาดมีเสื้อเป็นของตัวเอง ภายในเวลาแค่ไม่กี่ชั่วโมงจ้า

(source: https://twitter.com/Nook_0995/status/1005302892109000704)

ติดเทรนด์อันดับ 3 ซะด้วย เท่ปะ

 

เสื้อก็มาจ้า

 

หมวกก็ด้วยจ้า

 

เอาไปซื้อลอตเตอรี่ก็ได้จ้า?

ดังนั้น .. เวลาเราเห็นโค้ด Error ต่างๆขึ้นมาบนหน้าจอ ก็ให้ระลึกไว้เสมอเลยค่ะ ว่าตัวเลขพวกนี้ไม่ได้ขึ้นมาเพื่อใบ้หวย หรือบอกสายรถเมล์ขสมก.แต่อย่างใด เพราะมันคือ “HTTP Status Code” ซึ่งเจ้า code เนี้ย มันก็คือตัวเลขที่ถูกส่งมาจากเซิร์ฟเวอร์อีกที เพื่อบอกผู้ใช้งานว่า มันเกิดความผิดปกติอะไรขึ้นกับเว็บไซต์ ณ ตอนนั้น

 

 มารู้จัก HTTP Status Code แบบต่างๆกันก่อน

ไม่ต้องไปจำหมดก็ได้ แต่สรุปง่ายๆเลยว่า

504 Gateway Timeout Error = Server Error

 504-Gateway Timeout
คืออะไรกันแน่ มาทำไมให้อายบ้านนา!?

เวลาเราเปิด Browser เพื่อเข้าไปดูเว็บไซต์อะไรก็ตาม แน่นอนว่าระบบข้างหลังบ้านต้องมีการติดต่อสื่อสารกันแน่นอนค่ะ โดย Computer หรือฝั่ง Client อย่างเราๆนั้น นั้นจะคุยกับ Server ผ่าน HTTP (Hypertext Transfer Protocol)  โดยฝั่ง Client จะส่ง Request ออกไป แล้ว Server ก็จะ Response กลับมา ตามภาพด้านล่าง


 สาเหตุที่ทำให้หน้าเว็บไซต์แสดงโค้ด 504

เกิดจากตัว Server ที่ใช้ในการวางเว็บไซต์นั้นๆ เริ่มมีอาการเอ๋อๆขึ้นมา หลังจากถูกระดม Request จากมวลมหาประชาชน (End-User) ทำให้ระบบมีการจราจรที่แน่นหนามาก (คือมี Traffic สูง) อารมณ์เหมือนระบบจราจรที่ติดเป็นคอขวดกัน เลยส่งผลให้ Server เริ่มตอบสนองช้าลงเรื่อยๆ กระทั่งเครื่อง Client บางคนรอการตอบสนองนานเกินไป จนเกิด Timeout คือหมดเวลาแล้วเธอคงต้องไป~ ไว้ลองเข้าใหม่อีกทีนะจ้ะ

 

 พอนึกออกกันหรือยัง?

ถ้าใครเคยเจอมาก่อน ก็คงจะพอเริ่มนึกออกแล้วแหละค่ะ แบบว่าภาพจำมันยังชัดเจน เหมือนเดิมทุกอย่าง (จงอ่านตามด้วยอารมณ์ที่เจ็บปวด) อาการขั้นแรกคือมันจะงอแงๆก่อน เช่น เริ่มโหลดช้า โหลดแล้วค้าง ขึ้นหน้าขาวโพลนบ้างอะไรบ้าง เรามันก็วัยรุ่นใจร้อนซะด้วย F5 รัวๆวนไป  

ก็เลยกลายเป็นว่าน้อง Server ที่แสนบอบช้ำอยู่แล้ว ดันถูกกระหน่ำยิง Request ซ้ำเข้าไปเยอะๆอีก จนในที่สุดก็เกินกำลังที่น้องจะรับมือไหว หลังจากนั้นน้องก็จะเข้าสู่อาการโคม่าทันที ก็คือรีสตาร์ทตัวเองไปเลย จบ!! (แล้วเว็บก็ล่มในที่สุด) 

 

 ขอแบบง่ายๆค่ะพี่!

 เปรียบง่ายๆได้แบบนี้จ้า

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

 อ้าว! เป็นที่ Server แล้วตัว Web Sourcecode เกี่ยวมั้ย?

ถึงแม้ดูเผินๆแล้วเหมือนปัญหานั้นจะเกิดจากฝั่ง Server เป็นหลัก แต่ทางฝั่งของ Web เองก็ต้องตรวจสอบ Code ของตัวเองด้วยเช่นกัน ว่าเขียนมาแบบไหน เลือกใช้ภาษาอะไรในการเขียน เพราะบางครั้งการเพิ่มจำนวนทรัพยากร Server เพียงอย่างเดียว อาจเป็นการแก้ไขที่ปลายเหตุมากกว่า เราต้องเช็คตัว Sourcecode ของเว็บไซต์ควบคู่ไปด้วย เพื่อให้สามารถใช้ทรัพยากรที่มีได้อย่างคุ้มค่าที่สุด

พักฟังสาระสำคัญทางนี้!

“การที่เราไปส่อง Web Sourcecode ผ่านการ Inspect Element หรือ View Pagesource ใน Web browser นั้น ไม่มีข้อมูลตรงไหนที่ตอบเราได้ว่าเว็บเขียนมาดีหรือไม่ดีเพียงพอในการรับโหลด คงมีเพียง Developer เท่านั้นที่รู้ตัวเองดีที่สุดค่ะ”

 

 ทำไมเว็บจองบัตรคอนเสิร์ตชอบล่ม? (และโหลดช้าเหลือเกินค่ะคุณพี่)

เหตุก็เกิดมาจาก….

“เปิดจองพร้อมกันวันที่ xx xxxx xxxx เวลา 10.00 น.”

ก็แทบไม่ต้องสงสัยเลยว่า … เมื่อถึงเวลา 10.00 น. จะมีมวลมหาประชาชน พากันกระหน่ำกดเข้าเว็บไซต์ที่เปิดจองนั้นๆ เยอะแยะมากมายขนาดไหน  แหม..ใครๆก็อยากได้บัตร เพราะฉะนั้นก็ต้องรีบตื่นมาจองตอนมันเปิดเลยสิ

ซึ่งบางคนพอเห็นเริ่มช้าๆ ก็เลยใส่ท่า F5 มารัวๆ นี่ยังไม่รวมคนที่เปิดหลาย Device ทิ้งไว้ พอถึงเวลาก็กระหน่ำกดกันเข้าไปอีก
นั่นหมายความว่า Server จะมีการรับก้อน Request มากมายมหาศาลในช่วงเวลานั้น จนเกินกำลังจะรับไหว แล้วสุดท้ายก็แพ้ไป….

แล้วยิ่งกับบัตรคอนเสิร์ตวงต่างชาติทั้งหลายที่ดังระดับ Worldwide เนี่ย อย่าลืมว่ามีประชาชนชาติอื่นๆ
เข้ามากดจองกับเรากันด้วยนะเออ…

(source: https://www.youtube.com/watch?v=qTDqA_FVTV8&ab_channel=NEWS1)

TCAS ก็ล่มบ่อยนะจ้ะ

แน่นอนว่าเคสนี้ไม่ได้เกิดกับแค่เว็บกดบัตรคอน แต่รวมไปถึงเว็บที่ต้องมีการรองรับโหลดมหาศาล พร้อมๆกัน ภายในช่วงเวลาระยะหนึ่ง เช่น เว็บสมัครสอบ เว็บฟังผลสอบ เหล่านี้ก็ล้วนเคยล่มทั้งนั้นจ้า

 

 ในเมื่อ Server รับคนได้ไม่พอ ก็ไปหาวิธีเพิ่มสิพี่!

คำถามต่อมาคือ แล้วใครจะยอมจ่าย? ในส่วนของวิธีการทำนั้นมีแน่นอนอยู่แล้วค่ะ ไม่งั้นเว็บที่ต้องมีความน่าเชื่อถือสูงๆอย่างธนาคารต่างๆเค้าจะอยู่กันได้ยังไง แต่ปัญหาก็คือ การทำให้เว็บไซต์สามารถออนได้ตลอดเวลา ฆ่าก็ไม่ตาย หรือทำให้มีความ High Availability (HA) มักต้องแลกมาด้วยค่าใช้จ่ายที่สูงขึ้นมาอีก ซึ่งบางองค์กรอาจจะมีข้อจำกัดในเรื่องความคุ้มค่าทางธุรกิจของเค้า เรื่องนี้ไม่มีใครตอบได้ นอกจากตัวผู้ให้บริการเอง ว่าเค้าให้ความสำคัญกับเรื่องนี้มากน้อยแค่ไหน หรือถ้าเกิดแล้วจะแก้ปัญหากันอย่างไร

 

 

 อย่าปล่อยให้ใครมาสาปเราก่อน!

หากเราเป็นแค่ผู้ใช้บริการ เราก็คงจะทำอะไรมากไม่ได้ นอกจากแจ้งปัญหาที่เกิดขึ้นไปยังผู้ให้บริการ และรอผู้ให้บริการทำการแก้ปัญหา

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

  • Cloud Service ย้ายมาใช้งานระบบคลาวด์ ซึ่งเราสามารถเลือกที่จะเพิ่ม ทรัพยากรสำหรับรองรับการเพิ่มของจำนวนผู้ใช้งาน แค่เฉพาะเวลาที่ต้องการได้
  • Professional Service สำหรับปรึกษาหรือช่วยเหลือในการนำเทคโนโลยีต่างๆมาช่วยในการทำ Clustering  เพื่อกระจาย Load ทำให้เว็บไซต์มี HA (High Availability)รับมือกับทุกสถานการณ์ได้ดียิ่งขึ้น

 

ติดตามข่าวสารใหม่ๆ หรือข้อมูลน่ารู้อีกมากมายได้ที่

  OpenLandscape Fanpage | https://www.facebook.com/openlandscapecloud/
  OpenLandscape Twitter | https://www.twitter.com/olscloud/
  OpenLandscape Cloud | https://openlandscape.cloud/

 

จบการศึกษาจากคณะเทคโนโลยีสารสนเทศ พระจอมเกล้าลาดกระบัง
มีความสนใจด้านเทคโนโลยี และมีความเชื่อว่า หากเราสามารถวางตัวเอง
ให้ก้าวทันเทคโนโลยีอยู่เสมอจะช่วยให้เราได้พัฒนาทั้งชีวิตของตนเอง
ครอบครัว และยังเป็นประโยชน์ต่อสังคมได้

Leave a Comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
*
*