Web Cluster@VirginThailand

คุณเคยรู้หรือไม่ว่าทุกวันนี้เว็บไซต์ที่ท่านเปิดเข้าเยี่ยมชมนั้น อาจจะไม่ได้ให้บริการโดยเครื่องคอมพิวเตอร์เครื่องเดียว หรือในอีกนัยหนึ่งคือมีเครื่องคอมพิวเตอร์จำนวนหลายเครื่องคอย ให้บริการท่าน พอพูดถึงประเด็นนี้หลายท่านคงจะนึกถึงกูเกิล Search engine ยอดนิยม ถูกต้องแล้วครับ กูเกิลจัดเป็นรูปแบบของ “เว็บคลัสเตอร์” แต่ถ้าเราบอกว่าในประเทศไทยก็มีบางเว็บไซต์เหมือนกันที่ใช้ระบบเว็บคลัสเตอร์คอยให้บริการผู้ที่เข้าเยี่ยมชม หนึ่งในนั้นคือ www.virginradiothailand.com เว็บไซต์คลื่นวิทยุยอดนิยม ก่อนอื่นเรามาทำความเข้าใจกันก่อนว่าระบบเว็บคลัสเตอร์นี้คืออะไร

Web Cluster

ระบบเว็บคลัสเตอร์ คือการนำเว็บเซิร์ฟเวอร์ (Web server) หลายเครื่องมาเชื่อมต่อบนเครือข่ายแลน (Local Area Network) ดังภาพที่ 1 และจัดการให้เว็บเซิร์ฟเวอร์สามารถให้บริการเอกสารเว็บร่วมกันได้ เพื่อเพิ่มประสิทธิภาพของระบบให้สูงขึ้นตามจำนวนเว็บเซิร์ฟเวอร์ที่มีอยู่ในระบบ

A generic square placeholder image with rounded corners in a figure.
Web Cluster

ภายในระบบเว็บคลัสเตอร์มีส่วนประกอบหลัก ๆ ดังต่อไปนี้

  • เว็บเซิร์ฟเวอร์ ทำหน้าที่หลักในการประมวลผลการบริการ
  • ตัวกระจายงาน (Load Balancer) ทำหน้าที่รับการร้องขอบริการ (Request) จากผู้ใช้บริการ (Client) และกระจายคำร้องขอนั้น ให้กับเว็บเซิร์ฟเวอร์ในระบบ
  • ส่วนประกอบอื่นที่ขึ้นอยู่กับการออกแบบระบบ เช่น เซิร์ฟเวอร์สำหรับจัดการระบบ (Management Server) ทำหน้าที่ตรวจสอบการทำงาน หรือบริหารจัดการระบบ เป็นต้น

Operation

เริ่มต้นด้วยเมื่อมีการร้องขอไฟล์เว็บจากไคลเอ็น การร้องขอจะติดต่อเข้ามาที่เครื่อง Load Balancer ซึ่งจะทำหน้าที่ในการกระจายการร้องขอให้เครื่องเว็บเซิร์ฟเวอร์ในระบบ เพื่อประมวลผลและส่งข้อมูลตอบกลับ (Response) ไปยังผู้ร้องขอโดยตรง ด้วยการทำงานในลักษณะดังกล่าว จะทำให้ภาระงานถูกเฉลี่ยกันออกไปยังเว็บเซิร์ฟเวอร์ในระบบ จึงสามารถให้รองรับปริมาณการใช้งานจากผู้ใช้งานจำนวนมากได้

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

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

Virgin Radio

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

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

A generic square placeholder image with rounded corners in a figure.
Virgin Radio Web Cluster

ระบบเว็บคลัสเตอร์ที่เวอร์จิ้นเรดิโอ เป็นระบบคลัสเตอร์ขนาด 6 เครื่อง ดังภาพที่ 2 ทำงานบนระบบปฏิบัติการลีนุกซ์ ซึ่งจัดเข้าตามรูปแบบที่นิยมเรียกกันว่า LAMP ซึ่งก็คือการใช้งานซอฟต์แวร์เสรีจาก 4 ค่ายด้วยกันคือ Linux Apache MySQL และ PHP และสร้างสภาวะของเว็บคลัสเตอร์ด้วยซอฟต์แวร์ Linux Virtual Server (LVS) โดยระบบได้แบ่งหน้าที่การทำงานเป็น 2 ส่วนคือ

  1. เครื่องทำหน้าที่เป็นผู้กระจายงาน จำนวน 2 เครื่อง โดยเครื่องหนึ่งให้บริการ อีกเครื่องหนึ่ง stand by เพื่อจัดสร้างให้ระบบมีคุณสมบัติคงอยู่สูง (High-Availability)
  2. เครื่องทำหน้าที่ให้บริการเว็บ จำนวน 4 เครื่อง

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

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

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