Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

จดบันทึกการทำ Load testing ด้วย Locust บน Kubernetes cluster

$
0
0

ความต้องการของการทำงานสำหรับ Load testing ของระบบงาน ด้วย Locust
ซึ่งอยู่บน Kubernetes cluster เป็นดังนี้
ทำการ setup Locust แบบ Master-slave หรือ Manager-worker
เพื่อช่วยสร้าง virtual user จำนวนมากตามที่ต้องการ
มีขั้นตอนการเตรียมดังนี้

สิ่งที่ต้องการคือ สร้าง Locust แบบ Master-slave

เพื่อช่วยสร้าง virtual user จำนวนมาก ๆ
จากนั้นส่งผลการทดสอบจาก target system
กลับมายัง master node เพื่อมาแสดงผลสวย ๆ ต่อไป
แสดงดังภาพ

ขั้นตอนที่ 1 ทำการสร้าง test case หรือ task สำหรับการทดสอบ

โดยเขียนด้วยภาษา Python
แสดงดังตัวอย่าง

[gist id="713b6bcaa63654446d95314f0e0a34a7" file="sample.py"]

คำอธิบาย
ทำการทดสอบ 2 endpoint คือ

  • / สำหรับ index หรือ หน้าแรก
  • /users สำหรับดึงข้อมูล user ทั้งหมด

ขั้นตอนที่ 2 สร้าง Dockerfile สำหรับสร้าง Image ของ Locust

ทำหน้าที่ run test case จากขั้นตอนที่ 1

[gist id="713b6bcaa63654446d95314f0e0a34a7" file="Dockerfile"]

โดยมีไฟล์ run.sh สำหรับกำหนด mode ของแต่ละ node
หรือในแต่ละ container ว่าทำงานแบบใด

  • standalone
  • master
  • worker
[gist id="713b6bcaa63654446d95314f0e0a34a7" file="run.sh"]

ทำการสร้าง Docker image ให้เรียบร้อย
ซึ่งสามารถสร้างผ่าน Docker, Docker compose หรือ Swarm ได้เช่นเดียวกัน
แต่ในครั้งนี้จะทำการ deploy บน Kubernetes cluster

ขั้นตอนที่ 3 สร้าง Manefest file สำหรับการ deploy Locust บน Kubernetes

จะประกอบไปด้วยไฟล์ต่าง ๆ ดังนี้

  • Deployment ของ master จำนวน 1 pod
  • Deployment ของ worker จำนวน 6 pod
  • Service สำหรับการ expose UI ของ Locust admin

Deployment ของ master จำนวน 1 pod

[gist id="713b6bcaa63654446d95314f0e0a34a7" file="master-deploy.yml"]

Deployment ของ worker จำนวน 6 pod

[gist id="713b6bcaa63654446d95314f0e0a34a7" file="worker-deploy.yml"]

Service สำหรับการ expose UI ของ Locust admin

[gist id="713b6bcaa63654446d95314f0e0a34a7" file="master-ui-service.yml"]

จากนั้นทำการ deploy บน cluster เป็นอันเรียบร้อย
เข้าใช้งาน Locust ผ่าน Web user interface ที่ deploy


ตัวอย่าง code เต็ม ๆ อยู่ที่ Github:Up1


Viewing all articles
Browse latest Browse all 1997

Trending Articles