Application Delivery Controller Evolution : Load Balancer


22/Oct/2021
Application Delivery Controller

ถ้าเราจะทำความรู้จักกับ Application Delivery Controller ทั้งที เรามาทำความรู้จักกันตั้งแต่ยุคเริ่มต้นกันเลยดีกว่าค่ะ วันนี้ผู้เขียนจะแนะนำให้รู้จักกับวิวัฒนาการของ Application Delivery Controller กันว่ามีความเป็นมาอย่างไรบ้าง มีแนวโน้มในการพัฒนาอย่างไร มีข้อดีต่อระบบ Network ของเราอย่างไร โดยเริ่มจากยุคเริ่มต้นของ Application Delivery Controller ได้พัฒนามาจาก Load Balancer นั่นเอง เพราะฉะนั้นเรามาทำความรู้จักกับ Load Balancer กันก่อนเลยค่ะ ไปกันเลย

Load Balancer ก็คือ ระบบที่ทำหน้าที่กระจาย Request จาก User หรือ Client ไปยังเครื่อง Server ของระบบที่ให้บริการ เพื่อลดภาระของเครื่อง Server และลดเวลา Downtime ของระบบหากเกิดปัญหาจากการใช้งานของ User ปริมาณมากในเวลาเดียวกัน พูดง่าย ๆ คือ ตัว Load Balancer ทำหน้าที่เป็นหัวหน้ากลุ่มในการกระจายการทำงานให้เพื่อน ๆ ในกลุ่มซึ่งก็คือตัว Server นั่นเองค่ะ

โดยทั่วไป Load Balancer ถูกจัดอยู่ในกลุ่ม Network Layer 7 และ Network Layer 4 ขึ้นอยู่กับ Data ที่พบใน Layer หากเป็น Layer 4 จะเป็น Data ที่เป็น IP, TCP, FTP, UDP ซึ่งเป็น Network และ Transport Layer Protocols ส่วน Layer 7 นั้นจะเป็น Data ที่เป็น Application Layer Protocols ก็คือ HTTP ค่ะ

แล้วขั้นตอนการทำงาน หรือ Algorithms ที่เจ้า Load Balancer ใช้ในการกระจายการทำงานให้ Server นั้นมีการทำงานอย่างไร เราไปดูกันค่ะ

1. Least Connection: Load Balancer จะหาเครื่อง Server ที่ว่างงานมากที่สุด (Transaction น้อยที่สุด) เมื่อเจอแล้วก็จะส่ง Request จาก User ให้เครื่อง Server เครื่องนั้นทำงานตอบสนอง User ต่อไป (เป็น Algorithms default ของ Load Balancer)

2. Round Robin: จะเป็นการส่ง Traffic หรือ Request ของ User ไปยัง Server วนไปเรื่อย ๆ เช่น ระบบของเรามีเครื่อง Server อยู่ 2 เครื่อง เมื่อมี Request ที่ 1 เข้ามา Request นี้จะถูกส่งไปยัง Server เครื่องที่ 1 เมื่อมี Request ที่ 2 เข้ามา Request ที่ 2 นี้จะถูกส่งไปยัง Server เครื่องที่ 2 และเมื่อมี Request ที่ 3 เข้ามา ก็จะถูกส่งไปยัง Server เครื่องที่ 1 วนแบบนี้ไปเรื่อย ๆ

3. Random Selection: ใช้วิธีการกระจายงาน หรือ Request ไปยังเครื่อง Backend (คือเครื่องที่ทำหน้าที่รับ Request และ Responding กับ Load Balancer เช่น Web Server) แบบสุ่ม 4. Source IP Hashing: ใช้วิธีการนำ Source IP เข้าไปทำ Hash Function แล้วเราจะได้ IP ที่จะไปต่อ ก็คือ Hash Function จะเป็นตัวบอกว่า Request ที่เข้ามาจะได้ไปที่ Server ตัวไหนนั่นเองค่ะ ณ ที่นี้่ ผู้เขียนขอยกตัวอย่างมาให้รู้จักการทำงานกัน

4 Algorithms นะคะ เพื่อให้พอเห็นภาพการทำงานของตัว Load Balancer ค่ะ ยังมี Algorithms อื่น ๆ อีกมากมายที่มีการนำมาใช้งาน ขึ้นอยู่กับ Product และ Solution ที่ออกแบบให้เหมาะสมกับระบบนั้น ๆ ค่ะ

ประเภทของ Load Balancer ผู้เขียนขอแบ่งตามรูปแบบของ Product นะคะ

1. Hardware: เป็นตัวอุปกรณ์ Load Balancer ที่นำมาติดตั้งเข้ากับ Network ที่ใช้งาน

2. Software: จะเป็น Load Balancer ในรูปแบบของ software ที่นำไป install ลงบนระบบ Server อีกที Product Load Balancer ในตลาดมีให้เลือกมาก ขึ้นอยู่กับ Requirement งบประมาณของแต่ละองค์กร เราสามารถที่จะเลือก Design ให้เหมาะสมได้ แน่นอนว่า Product ที่มีให้เลือกนั้นจะต้องมี F5 ซึ่งเป็นผู้นำในตลาดมาอย่างยาวนาน, A10, Citrix, Radware และ kemp เป็นต้น ประโยชน์ของการมี Load Balancer ในระบบ

  • High Ability: ช่วยให้ระบบสามารถทำงาน หรือให้บริการได้อย่างมีประสิทธิภาพมากขึ้น เนื่องจากมีการจัดการ Transaction จาก User ที่ Request เข้ามายังระบบเป็นอย่างดีด้วย Load Balancer ทำให้ช่วยลดอาการ Server ล่ม ช่วยลดเวลา Down time หรือสร้างความ Seamless ในการใช้งานให้กับ User
  • เราสามารถทำการ Maintenance Server ขอระบบได้โดยที่ User ไม่ได้รับผลกระทบขณะที่กำลังใช้งาน เรียกได้ว่ามีทั้ง Availability และ Scalability เลยทีเดียว

ขอบคุณข้อมูลประกอบบทความ: