ปัญหาเรื่องระบบล่มเนื่องมาจากผู้ใช้งานเข้ามาใช้ระบบจำนวนมากพร้อม ๆ กัน
เป็นปัญหาที่ผมคิดว่า นักพัฒนาพบเห็นประจำ เช่น
- Pizza Hut ออก promotion 1 บาท
- Pokémon Go ล่ม
- ระบบลงทะเบียนล่ม
- AirAsia ล่มสำหรับ promotion BIG SALE
- ระบบจองตั๋วต่าง ๆ ล่ม
ปล. จงรู้ปัญหาก่อนผู้ใช้งาน และรับมือมันได้อย่างทันท่วงทีมาดูปัญหาที่ระบบเหล่านี้มักพบเจอ และวิธีการแก้ไขปัญหาในเบื้องต้นกัน
ปัญหาที่ 1 ประเมินจำนวนผู้ใช้งานต่ำเกินไป
ในบางครั้งอาจจะไม่รู้ด้วยซ้ำ !! ในบางครั้งอาจจะประเมินสูงเกินไป ก็จะเกิดปัญหาอีกแบบ !! เราจะรู้ว่าระบบล่ม เมื่อผู้ใช้งานจริงเข้ามาใช้ ซึ่งมันน่ากลัวมาก ๆ หรือว่า คนจริงต้องเจอกันบน production server !! และรู้ปัญหาหลังผู้ใช้งานเสมอ แน่นอนว่าส่งผลไม่ดีต่อธุรกิจเลย ดังนั้นสิ่งที่ต้องทำก็คือ การทำ Stress Testing และ Soak Testing เพื่อให้รู้ขีดความสามารถของระบบงาน ว่าสามารถรองรับการใช้งานสูงสุดเท่าไร อย่างไร และทำให้เห็นถึงปัญหาที่ต้องแก้ไข เช่น- Bandwidth ที่ใช้งาน
- Memory
- CPU
ปัญหาที่ 2 เมื่อเกิดข้อผิดพลาดแล้วทำการ recover ระบบได้รวดเร็วเพียงใด
เมื่อระบบเกิดปัญหาขึ้นมา เช่น ระบบล่ม หรือ ทำงานผิดพลาด คำถามคือ คุณสามารถกู้ระบบกลับคืนมาทำงานปกติได้รวดเร็วเพียงใด เพื่อลดผลกระทบที่ต่อธุรกิจ หรือ การบริการ ดังนั้นสิ่งที่ต้องทำคือ การ Backup Server รวมทั้งการเตรียม Server ไว้ในสถานที่ต่าง ๆ เพื่อทำให้สามารถเปลี่ยนการทำงานไป server ต่าง ๆ ได้อย่างรวดเร็วเมื่อเกิดปัญหา ประเด็นหลักคือ เราทำการ recover ระบบกันอย่างไร ? ถ้าทำ Backup server แล้ว คุณเคยทดสอบมันหรือไม่ ว่าเมื่อเกิดปัญหายังสามารถ recover ได้นะ !!ปัญหาที่ 3 ต้องรู้ด้วยว่า พฤติกรรมของผู้ใช้งานเป็นอย่างไร ?
เมื่อเราทำ Performance testing ระบบงาน สิ่งที่ต้องเข้าใจคือ พฤติกรรมของผู้ใช้งานต่อระบบเป็นอย่างไรบ้าง มิฉะนั้นแล้ว คุณอาจจะทดสอบไม่เจอปัญหาที่ผู้ใช้งานเจอจริง ๆ ก็เป็นได้ ซึ่งนั่นคือปัญหาที่ส่งผลร้ายแรงมาก ดังนั้นสิ่งที่ควรทำคือ การ tracking พฤติกรรมของผู้ใช้งานด้วย Analytic tool ต่าง ๆ จากนั้นนำข้อมูลเหล่านี้มาใช้สำหรับการทำ Performance testing ต่อไปคำถามคือ วันนี้คุณทำ Performance testing กันหรือยัง ?