Leadership-Performace
ปัญหาเรื่องระบบล่มเนื่องมาจากผู้ใช้งานเข้ามาใช้ระบบจำนวนมากพร้อม ๆ กัน
เป็นปัญหาที่ผมคิดว่า นักพัฒนาพบเห็นประจำ เช่น

ดังนั้นสิ่งที่ควรต้องเตรียมตัวไว้เสมอคือ
การทดสอบปริมาณการใช้งานแบบพุ่งสูงอย่างรวดเร็ว (Spike Traffic)
เพื่อให้เราสามารถรับมือกับปัญหาต่าง ๆ ได้อย่างรวดเร็ว
มิฉะนั้นระบบไฟไหม้อย่างแน่นอน

ปล. จงรู้ปัญหาก่อนผู้ใช้งาน และรับมือมันได้อย่างทันท่วงที

มาดูปัญหาที่ระบบเหล่านี้มักพบเจอ
และวิธีการแก้ไขปัญหาในเบื้องต้นกัน

ปัญหาที่ 1 ประเมินจำนวนผู้ใช้งานต่ำเกินไป

ในบางครั้งอาจจะไม่รู้ด้วยซ้ำ !!
ในบางครั้งอาจจะประเมินสูงเกินไป ก็จะเกิดปัญหาอีกแบบ !!

เราจะรู้ว่าระบบล่ม เมื่อผู้ใช้งานจริงเข้ามาใช้
ซึ่งมันน่ากลัวมาก ๆ
หรือว่า คนจริงต้องเจอกันบน production server !!
และรู้ปัญหาหลังผู้ใช้งานเสมอ
แน่นอนว่าส่งผลไม่ดีต่อธุรกิจเลย

ดังนั้นสิ่งที่ต้องทำก็คือ การทำ Stress Testing และ Soak Testing
เพื่อให้รู้ขีดความสามารถของระบบงาน
ว่าสามารถรองรับการใช้งานสูงสุดเท่าไร อย่างไร
และทำให้เห็นถึงปัญหาที่ต้องแก้ไข เช่น

  • Bandwidth ที่ใช้งาน
  • Memory
  • CPU

และระบบที่เกี่ยวข้อง เพื่อหาจุดที่เป็นคอขวด
เพื่อแก้ไขปัญหาต่อไป

โดยในการทดสอบให้ทำการเพิ่มจำนวนผู้ใช้งาน หรือ traffic ขึ้นไปเรื่อย ๆ
จนไปถึงจุดที่ทำให้ระบบมีปัญหา
จากนั้นทำการแก้ไข และ ทดสอบซ้ำ ๆ ไปเรื่อย ๆ

ประเด็นหลักคือ เราทำการทดสอบรูปแบบนี้หรือไม่ และ ตอนไหน ?

ปัญหาที่ 2 เมื่อเกิดข้อผิดพลาดแล้วทำการ recover ระบบได้รวดเร็วเพียงใด

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

ดังนั้นสิ่งที่ต้องทำคือ การ Backup Server
รวมทั้งการเตรียม Server ไว้ในสถานที่ต่าง ๆ
เพื่อทำให้สามารถเปลี่ยนการทำงานไป server ต่าง ๆ ได้อย่างรวดเร็วเมื่อเกิดปัญหา

ประเด็นหลักคือ เราทำการ recover ระบบกันอย่างไร ?
ถ้าทำ Backup server แล้ว คุณเคยทดสอบมันหรือไม่
ว่าเมื่อเกิดปัญหายังสามารถ recover ได้นะ !!

ปัญหาที่ 3 ต้องรู้ด้วยว่า พฤติกรรมของผู้ใช้งานเป็นอย่างไร ?

เมื่อเราทำ Performance testing ระบบงาน
สิ่งที่ต้องเข้าใจคือ พฤติกรรมของผู้ใช้งานต่อระบบเป็นอย่างไรบ้าง
มิฉะนั้นแล้ว คุณอาจจะทดสอบไม่เจอปัญหาที่ผู้ใช้งานเจอจริง ๆ ก็เป็นได้
ซึ่งนั่นคือปัญหาที่ส่งผลร้ายแรงมาก

ดังนั้นสิ่งที่ควรทำคือ การ tracking พฤติกรรมของผู้ใช้งานด้วย Analytic tool ต่าง ๆ
จากนั้นนำข้อมูลเหล่านี้มาใช้สำหรับการทำ Performance testing ต่อไป

คำถามคือ วันนี้คุณทำ Performance testing กันหรือยัง ?