Automatic Horizontal Scaling

นอกเหนือจากการปรับขนาดแนวตั้งโดยอัตโนมัติแล้ว Ruk-Com Cloud PaaS ยังสามารถปรับขนาดโหนดในแนวนอนโดยอัตโนมัติ โดยเปลี่ยนจำนวนคอนเทนเนอร์ภายในเลเยอร์ (nodeGroup) ตามโหลดที่เข้ามา ในกรณีนี้อินสแตนซ์ทั้งหมดภายในเลเยอร์เดียวกันจะถูกแบ่งสรรปันส่วนเท่าๆกันกับฮาร์ดแวร์เซตที่มีอยู่ (hosts) โดยใช้กฎ anti-affinity กล่าวคือ เมื่อมีการสร้างคอนเทนเนอร์ใหม่ คอนเทนเนอร์นั้นจะถูกวางไว้ที่โฮสต์โดยมีจำนวนอินสแตนซ์น้อยที่สุดจากเลเยอร์เดียวกันและมีเครื่องหมายโหลดต่ำสุดซึ่งรับรองความน่าเชื่อถือและความพร้อมใช้งานสูงของโปรเจ็กต์ที่โฮสต์

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

พร้อมกันนี้สถิติจะถูกรวบรวมสำหรับเลเยอร์ทั้งหมด ดังนั้นหากมี 3 โหนดซึ่งโหลด 20%, 50% และ 20% ตามลำดับ ค่าเฉลี่ยที่คำนวณคือ 30% เงื่อนไขของการสเกล in/out เป็นอิสระ กล่าวคือ ระยะเวลาที่วิเคราะห์สำหรับช่วงเวลาหนึ่งจะไม่ถูกรีเซ็ตเมื่อดำเนินการอีกช่วงหนึ่ง

ในส่วนของด้านล่างนี้เราจะสรุปวิธีการ:

การเซตทริกเกอร์สำหรับการปรับขนาดอัตโนมัติ

ในการกำหนดค่าทริกเกอร์สำหรับการปรับขนาดแนวนอนอัตโนมัติให้ทำตามขั้นตอนด้านล่าง

เพิ่มเติม: เมื่อมีการปรับขนาดแอปพลิเคชันเซิร์ฟเวอร์ที่ผ่านการรับรอง (ไม่ใช่คอนเทนเนอร์ Docker ที่กำหนดเอง) ใน environment ที่ไม่มี load balancers, NGINX จะถูกเพิ่มโดยอัตโนมัติ ในกรณีนี้หากคุณต้องการใช้โปรแกรมอื่นสำหรับแอปพลิเคชันเซิร์ฟเวอร์ของคุณ คุณควรเพิ่มโหลดบาลานซ์ด้วยตนเองในการปรับขนาดครั้งแรก

1. คลิกที่ปุ่ม Setting สำหรับ environment ที่ต้องการ

2. ในแถบการตั้งค่าที่เปิดขึ้นให้ไปที่ส่วนของ Auto Horizontal Scaling

ใช้ปุ่มที่แผงเครื่องมือเพื่อจัดการการปรับขนาดแนวนอนอัตโนมัติสำหรับ environment:

  • Add – สร้างทริกเกอร์ใหม่
  • Edit – ปรับเปลี่ยนทริกเกอร์ที่มีอยู่
  • Remove – ลบทริกเกอร์ที่ไม่ต้องการ
  • Refresh – อัปเดตรายการของการปรับขนาดทริกเกอร์

คลิก Add เพื่อดำเนินการ

3. เลือก environment layer ที่ต้องการจากรายการดรอปดาวน์และเลือกประเภททรัพยากรเพื่อตรวจสอบผ่านหนึ่งในแท็บที่เหมาะสม (CPU, Memory, Network, Disk I/O, Disk IOPS)

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

-การคำนวนขีดจำกัดของ CPU และ memory จะขึ้นอยู่กับจำนวนของ cloudlets ที่จัดสรร (หน่วยพิเศษของ Ruk-Com Cloud ซึ่งแทน CPU 400 MHz และ 128 MiB RAM ในเวลาเดียวกัน)

4. กราฟทางด้านขวาแสดงสถิติการใช้ทรัพยากรที่เลือก คุณสามารถเลือกระยะเวลาที่ต้องการสำหรับแสดงข้อมูล (ไม่เกินหนึ่งสัปดาห์) โดยเลือกจากรายการดรอปดาวน์และหากจำเป็น คุณสามารถเปิด/ปิดฟังก์ชัน Auto Refresh ของสถิติได้

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

5. ทริกเกอร์แต่ละตัวมีเงื่อนไขการ Add และ Remove Nodes ซึ่งสามารถเปิดใช้งานได้ด้วยการทำเครื่องหมายที่ช่องต่อไปนี้

การกำหนดค่าของทั้งสองทำงานคล้ายๆกัน:

  • When loading is more (less) than – ขีดจำกัดบน (ล่าง) เป็นเปอร์เซ็นต์สำหรับการโหลดเฉลี่ย (เช่น เรียกใช้ทริกเกอร์หากเกิน)
  • เคล็ดลับ: ค่าที่ต้องการสามารถระบุได้โดยใช้แถบเลื่อนที่เหมาะสมบนกราฟ

  • ค่าทริกเกอร์ 100% จะปิดใช้งาน Add Nodes โดยอัตโนมัติ และ 0% – Remove Nodes

  • ค่าขั้นต่ำที่อนุญาตระหว่างเงื่อนไขการเพิ่มและลบโหนดคือ 20%

  • สามารถเลือกหน่วย Mbps สำหรับทริกเกอร์เครือข่ายแทนเปอร์เซ็นต์

  • เราแนะนำให้ตั้งค่าการโหลดเฉลี่ยสำหรับทริกเกอร์ Add Nodes ให้สูงกว่าเกณฑ์ 50% เพื่อหลีกเลี่ยงการปรับสเกลที่ไม่จำเป็น (เช่น ทรัพยากร/เงินทุนโดยเปล่าประโยชน์)
  • For at least – จำนวนนาทีที่คำนวณค่าเฉลี่ยการบริโภค (สูงสุดหนึ่งชั่วโมงด้วยขั้นตอน 5 นาที เช่น 1, 5, 10, 15 เป็นต้น)
  • Scale out (in) – จำนวนโหนดสูงสุด (ขั้นต่ำ) สำหรับเลเยอร์ที่สามารถกำหนดค่าได้เนื่องจากการปรับขนาดแนวนอนอัตโนมัติ
  • Scale by – จำนวนโหนดที่จะเพิ่ม/ลบในแต่ละครั้งเมื่อทริกเกอร์ทำงาน

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

6. คุณจะได้รับการแจ้งเตือนทางอีเมลโดยอัตโนมัติเกี่ยวกับกิจกรรมทริกเกอร์การปรับขนาดแนวนอนอัตโนมัติที่กำหนดค่าไว้ตามค่าเริ่มต้น อย่างไรก็ตาม หากไม่ต้องการรับอีเมลคุณสามารถปิดใช้งานได้ด้วยตัวสลับ Send Email Notifications ON/OFF

7. ในส่วนของด้านล่างแพลตฟอร์ม ประกอบด้วยปุ่มต่อไปนี้:

  • Undo Changes – กลับสู่สถานะก่อนหน้าการเปลี่ยนแปลง (สำหรับการแก้ไขเท่านั้น)
  • Close – ออกจากการตั้งค่าโดยไม่มีการเปลี่ยนแปลง
  • Apply (Add) – ยืนยันการเปลี่ยนแปลงสำหรับทริกเกอร์
เลือกตัวเลือกที่จำเป็นเพื่อสิ้นสุดการสร้างทริกเกอร์ (การปรับเปลี่ยน)

การดูประวัติการดำเนินการทริกเกอร์

คุณสามารถดูประวัติของการดำเนินการปรับสเกลทริกเกอร์สำหรับ environment โดยเฉพาะ

ในตัวอย่างด้านล่างเราจะใช้ high load เป็นเวลา 5 นาที (ดูสถิติการใช้ RAM ในภาพด้านล่าง) บนเซิร์ฟเวอร์แอปพลิเคชันที่มีการกำหนดค่าทริกเกอร์ต่อไปนี้:

  • add node เมื่อค่าเฉลี่ย RAM load มากกว่า 65% เป็นเวลาอย่างน้อย 5 นาที
  • remove node เมื่อค่าเฉลี่ย RAM load น้อยกว่า 20% เป็นเวลาอย่างน้อย 10 นาที

มาดูการปรับขนาดแนวนอนอัตโนมัติกัน:

1. ไปที่ส่วน Settings > Auto Horizontal Scaling คลิกปุ่ม History

นอกจากนี้คุณสามารถเลือกระยะเวลาเพื่อแสดงรายการทริกเกอร์ได้ผ่านตัวเลือก From และ To

2. รายละเอียดของแต่ละรายการมีดังนี้:

  • Date วันที่และเวลาของการดำเนินการทริกเกอร์
  • Action ดำเนินการ (เพิ่มหรือลบโหนด) แล้ว
  • Nodes ประเภทโหนดที่ใช้กับการปรับขนาด
  • Info ข้อมูลเกี่ยวกับเงื่อนไขการดำเนินการทริกเกอร์

นอกจากนี้ เมื่อวางเมาส์เหนือข้อมูลที่บันทึกคุณสามารถตรวจสอบ Loading Value เพิ่มเติม (การใช้ทรัพยากรในช่วงเวลาของการดำเนินการ) และ Node Count (จำนวนผลลัพธ์ของโหนด)

การเพิ่มและลบโหนดทริกเกอร์เป็นอิสระจากกัน ดังนั้นเงื่อนไขการลบออก (โหลดเฉลี่ยน้อยกว่า 20% เป็นเวลาอย่างน้อย 10 นาที) จะไม่ถูกรีเซตและจะทำการตรวจสอบต่อไปแม้จะเพิ่มโหนดใหม่แล้วก็ตาม โดยวิธีการดังกล่าวช่วยให้สามารถตรวจจับค่าเฉลี่ยโหลดที่เพียงพอในช่วงเวลาที่กำหนดได้รวดเร็วยิ่งขึ้นแนะนำให้ตั้งค่าที่แตกต่างที่ระหว่าง scaling out และ scaling in limits เพื่อหลีกเลี่ยงการเปลี่ยนแปลง topology ที่เกิดขึ้นบ่อย

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