Podcast

จบปัญหาเว็บสมัครสอบระดับประเทศล่ม! ด้วยเทคโนโลยี Load Balancer จาก NIPA Cloud | CloudCast Central EP 4

Published : March 26, 2024Time : 1 min read

แก้เว็บสมัครสอบระดับประเทศล่ม! ด้วย Load balancer

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

ขอยกตัวอย่างเคสของสนามสอบระดับประเทศสนามหนึ่ง เป็นการสอบคัดเลือกบุคคลที่มีความรู้ความสามารถเข้ามาทำงานในหน่วยงานราชการ พูดง่ายๆคือ มาเป็นข้าราชการ เป็นสนามสอบที่มีผู้ที่สนใจ สมัครจำนวนมากถึง 400,000-500,000 คนต่อปี เวลาเปิดรับสมัครสอบทีก็จะมีคนสมัครกันเข้ามาราวแสนคนพร้อม ๆ กัน และถ้าหากว่าโครงสร้างของเว็บไซต์สมัครสอบที่ถูกเขียนขึ้นไม่ได้มีการ tuning เพื่อให้ระบบสามารถรองรับยูสเซอร์เป็นหลักแสนคนขึ้นไปได้ หรือไม่ได้มีการการ tuning เรื่องของ database เพื่อให้รองรับ load สูงๆ ได้ ล่มแน่นอน

ประกอบกับเวลาจะสมัครสอบ แล้วมีผู้สมัครประมาณ 60% จากแสนคน ที่มักจะกด F5 กันเพราะเว็บโหลดช้า หรือ รอนาน เพื่อที่จะให้เว็บรีเฟรช คนนึงอาจจะกด 10-20 ครั้ง ถ้าตีว่า 60% ของ 1 แสน คือ 6 หมื่นคน กด F5 สักคนละ 10 ครั้ง ลองคิดดูว่าเซิร์ฟเวอร์จะโหลดหนักมากแค่ไหน เว็บล่มได้ง่ายๆ เลย

แล้วสองปีที่ผ่านมา ทำไมเว็บของสนามสอบระดับประเทศนี้ถึงไม่ล่มเลย เรามีวิธีจัดการยังไงบ้าง?

การสร้างระบบที่ต้องรองรับ traffic ผู้ใช้งานที่เข้ามาจำนวนมหาศาลจะต้องมีการจัดการตั้งแต่ database ไปจนถึงการวางระบบ cloud infrastructure ที่สามารถรองรับ traffic ได้อย่างเพียงพอ รวมถึงการปรับ App ให้รองรับ F5 ไว้ด้วย

เริ่มต้นจากเรื่องของ database ที่ใช้ในการลงทะเบียน ต้องมีการทำ index เพื่อให้เว็บสามารถโหลดข้อมูลได้รวดเร็วขึ้น และต้องเป็น database ที่มีขนาดใหญ่เพียงพอ

ต่อมาก็จัดเตรียมโครงสร้างพื้นฐาน (infrastructure) ที่อยู่บน Cloud ในการวางระบบทั้งหมด โดยจะต้องเลือกใช้เครื่องเซิร์ฟเวอร์เสมือน (Virtual Machine) ขนาดต่าง ๆ เพื่อให้รองรับการใช้งานที่แตกต่างกัน ไม่ว่าจะเป็น database server, file server, payment server, VPN server, monitor server, load balance server และ load test server รวมถึงการเลือกใช้ network bandwidth ขนาด 100 Gbps เพื่อให้สามารถรองรับ traffic จำนวนมากได้อย่างราบรื่น

จากนั้นดำเนินการติดตั้ง firewall เพื่อป้องกันการโจมตี DDoS (Distributed Denial of Service) และมีการวางเส้นทางให้ traffic ที่เข้ามาทั้งหมด ให้ผ่านการกรอง เอา traffic ที่ไม่ดีทิ้งไป โดยใช้ firewall

และจะต้องมีการติดตั้ง load balancer ต่อจากชั้น firewall เพื่อกระจายโหลดให้เครื่องเซิร์ฟเวอร์แต่ละเครื่อง ทำให้เซิร์ฟเวอร์ไม่ต้องรองรับโหลดมากเกินไปจนหน่วงหรือล่มอย่างที่ผ่านมา โดย load balancer ควรมีการกำหนดการวิ่งของ traffic ให้เป็นวิธีการแบบ round robin (คำขอ (request) จะถูกส่งไปยังแต่ละเซิร์ฟเวอร์ตามลำดับ) สาเหตุที่ไม่ควรเลือกวิธีแบบ least connection (คำขอจะถูกส่งไปยังเซิร์ฟเวอร์ที่มีจำนวนการเชื่อมต่อที่ใช้งานน้อยที่สุด) ก็เพราะต้องการให้มีการคำนวณที่น้อยที่สุด เพื่อลดภาระงานของ load balancer server ทำให้มีความเสถียรและรวดเร็วมากขึ้น

สุดท้ายคือ การเก็บ source IP​ โดยคำขอของผู้ใช้งาน (user) จะถูกส่งไปยังเซิร์ฟเวอร์เดิมที่ผู้ใช้งานเข้ามาก่อนหน้านี้ เพื่อป้องกันการมี 2 เซสชันใน 1 ยูสเซอร์ อธิบายง่ายๆคือ การสมัครสอบและกรอกข้อมูลถึงขั้นชำระเงินแล้ว เกิดอินเทอร์เน็ตหลุด เมื่อผู้ใช้งานพยายามกลับเข้ามาหน้าเดิมใหม่ เซสชันก่อนหน้าจะหายไป และจะเริ่มต้นเซสชันใหม่ทันที การเข้ามาครั้งที่สองจะทำให้ยูสเซอร์มี 2 เซสชัน ต้องเริ่มต้นใหม่ เสียเวลาผู้ใช้งาน ทำให้เปลือง traffic โดยไม่จำเป็น ถ้าไม่มีการเก็บ source IP ไว้ ดังนั้น การเก็บ source IP ไว้ จะช่วยให้เราลดจำนวน traffic ลงได้อย่างมาก แต่ละคนมี session เดียวจนกว่าจะเสร็จ ซึ่งจะช่วยลดโอกาสเว็บไซต์ล่มได้อย่างแน่นอน

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

เมื่อออกแบบระบบ โดยใช้ Cloud Infrastructure จะทำให้ระบบสามารถ scale up ได้ ในช่วงที่มีคนเข้าเว็บเยอะๆ หรือ Peak Load และสามารถ scale down เพื่อลดค่าใช้จ่ายได้เมื่อ ถึงจุดหนึ่งที่คนลงทะเบียนเสร็จแล้ว เรียกว่า มีความยืดหยุ่นสูง

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

แล้วธุรกิจอะไรที่ควรมีการเตรียมพร้อมรับ Load ปริมาณมากแบบนี้?

อย่างเว็บที่จะมีโปรโมชันขายของ อีคอมเมิร์ซต่างๆ เช่น 11/11 12/12 ถ้าค่ายนึงจัดโปรขึ้นมา เที่ยงคืนปุ๊บ ทราฟฟิกทะลักเข้ามาเยอะทันที จะต้องมีการ scale up ที่รวดเร็ว โดยการใช้ Cloud infrastructure รับรองว่า ไม่ล่มแน่ครับ

สำหรับใครที่ฟังอยู่แล้ว อยากจะปรับปรุงระบบ Web App แต่ไม่รู้จะเริ่มต้นยังไง สามารถติดต่อทาง NIPA Cloud ได้เลยนะครับ เราสามารถให้คำปรึกษาได้ตั้งแต่การช่วยวางระบบ Cloud infrastructure การจัดการ database ตลอดจนทำระบบให้สามารถรองรับผู้ใช้งานจำนวนมหาศาลได้ แบบ unlimited เลยครับ

หากใครกำลังประสบปัญหาแบบนี้อยู่ อย่าปล่อยให้เกิดขึ้นอีกต่อไป เพราะ NIPA Cloud ช่วยคุณได้ครับ

อย่าลืมกดติดตามช่องทาง Podcast ของ CCC - CloudCast Central จะได้ไม่พลาดทุกการเคลื่อนไหวของเทคโนโลยีคลาวด์ที่

YouTube Chanel: NIPA Cloud

Facebook: Nipa.Cloud

TikTok: NIPA Cloud

AUTHOR
Author
NIPA Cloud
Writer

We—as a team of Thai people—are assured that Thai cloud is the absolute answer for driving your business in the digital era.