Horizontal Scaling inside the Cloud: Multi Nodes

การโฮสต์แอปลิเคชันของคุณจะยืดหยุ่นมากขึ้นด้วย Ruk-Com Cloud PaaS นอกจากการปรับขนาดแบบ auto-vertical แล้วคุณยังสามารถเพิ่ม/ลดจำนวนเซิร์ฟเวอร์ใน environment ของคุณโดยอัตโนมัติหรือปรับเปลี่ยนด้วยตนเอง

การปรับขนาดเองนั้นค่อนข้างง่าย – เพียงเปิด environment topology wizard และใช้ปุ่ม “+” และ “-” ที่เหมาะสมหรือพิมพ์ตัวเลขที่ต้องการในแผงควบคุมส่วนกลาง นอกจากนี้คุณสามารถใช้แถบเลื่อนซึ่งจะปรากฏขึ้นโดยอัตโนมัติเมื่อทำการปรับเปลี่ยนใดๆ

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

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

Scaling Modes

เริ่มต้นด้วยแพลตฟอร์มเวอร์ชัน 5.5 สามารถเลือกโหมดการปรับขนาดที่ต้องการสำหรับ environment ใหม่ในระหว่างการสร้างหรือปรับเปลี่ยนโหมดที่มีอยู่ผ่าน topology wizard:

  • Stateless – สร้างโหนดใหม่พร้อมกันทั้งหมดจาก image template

  • Stateful – คัดลอกระบบไฟล์ของคอนเทนเนอร์หลักไปยังโหนดใหม่ตามลำดับ

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

ในขณะที่การใช้โหมด stateless ควรระวังว่าโหนดใหม่ภายในเลเยอร์ไม่มีฟีเจอร์ต่อไปนี้:

  • deployments – โปรเจกต์ contexts ที่มีอยู่จะไม่ถูกถ่ายโอน
  • custom SSL – ใบรับรอง SSL และการกำหนดค่าจะไม่ถูกคัดลอก
  • mount points – การ mounts แบบกำหนดเองจะถูกย้ายก็ต่อเมื่อมีการกำหนดค่า volume ที่เหมาะสม
  • add-ons – โปรแกรมเสริมต่างๆที่ติดตั้งบนเลเยอร์จะไม่สามารถใช้ได้

เคล็ดลับ: การถ่ายโอนไฟล์แบบกำหนดเองสำหรับโหมด stateless สามารถทำได้ด้วยตนเองหรือกำหนดค่าผ่านระบบอัตโนมัติของ Cloud Scripting (เช่นการใช้ onBefore- และ onAfterScaleOut)

ตามคุณสมบัติเฉพาะเหล่านี้ Ruk-Com Cloud PaaS แนะนำโหมดการสเกลแบบ stateful (ใช้โดยค่าเริ่มต้น) สำหรับ load balancer, application server และ VPS stacks ในกรณีที่จำเป็นคุณสามารถกำหนดโหมดการปรับขนาดสำหรับโหนดของคุณใหม่ได้ตลอดเวลาผ่าน topology wizard

รายละเอียดการปรับขนาดแบบ Horizontal

จำนวนสูงสุดของเซิร์ฟเวอร์ประเภทเดียวกันภายใน environment layer เดียวจะขึ้นอยู่กับการตั้งค่าของผู้ให้บริการโฮสต์โดยเฉพาะ (ปกติจำกัด 16 nodes) คุณสามารถตรวจสอบค่าที่แน่นอนได้ภายในเฟรม Quotas & Pricing > Account Limits

เซิร์ฟเวอร์ที่เพิ่มใหม่ทั้งหมดถูกสร้างขึ้นที่ hardware nodes ที่แตกต่างกันซึ่งให้ความน่าเชื่อถือและความพร้อมใช้งานสูง

ในแต่ละ environment node (layer) จะมีชื่อเฉพาะ ซึ่งหากต้องการคุณสามารถปรับเปลี่ยนได้ด้วยตนเองในกรณีที่ภายในมีหลายอินสแตนซ์ โดยชื่อเลเยอร์จะประกอบด้วย xN (โดยที่ N คือหมายเลขโหนดที่มีอยู่จริง)

การมีโหนดประเภทเดียวกันหลายโหนดภายในเลเยอร์ทำให้สามารถจัดการในเวลาเดียวกันได้ synchronous ดังนั้นคุณสามารถกำหนดค่าได้พร้อมกัน การตรวจสอบ logs และ statistics, restart หรือ redeploy ผ่านไอคอนที่เกี่ยวข้องต่อไปนี้:

เพื่ออำนวยความสะดวกในการทำงานร่วมกันกับเซิร์ฟเวอร์จำนวนมากที่เป็นประเภทเดียวกัน Ruk-Com Cloud ยังอนุญาตให้ทำเครื่องหมายที่โหนดโดยเฉพาะด้วยป้ายกำกับที่เหมาะสม เช่น เพื่อกำหนดอินสแตนซ์ master และ slave ในคลัสเตอร์ DB

เพียงคลิกสองครั้งที่ค่าเริ่มต้น Node ID: xxx (หรือวางเมาส์เหนือโหนดแล้วคลิกไอคอนดินสอ) เพื่อระบุชื่ออื่นที่ต้องการ

ข้อมูลเพิ่มเติมเกี่ยวกับฟีเจอร์นี้สามารถดูเพิ่มเติมได้ที่เอกสาร Environment Aliases

การปรับขนาดสแต็กประเภทต่างๆ ให้พิจารณาข้อมูลเฉพาะต่อไปนี้:

  • เมื่อปรับขนาดอินสแตนซ์ของแอปพลิเคชันเซิร์ฟเวอร์ load balancer node จะถูกเพิ่มโดยอัตโนมัติใน environment topology
  • หากเปิดใช้งานตัวเลือก high-availability สำหรับแอปพลิเคชันเซิร์ฟเวอร์ที่จำเป็นต่อ NGINX load balancer จะไม่สามารถปรับขนาดแบบ horizontal ได้ (หากมี NGINX หลายโหนดอยู่ก่อน โหนดเหล่านั้นจะถูกลดขนาดโดยอัตโนมัติเป็นอินสแตนซ์เดียว)
  • เมื่อปรับขนาด VPS nodes แต่ละโหนดจะมี public IP ที่แยกต่างหากแนบมาด้วย
  • Maven เป็นโหนดเดียวที่ไม่สามารถปรับขนาดแบบ horizontal ได้ (เนื่องจากไม่มีจุดในการดำเนินการดังกล่าว)

ตอนนี้คุณได้ทราบแล้วว่าการปรับขนาดอินสแตนซ์แบบ horizontal ใน Ruk-Com Cloud PaaS แล้วและทราบถึงการเฉพาะอย่างง่าย นอกจากนี้คุณสามารถกำหนดค่าการปรับขนาดโหนดอัตโนมัติเพื่อการขัดขวางโหลดสูงอย่างราบรื่นโดยไม่ต้องจ่ายมากเกินไปสำหรับทรัพยากรที่ไม่ได้ใช้งาน

การจัดการโหนดภายในเลเยอร์

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

  • ส่วนของ Horizontal Scaling ใน topology wizard – เข้าถึงได้โดยใช้ปุ่ม Change Environment Topology ถัดจาก environment ที่ต้องการ
  • แบบฟอร์ม Scaling Nodes ในแดชบอร์ด – สามารถเข้าถึงได้โดยใช้ตัวเลือก Additionally > Scaling Nodes ที่อยู่ถัดจากเลเยอร์หรือ Additionally > Delete ที่อยู่ถัดจากโหนดโดยเฉพาะ

ภายในหน้าต่าง Scaling Nodes คุณสามารถดำเนินการดังต่อไปนี้:

1. เพิ่มโหนดใหม่ให้กับเลเยอร์โดยใช้ปุ่ม + หรือปุ่ม Add New Node

เคล็ดลับ: โหนดแรกของรายการจะเรียกว่า “Master” ของเลเยอร์ (เน้นด้วยไอคอนพิเศษ) และสามารถลบออกได้เฉพาะกับเลเยอร์ทั้งหมดเท่านั้น

– หากคุณกดลบโหนดไปแล้ว คุณสามารถ undo เลิกทำการลบโหนดที่มีอยู่ในระหว่างการกำหนดค่าได้ อย่างไรก็ตามหลังจากใช้การเปลี่ยนแปลงอินสแตนซ์จะถูกลบออกอย่างถาวร



3. ที่ด้านล่างของเฟรม คุณจะเห็นการเปลี่ยนเส้นทาง Auto ไปยังการปรับขนาดแบบ horizontal โดยอัตโนมัติ

หากมีการปรับเปลี่ยนใดๆในแบบฟอร์ม คุณจะต้องยืนยันการเปลี่ยนเส้นทางผ่านป๊อปอัปที่ปรากฏขึ้น (เนื่องจากการเปลี่ยนแปลงที่ยังไม่ได้บันทึกจะถูกยกเลิก)

4. เมื่อใช้การเปลี่ยนแปลง Ruk-Com Cloud PaaS จะแจ้งให้คุณทราบโดยอัตโนมัติเกี่ยวกับการกระทำที่อาจเป็นอันตรายทั้งหมดที่จะดำเนินการกับสภาพแวดล้อมของคุณ (ถ้ามี) ดังนี้:

  • แจ้งเตือนการรีสตาร์ทโหนด
  • แจ้งเตือนการลบเลเยอร์และการแยกโหนด
  • แจ้งเตือนผลกระทบต่อการติดตั้ง NFS mounts ที่มีอยู่

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