ศูนย์คู่มือ Ruk-Com PaaS

คู่มือการพัฒนา Deploy และดูแล Application บน Platform

RUK-COM PAAS / LOAD BALANCERS

ทดสอบ Load Balancing

คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี

ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง

ปรับปรุงตามเอกสาร Platform ปัจจุบัน

ตรวจสอบชื่อเมนู ตัวเลือก และข้อกำหนดล่าสุดจากเนื้อหาภาษาอังกฤษในหน้าเดียวกันก่อนดำเนินการกับระบบจริง

วัตถุประสงค์

บทความนี้อธิบายทดสอบ Load Balancing บน Ruk-Com Cloud PaaS โดยจัดลำดับขั้นตอนและจุดตรวจสอบสำหรับการนำไปใช้งานจริง

ก่อนเริ่มดำเนินการ

  • เข้าสู่ระบบด้วยบัญชีที่มีสิทธิ์จัดการ Environment ที่เกี่ยวข้อง
  • ตรวจสอบชื่อ Environment, Region และ Resource เป้าหมายก่อนบันทึกการเปลี่ยนแปลง
  • สำรองข้อมูลหรือกำหนดแผนย้อนกลับก่อนแก้ไขระบบ Production

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

การปรับ ClusterApplication นั้นค่อนข้างง่ายด้วยการใช้ Ruk-Com Cloud เพียงเพิ่ม Application Server instance อีกไม่กี่ตัวให้กับ Environment ของคุณ นอกจากนี้คุณจะเปิดใช้งาน Server NGINX-balancer โดยอัตโนมัติในส่วนของหน้าโปรเจกต์ จะทำหน้าที่รับผิดชอบในการกระจายโหลดอย่างสม่ำเสมอระหว่างจำนวน NodeServer แอปที่ระบุ ซึ่งดำเนินการโดยอาศัยการ load balancing

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

เพื่อพิสูจน์ว่าโครงการนี้มีประสิทธิภาพนั้น เราจะแสดงวิธีการทดสอบการจัดสรรภาระงานด้วยการใช้เครื่องมือ link # ApacheBench (ab) เป็นตัวช่วย มีความเป็นไปได้หลายประการในการทดสอบความสามารถของ Server ในการรับมือกับโหลดที่เพิ่มขึ้นและเปลี่ยนแปลงได้ แม้ว่า ab ได้รับการออกแบบมาสำหรับการทดสอบการติดตั้ง Apache แต่สามารถใช้เพื่อเปรียบเทียบ Server HTTP ต่าง ๆ ได้

มาเริ่มและทดสอบกันแบบเรียลไทม์กัน

สร้าง Environment และ Deploy Application

1. เข้าสู่ระบบ Ruk-Com Platform และคลิกปุ่มสร้าง Environmentที่มุมบนซ้ายของ Dashboard

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

2. หน้าต่างไดอะล็อก Environment topology จะปรากฏขึ้นทันที คุณสามารถเลือกภาษาโปรแกรมมิ่ง Application/เว็บ Server และ Database ที่ต้องการได้

ในขณะที่เรากำลังจะทดสอบการโหลด Server Apache PHP ให้เลือกและระบุลิมิตการใช้ Resource โดยใช้แถบเลื่อน cloudlets จากนั้นแนบ Public IP address สำหรับ Server นี้และพิมพ์ชื่อของ Env ใหม่ (เช่น balancer) คลิก Create.

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

3. ในเวลาเพียงไม่กี่นาที Env ของคุณจะปรากฏที่ Dashboard

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

4. เมื่อสร้าง Env สำเร็จแล้วคุณสามารถ Deploy (deploy) Application ของคุณได้ เราจะใช้ Package HelloWorld.zip เป็นค่าเริ่มต้น ดังนั้นคุณเพียงแค่ต้อง Deploy (deploy) กับ Env ที่ต้องการด้วยปุ่มที่เกี่ยวข้องและยืนยันการ Deploy (deploy) ในเฟรมที่เปิดอยู่

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

การทดสอบ Control Point

ในการวิเคราะห์ผลลัพธ์คุณจะต้องมีบางสิ่งเพื่อเปรียบเทียบ ดังนั้นเรามาทดสอบจุดควบคุมโดยใช้ Environment ที่สร้างขึ้นเป็นแบบ Application Server แบบ Node เดียว

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

ดังนั้น ให้ทำตามขั้นตอนด้านล่างนี้

1. ApacheBench เป็นส่วนหนึ่งของการแจกจ่ายซอร์ส Apache มาตรฐาน ดังนั้นหากคุณยังไม่มี ให้ใช้คำสั่งต่อไปนี้ผ่านเทอร์มินัล (หรือข้ามขั้นตอนนี้ไปถ้าคุณมี)

apt-get install apache2-utils

รอจนกว่าการติดตั้งจะเสร็จสมบูรณ์

หมายเหตุ :
สามารถดูข้อมูลโดยละเอียดเกี่ยวกับคำสั่ง ab ที่ใช้เพิ่มเติมได้ตาม link

2. ป้อนบรรทัดถัดไปนี้ในเทอร์มินัล:

ab -g res1.tsv -n 500 -c 10 {URL_to_your_env}

แทนที่ส่วน {URL_to_your_env} ด้วยลิงก์ที่ไปยัง Env ของคุณ (เช่น ในกรณีของเราคือhttp://balancer.app.ruk-com.cloud/) ในการรับให้คลิกปุ่ม Open in Browser ถัดจาก Env และคัดลอก URL ที่เกี่ยวข้องจากแถบที่อยู่ของ Browser

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

คำสั่งที่ระบุจะส่งจำนวนคำขอทั้งหมด 500 คำขอไปยัง Env ที่ระบุ ซึ่งแบ่งออกเป็นชุดของคำขอพร้อมกัน 10 รายการในครั้งเดียว ผลลัพธ์ทั้งหมดจะถูกเก็บไว้ในไฟล์ res1.tsv ภายในโฟลเดอร์ home ของคุณ (หรือป้อนพาธแบบเต็มไปยัง Directory ที่ต้องการหากคุณต้องการเปลี่ยนตำแหน่งไฟล์)

นอกจากนี้คุณสามารถระบุ Parameter ที่กำหนดเองสำหรับคำสั่งที่กล่าวถึงข้างต้นได้หากต้องการ

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

การทดสอบนี้อาจใช้เวลาสักครู่ขึ้นอยู่กับ Parameter ที่ตั้งไว้ดังนั้นโปรดอดใจรอ

3. ไฟล์ที่ถูกสร้างขึ้นผลลัพธ์ควรมีลักษณะดังภาพด้านล่าง

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

เปลี่ยนการตั้งค่า Environment

1. กลับไปที่ Dashboard Ruk-Com Cloud แล้วคลิก Change environment topology สำหรับ environment balancer ของคุณ

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

2. ภายในกรอบ Environment topology ที่เปิดอยู่ ให้เพิ่ม Application Server เพิ่มเติม (เช่น เพิ่ม instance Apache อีกสักหนึ่งอัน) - ใช้ปุ่ม + ในส่วนตัวช่วยทำ Horizontal Scalingจากนั้นเปิดใช้งานคุณสมบัติ Public IP และระบุลิมิต Resource สำหรับ NodeNGINX-Balancerที่เพิ่มโดยอัตโนมัติ เนื่องจากจะกลายเป็นจุดเริ่มต้นของ Application ของคุณ คลิก Apply เพื่อดำเนินการต่อ

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS
ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

3. เมื่อนำการเปลี่ยนแปลงที่จำเป็นทั้งหมดไปใช้สำเร็จ คุณควรปิดใช้งาน sticky sessions สำหรับ Server balancer มิฉะนั้นคำขอทั้งหมดจาก IP address นั้นจะถูกเปลี่ยนเส้นทางไปยัง instance เดียวกันของ Application Server

ดังนั้นคลิกปุ่ม Config ถัดจาก Node Nginx

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

4. ไปที่ไฟล์conf > NGINX-Ruk-Com PaaS.confไม่สามารถแก้ไขได้ ดังนั้นให้คัดลอกเนื้อหาทั้งหมดและวางลงในไฟล์NGINX.conf(อยู่ในโฟลเดอร์เดียวกัน) แทนที่จะรวม/etc/NGINX/NGINX-Ruk-Com PaaS.conf; ตามเส้น (ที่วงไว้ตามภาพต่อไปนี้)

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

5. จากนั้นค้นหา Parameter sticky path 2 รายการใน Code (ในส่วน DEFAULT UPSTREAM และ UPSTREAMS LIST) และคอมเมนต์ตามที่แสดงด้านล่าง

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

หมายเหตุ :
อย่าลืมใส่วงเล็บปีกกาปิดหลังสตริง sticky path และไม่ควรใส่เครื่องหมายคอมเมนต์ไว้

6. บันทึกการเปลี่ยนแปลงที่ใช้และ RestartServerNGINX

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

การทดสอบ Balancer และเปรียบเทียบผลลัพธ์

1. เปลี่ยนกลับไปที่เทอร์มินัลของคุณและเรียกใช้การทดสอบ ab อีกครั้งด้วย Parameter เดียวกัน (ยกเว้นไฟล์ที่มีผลลัพธ์เป็น – ให้ระบุชื่ออื่น เช่น res2.tsv)

ab -g res2.tsv -n 500 -c 10 {URL_to_your_env}

ตอนนี้เรามาดำเนินการทดสอบ load balancing โดยตรงกัน

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

2. เพื่อชี้แจงผลลัพธ์ที่ได้เราจะใช้ข้อมูลจากไฟล์ res1.tsv และ res2.tsv นำเข้าไปยัง spreadsheet และใช้ plot กราฟออกมา

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

คล้ายกับภาพต่อไปนี้:

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

เนื่องจากตัวเลือกที่ระบุไว้กราฟสีน้ำเงินจะแสดงประสิทธิภาพของ Server Apache แบบเดี่ยวที่ไม่มีตัว balancer (ผลการทดสอบจุดควบคุม [control point]) และ Server สีแดง จะเป็นสอง Server ที่มี NGINX load balancer (ผลการทดสอบขั้นที่สอง)

หมายเหตุ:ผลการทดสอบที่ได้รับ (เวลาตอบกลับสำหรับคำขอที่ส่งแต่ละรายการ) จะแสดงตามลำดับจากน้อยไปหามาก กล่าวคือ ไม่ตามลำดับเวลา

หมายเหตุ :
ผลการทดสอบที่ได้รับ (เวลาตอบสนองสำหรับแต่ละคำขอที่ส่งไป) จะแสดงตามลำดับจากน้อยไปหามากกล่าวคือไม่เรียงตามลำดับเวลา

อย่างที่คุณเห็นในขณะที่ให้บริการ low load ประสิทธิภาพของการกำหนดค่าทั้งสองเกือบจะเท่ากัน แต่เมื่อจำนวนคำขอเพิ่มขึ้นเวลาตอบสนองสำหรับ Environment ที่มี instance Server แบบซิงเกิ้ลแอปจะเพิ่มขึ้นอย่างมากซึ่งส่งผลให้แสดงคำขอน้อยลงในเวลาเดียวกัน ดังนั้นหากคุณคาดหวังว่า Application Server ของคุณจะมีภาระงานสูง (high load) การเพิ่มจำนวน instance ในบันเดิล (bundle) ด้วย Server balancer จะเป็นวิธีที่ดีที่สุดในการทำให้ลูกค้าของคุณพึงพอใจ

เพลิดเพลินไปกับข้อดีทั้งหมดของ Cloud!