ทำความรู้จักกับ Load Balacing ตอนที่ 1 แนะนำเบื้องต้น
Load Balacing
สวัสดีครับวันนี้ผมจะมาแนะนำเกี่ยวกับการทำงานของ Load Balancing ว่าคืออะไรและมีส่วนช่วยให้ระบบของเรามีสเถียรภาพที่ดีขึ้นได้หรือไม่ ผมอยากให้ทุกท่านลองนึกว่าถ้าเราสร้างเว็บไซต์ขายของขึ้นมา 1 เว็บไซต์ในช่วงแรกๆอาจจะมีผู้เข้ามาเยี่ยมชมร้านค้าเราวันละไม่กี่สิบคนหรือร้อยคน เว็บเซิร์ฟเวอร์ของเราก็สามารถให้บริการลูกค้าเราได้สบายๆใช่มั้ยครับ แต่พอเวลาผ่านไปร้านของเราเริ่มมีชื่อเสียงมากขึ้น ฐานลูกค้าเราก็มีมากขึ้นทำให้มีลูกค้าแวะเข้ามาเยี่ยมชมร้านเราในจำนวนหลายพันหลายหมื่นคนต่อวันซึ่งแน่นอนว่าเครื่องเซิร์ฟเราตอนนี้คงให้บริการลูกค้าที่มีจำนวนที่เยอะขนาดนี้ไม่ไหว เราจะแก้ปัญหานี้อย่างไร เปลี่ยนเครื่องเซิร์ฟเวอร์ใหม่หรือทำการอัพเกรดสเป็คให้แรงขึ้น แล้วเราจะมั่นใจได้อย่างไรว่าจะอัพเกรดให้สเป็คเครื่องแรงขนาดไหนถึงจะให้บริการลูกค้าที่เพิ่มขึ้นทุกวันได้ ดังนั้นการใช้เครื่องเซิร์ฟเวอร์เพียงเครื่องเดียวคงไม่ตอบโจทย์เราอย่างแน่นอนและการขยายสเป็คสามารถของเครื่องก็ต้องปิดให้บริการเว็บไซต์ของเราอีก ถ้าเป็นแบบนี้บ่อยๆคงไม่ดีแน่ใช่มั้ยครับ ภาพลักษณ์ของร้านก็ย่อมเสียไปด้วย แล้วเราจะแก้ปัญหานี้ได้อย่างไร คำตอบคือสิ่งที่ผมจะอธิบายต่อในบทความนี้นี่แหละครับ สิ่งนั้นคือ Load Balacing
Load Balancing คืออะไร ก่อนที่จะมีการใช้งาน Load Balacing การเรียกใช้งานเว็บไซต์ๆนึง DNS ก็จะทำการ resolve ไอพีของเครื่องเซิร์ฟเวอร์ที่ให้บริการผู้ใช้งานและตอบกลับไปด้วยหมายเลขไอพีนั้นให้แก่ผู้ที่เรียกใช้งานเว็บไซต์นั้นใช่มั้ยครับ สมมติผมมีเว็บไซต์ขายเสื้อผ้าชื่อ www.ihaveclothes.shop และเครื่องเซิร์ฟเวอร์ให้บริการเว็บไซต์ผมมีหมายเลขไอพีเป็น 10.20.30.10 เมื่อมีลูกค้าเข้าเว็บไซต์ DNS ก็จะตอบกลับด้วยหมายเลขไอพีดังกล่าว เมื่อผมเห็นว่าเครื่องเซิร์ฟเวอร์เริ่มให้บริการเว็บไซต์แก่ลูกค้าที่เพิ่มขึ้นไม่ไหว ผมก็ได้จัดหาเครื่องเซิร์ฟเวอร์เพื่อมาทำเว็บไซต์ของร้านเพิ่มขึ้นอีก 1 เครื่องเป็นหมายเลขไอพี 10.20.30.11 ปัญหาที่ตามมาคือเมื่อลูกค้าเรียกใช้เว็บไซต์ www.ihaveclothes.shop เจ้า DNS ก็จะยัง resolve เป็นหมายเลขไอพี 10.20.30.10 เหมือนเดิมแล้วเครื่องเซิร์ฟเวอร์ใหม่จะถูกเรียกใช้ได้ยังไง วิธีแก้ปัญหานี้คือการจัดหาเครื่อง Load Balancer มาใช้งานนั่นเอง วิธีการทำงานของมันคือเราจะสร้าง virtual IP ขึ้นมาซึ่งเป็นไอพีที่ชี้ไปยัง Load Balancer หลังจากนั้น Load Balancer ก็จะกระจายภาระงานไปยังเครื่องแม่ข่ายให้เราอีกที สมมติผมกำหนด virtual IP เป็น 10.20.30.100 ซึ่งผมก็จะไปแก้ที่ DNS ด้วยให้เว็บไซต์แม็พเข้ากับ virtual IP แทนที่ของเดิมที่เคยแม็พเป็น 10.20.30.10 และผมก็จะเพิ่มไอพีของเครื่องเซิร์ฟเวอร์ไว้ใน Load Balancer ทั้ง 2 เครื่องคือหมายเลขไอพี 10.20.30.10,10.20.30.11 เมื่อมีลูกค้าเรียกใช้งานเว็บไซต์ DNS ก็จะตอบกลับเป็นหมายเลขไอพี 10.20.30.100 ซึ่งก็คือเจ้า Load Balancer นั่นเอง เมื่อ Load Balancer ได้รับคำขอเข้าใช้งานเว็บไซต์ ก็จะกระจายงานต่อให้กับเครื่องเซิร์ฟเวอร์ 10.20.30.10 หรือ 10.20.30.11 ขึ้นอยู่กับว่า Load Balancerใช้อัลกอริทึมแบบไหน ลูกค้าก็สามารถเข้าใช้งานเว็บไซต์ได้อย่างราบรื่นเหมือนเดิม หลังจากนี้ผมก็สามารถเพิ่มจำนวนเครื่องเซิร์ฟเวอร์ได้เรื่อยๆหากมีการใช้งานเว็บไซต์ที่เพิ่มขึ้นจนเครื่องเซิร์ฟเวอร์ที่มีอยู่เดิมไม่สามารถให้บริการเว็บไซต์ได้ทันต่อความต้องการใช้งาน การทำงานคร่าวๆของ Load Balancer ก็จะเป็นประมาณนี้ครับ
Load Balancing มีประโยชน์อย่างไร อย่างที่ผมอธิบายการทำงานไปข้างต้นเราจะเห็นว่าประโยชน์ของมันมีอยู่หลายอย่าง เช่น ทำให้ระบบของเรามีความพร้อมใช้งานมากขึ้น เมื่อมีจำนวนเครื่องเซิร์ฟเวอร์ที่เพิ่มขึ้นก็ย่อมรับภาระงานได้เพิ่มขึ้น หรือถ้าเราต้องการทำการบำรุงรักษาเครื่องเซิร์ฟเวอร์ก็สามารถทำได้เลยโดยที่ไม่กระทบต่อการใช้งานของผู้ใช้ อีกทั้ง Load Balancer มีความสามารถที่จะกระจายงานได้อย่างดีเยี่ยมในกรณีที่เครื่องเซิร์ฟเวอร์เครื่องใดเครื่องนึงเกิดซอฟต์แวร์มีปัญหาระหว่างให้บริการก็สามารถส่งต่องานให้อีกเครื่องที่พร้อมกว่าได้ Load Balancer สามารถที่จะตรวจสอบการใช้งานทรัพยากรของเครื่องเซิร์ฟเวอร์ได้นั่นหมายความว่า Load Balancer สามารถให้ข้อมูลแก่ผู้ดูแลระบบได้ว่าเครื่องเซิร์ฟเวอร์ที่อยู่ตอนนี้เพียงพอต่อความต้องการใช้งานหรือไม่ หรือมีอยู่เยอะเกินความจำเป็น ทำให้การใช้งานเครื่องเซิร์ฟเวอร์เกิดประสิทธิภาพสูงสุด และลดค่าใช้จ่ายในการจัดหาอุปกรณ์เพิ่ม Load Balancer ยังมีความสามารถด้านความปลอดภัยเช่นการป้องกันการโจมตีแบบ DDOS หรือสามารถปิดกันเนื้อหาเว็บไซต์ที่ไม่เหมาะสม เป็นต้น
สรุปการนำ Load Balancer มาใช้งานในองค์กรจะตอบโจทย์ในเรื่องความพร้อมในการให้บริการแก่ผู้ใช้งานยิ่งถ้าเป็นองค์กรขนาดใหญ่ที่จะต้องให้บริการลูกค้าในจำนวนที่มากในแต่ละวัน การที่ไม่สามารถให้บริการได้เพียงแค่ช่วงเวลาสั้นๆก็ย่อมส่งผลต่อชื่อเสียงและภาพลักษณ์ขององค์กร ดังนั้นการออกแบบการใช้งาน Load Balancer ที่ดีก็จะสามารถทำให้มั่นใจได้ว่าระบบของเราจะพร้อมสำหรับให้บริการอยู่เสมอและสร้างข้อได้เปรียบที่เหนือกว่าคู่แข่งได้นั่นเอง ในตอนต่อไปผมจะมาแนะการติดตั้ง Load Balancer ที่เป็นซอฟต์แวร์สำหรับทดลองใช้งานก่อนที่จะวางแผนเพื่อจัดหามาใช้งานจริงๆ สำหรับบทความในตอนนี้ขอจบไว้เพียงเท่านี้ สวัสดีครับ