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