Horizontal Scaling อัตโนมัติ
คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี
ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง
ตรวจสอบชื่อเมนู ตัวเลือก และข้อกำหนดล่าสุดจากเนื้อหาภาษาอังกฤษในหน้าเดียวกันก่อนดำเนินการกับระบบจริง
วัตถุประสงค์
บทความนี้อธิบายการใช้งาน Horizontal Scaling อัตโนมัติ บน Ruk-Com Cloud PaaS โดยจัดลำดับขั้นตอนและจุดตรวจสอบสำหรับการนำไปใช้งานจริง
ก่อนเริ่มดำเนินการ
- เข้าสู่ระบบด้วยบัญชีที่มีสิทธิ์จัดการ Environment ที่เกี่ยวข้อง
- ตรวจสอบชื่อ Environment, Region และ Resource เป้าหมายก่อนบันทึกการเปลี่ยนแปลง
- สำรองข้อมูลหรือกำหนดแผนย้อนกลับก่อนแก้ไขระบบ Production
นอกเหนือจากVertical Scaling โดยอัตโนมัติแล้ว Ruk-Com Cloud PaaS ยังสามารถปรับขนาด Node ในแนวนอนโดยอัตโนมัติ โดยเปลี่ยนจำนวน Container ภายในLayer(Node กรุ๊ป) ตามโหลดที่เข้ามา ในกรณีนี้ Instance ทั้งหมดภายใน Layer เดียวกันจะถูกแบ่งสรรปันส่วนเท่าๆกันกับ Hardware เซตที่มีอยู่ (hosts) โดยใช้กฎ anti-affinity กล่าวคือ เมื่อมีการสร้าง Container ใหม่ Container นั้นจะถูกวางไว้ที่ Host โดยมีจำนวน Instance น้อยที่สุดจาก Layer เดียวกันและมีเครื่องหมายโหลดต่ำสุดซึ่งรับรองความน่าเชื่อถือและความพร้อมใช้งานสูงของโปรเจ็กต์ที่ Host

การปรับสเกลแนวนอนอัตโนมัติโดยการช่วยเหลือของทริกเกอร์ที่ปรับได้ซึ่งเป็นเงื่อนไขแบบกำหนดเองสำหรับการเพิ่ม Node (scale-out) และการถอนออก (scale-in) ขึ้นอยู่กับโหลดโดยจะวิเคราะห์การใช้ Resource ทุกนาทีโดยเฉลี่ย(สำหรับจำนวนนาทีที่ระบุภายในทริกเกอร์) เพื่อตัดสินใจว่าจำเป็นต้องมีการปรับจำนวน Node หรือไม่
พร้อมกันนี้สถิติจะถูกรวบรวมสำหรับ Layer ทั้งหมด ดังนั้นหากมี 3 Node ซึ่งโหลด 20%, 50% และ 20% ตามลำดับ ค่าเฉลี่ยที่คำนวณคือ 30% เงื่อนไขของการสเกล in/out เป็นอิสระ กล่าวคือ ระยะเวลาที่วิเคราะห์สำหรับช่วงเวลาหนึ่งจะไม่ถูกรีเซ็ตเมื่อดำเนินการอีกช่วงหนึ่ง
ในส่วนของด้านล่างนี้เราจะสรุปวิธีการ:
การเซตทริกเกอร์สำหรับ Auto Scaling
ในการกำหนดค่าทริกเกอร์สำหรับ Horizontal Scaling อัตโนมัติให้ทำตามขั้นตอนด้านล่าง
เพิ่มเติม:เมื่อมีการปรับขนาด Application Server ที่ผ่านการรับรอง (ไม่ใช่ Container Docker ที่กำหนดเอง) ใน environment ที่ไม่มี load balancers, NGINX จะถูกเพิ่มโดยอัตโนมัติ ในกรณีนี้หากคุณต้องการใช้โปรแกรมอื่นสำหรับ Application Server ของคุณ คุณควรเพิ่มโหลดบาลานซ์ด้วยตนเองในการปรับขนาดครั้งแรก
1. คลิกที่ปุ่มการตั้งค่าสำหรับ environment ที่ต้องการ

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

ใช้ปุ่มที่แผงเครื่องมือเพื่อจัดการ Horizontal Scaling อัตโนมัติสำหรับ environment:
- เพิ่ม- สร้างทริกเกอร์ใหม่
- แก้ไข- ปรับเปลี่ยนทริกเกอร์ที่มีอยู่
- ลบ- ลบทริกเกอร์ที่ไม่ต้องการ
- Refresh- อัปเดตรายการของการปรับขนาดทริกเกอร์
คลิกเพิ่มเพื่อดำเนินการ
3. เลือก environment layer ที่ต้องการจากรายการดรอปดาวน์และเลือกประเภท Resource เพื่อตรวจสอบผ่านหนึ่งในแท็บที่เหมาะสม (CPU, Memory, Network, Disk I/O, Disk IOPS)

เคล็ดลับ:
- Node เริ่มต้น (master) สามารถใช้เป็น Server จัดเก็บข้อมูลสำหรับแชร์ข้อมูลภายในทั้ง Layer รวมไปถึง Node ที่เพิ่มผ่าน Horizontal Scaling อัตโนมัติ
-การคำนวนขีดจำกัดของ CPU และ memory จะขึ้นอยู่กับจำนวนของ cloudlets ที่จัดสรร (หน่วยพิเศษของ Ruk-Com Cloud ซึ่งแทน CPU 400 MHz และ 128 MiB RAM ในเวลาเดียวกัน)
4. กราฟทางด้านขวาแสดงสถิติการใช้ Resource ที่เลือก คุณสามารถเลือกระยะเวลาที่ต้องการสำหรับแสดงข้อมูล (ไม่เกินหนึ่งสัปดาห์) โดยเลือกจากรายการดรอปดาวน์และหากจำเป็น คุณสามารถเปิด/ปิดฟังก์ชันRefresh อัตโนมัติของสถิติได้

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

การกำหนดค่าของทั้งสองทำงานคล้ายๆกัน:
- เมื่อโหลดมากกว่า(น้อยกว่า)กว่า-ขีดจำกัดบน (ล่าง) เป็นเปอร์เซ็นต์สำหรับการโหลดเฉลี่ย (เช่น เรียกใช้ทริกเกอร์หากเกิน)
- เคล็ดลับ:ค่าที่ต้องการสามารถระบุได้โดยใช้แถบเลื่อนที่เหมาะสมบนกราฟ
- ค่าทริกเกอร์ 100% จะปิดใช้งานเพิ่ม Nodeโดยอัตโนมัติ และ 0% -ลบ Node
- ค่าขั้นต่ำที่อนุญาตระหว่างเงื่อนไขการเพิ่มและลบ Node คือ 20%
- สามารถเลือกหน่วย Mbps สำหรับทริกเกอร์เครือข่ายแทนเปอร์เซ็นต์
- เราแนะนำให้ตั้งค่าการโหลดเฉลี่ยสำหรับทริกเกอร์ Add Nodes ให้สูงกว่าเกณฑ์ 50% เพื่อหลีกเลี่ยงการปรับสเกลที่ไม่จำเป็น (เช่น Resource/เงินทุนโดยเปล่าประโยชน์)
- อย่างน้อยที่สุด -จำนวนนาทีที่คำนวณค่าเฉลี่ยการบริโภค (สูงสุดหนึ่งชั่วโมงด้วยขั้นตอน 5 นาที เช่น 1, 5, 10, 15 เป็นต้น)
- ขยายขนาดออก (ใน)- จำนวน Node สูงสุด (ขั้นต่ำ) สำหรับ Layer ที่สามารถกำหนดค่าได้เนื่องจาก Horizontal Scaling อัตโนมัติ
- ปรับขนาดตาม- จำนวน Node ที่จะเพิ่ม/ลบในแต่ละครั้งเมื่อทริกเกอร์ทำงาน
เมื่อกำหนดค่าทริกเกอร์เราแนะนำให้คำนึงถึงโหมดการปรับขนาดของ Layer ด้วย ตัวอย่างเช่น คุณควรตั้งค่าเปอร์เซ็นต์การโหลดที่ต่ำกว่าในทริกเกอร์ Add Nodes สำหรับโหมด stateful เนื่องจากการ Clone เนื้อหาต้องใช้เวลา (โดยเฉพาะสำหรับ Container ที่มีข้อมูลจำนวนมาก) และคุณสามารถเข้าถึง Resource ที่จำกัดก่อนที่จะสร้าง Node ใหม่
6. คุณจะได้รับการแจ้งเตือนทางอีเมลโดยอัตโนมัติเกี่ยวกับกิจกรรมทริกเกอร์ Horizontal Scaling อัตโนมัติที่กำหนดค่าไว้ตามค่าเริ่มต้น อย่างไรก็ตาม หากไม่ต้องการรับอีเมลคุณสามารถปิดใช้งานได้ด้วยตัวสลับส่งการแจ้งเตือนทางอีเมลเปิด/ปิด

7. ในส่วนของด้านล่าง Platform ประกอบด้วยปุ่มต่อไปนี้:
- เลิกเปลี่ยนแปลง- กลับสู่สถานะก่อนหน้าการเปลี่ยนแปลง (สำหรับการแก้ไขเท่านั้น)
- ปิด- ออกจากการตั้งค่าโดยไม่มีการเปลี่ยนแปลง
- สมัคร (เพิ่ม)- ยืนยันการเปลี่ยนแปลงสำหรับทริกเกอร์

การดูประวัติการดำเนินการทริกเกอร์
คุณสามารถดูประวัติของการดำเนินการปรับสเกลทริกเกอร์สำหรับ environment โดยเฉพาะ
ในตัวอย่างด้านล่างเราจะใช้ high load เป็นเวลา 5 นาที (ดูสถิติการใช้ RAM ในภาพด้านล่าง) บน Application Server ที่มีการกำหนดค่าทริกเกอร์ต่อไปนี้:
- เพิ่ม Nodeเมื่อค่าเฉลี่ย RAM load มากกว่า 65% เป็นเวลาอย่างน้อย 5 นาที
- ลบ Nodeเมื่อค่าเฉลี่ย RAM load น้อยกว่า 20% เป็นเวลาอย่างน้อย 10 นาที

มาดู Horizontal Scaling อัตโนมัติกัน:
1. ไปที่ส่วนการตั้งค่า >ทำ Horizontal Scaling อัตโนมัติ คลิกปุ่มประวัติศาสตร์

นอกจากนี้คุณสามารถเลือกระยะเวลาเพื่อแสดงรายการทริกเกอร์ได้ผ่านตัวเลือกจากและถึง
2. รายละเอียดของแต่ละรายการมีดังนี้:
- วันที่วันที่และเวลาของการดำเนินการทริกเกอร์
- การดำเนินการดำเนินการ (เพิ่มหรือลบ Node) แล้ว
- Nodeประเภท Node ที่ใช้กับการปรับขนาด
- ข้อมูลข้อมูลเกี่ยวกับเงื่อนไขการดำเนินการทริกเกอร์

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