CloudWatch Evidently
CloudWatch Evidently เป็นฟีเจอร์หนึ่งของ CloudWatch ที่ช่วยให้คุณ ทดสอบฟีเจอร์ใหม่ในแอปพลิเคชัน และส่งฟีเจอร์เหล่านี้ให้เฉพาะ ผู้ใช้บางส่วน เท่านั้น
จุดประสงค์ของการ Controlled Feature Rollouts
คุณอาจต้องการทำเช่นนี้เพื่อลดความเสี่ยงในการปล่อยฟีเจอร์ใหม่ ตัวอย่างเช่น การเปิดฟีเจอร์ใหม่ให้กับผู้ใช้เพียง 5% ของทั้งหมด จะช่วยให้คุณ ตรวจพบผลกระทบที่ไม่คาดคิด ก่อนปล่อยฟีเจอร์เต็มรูปแบบ นอกจากนี้ยังสามารถ เก็บข้อมูลการทดลอง, วิเคราะห์เชิงสถิติ, และตรวจสอบประสิทธิภาพ ของฟีเจอร์ใหม่ได้
กรณีการใช้งานที่ CloudWatch Evidently รองรับ
มีสองกรณีหลักที่ Evidently รองรับ:
- Launches (Feature Flags): เปิดหรือปิดฟีเจอร์สำหรับกลุ่มผู้ใช้บางส่วน
- Experiments (A/B Testing): เปรียบเทียบหลายเวอร์ชันของฟีเจอร์เดียวกันเพื่อหาว่าเวอร์ชันใดมีประสิทธิภาพมากกว่า
ตัวอย่าง Feature Flags
สมมติว่าผู้ใช้บางคนสามารถกดไลค์คอมเมนต์ในแอปของคุณ แต่คุณไม่ต้องการให้ทุกคนได้ฟีเจอร์นี้ทันที คุณต้องการทดสอบฟีเจอร์ก่อนปล่อยให้ผู้ใช้ทุกคน ในกรณีนี้ feature flag จะควบคุมว่าผู้ใช้บางคนจะเห็นปุ่มไลค์หรือไม่
ตัวอย่าง A/B Testing
ในการทดลอง A/B Testing คุณอาจเปรียบเทียบเวอร์ชันของฟีเจอร์เดียวกัน เช่น ทดสอบว่าการวางปุ่มไลค์ทางซ้ายหรือขวาส่งผลต่อ engagement ของผู้ใช้มากกว่า นี่ช่วยให้คุณตัดสินใจได้ว่า เวอร์ชันใดมีประสิทธิภาพมากกว่า
Workflow ใน CloudWatch Evidently
- ในฐานะนักพัฒนา คุณสร้าง project ใน CloudWatch Evidently
- จากนั้นสร้าง feature หรือ experiment
- คุณจะได้รับ code snippet เพื่อนำไปฝังในแอปพลิเคชัน
- เมื่อฝังเสร็จ ผู้ใช้เข้าถึงแอปได้ตามปกติ
- คุณกำหนด เปอร์เซ็นต์ผู้ใช้ ที่จะได้ฟีเจอร์ใหม่ หรือ การกระจายผู้ใช้ระหว่างเวอร์ชัน A และ B สำหรับ A/B testing
- เมื่อผู้ใช้เข้าถึงแอป จะเห็นฟีเจอร์ตามการตั้งค่าใน CloudWatch Evidently
คำสำคัญ: Launches, Experiments และ Overrides
- Launches: Feature flags สำหรับเปิด/ปิดฟีเจอร์ให้กับผู้ใช้บางกลุ่ม
- Experiments: A/B testing เพื่อเปรียบเทียบหลายเวอร์ชันของฟีเจอร์
- Overrides: กลไกที่ทำให้ผู้ใช้บางคน เช่น beta tester, เห็นฟีเจอร์เฉพาะเวอร์ชันเสมอ ไม่ขึ้นกับเปอร์เซ็นต์ rollout
Overrides
หากคุณมี beta tester ในองค์กรและต้องการให้ tester เห็นฟีเจอร์ใหม่เสมอ คุณไม่สามารถพึ่งความสุ่มของ rollout ได้ คุณสามารถสร้าง override ใน CloudWatch Evidently โดยระบุ user ID ของ tester ให้เห็นเฉพาะฟีเจอร์ใหม่หรือเวอร์ชัน B เสมอ ทำให้มั่นใจว่าผู้ทดสอบจะเห็นฟีเจอร์ตามที่ตั้งค่า
การเก็บข้อมูลการทดลอง
คุณสามารถเก็บข้อมูลการทดลองได้ใน CloudWatch Logs หรือ Amazon S3 ข้อมูลนี้สามารถนำไป วิเคราะห์เพื่อประเมินผลลัพธ์และประสิทธิภาพ ของการเปิดฟีเจอร์หรือการทดลอง A/B
สรุป
CloudWatch Evidently เป็นเครื่องมือที่ช่วยให้คุณ ปล่อยฟีเจอร์ใหม่อย่างปลอดภัย, ทำ A/B testing, ควบคุมการเข้าถึงฟีเจอร์, ทำ overrides สำหรับผู้ใช้เฉพาะ และเก็บข้อมูลการทดลองเพื่อนำไปวิเคราะห์
Key Takeaways
- CloudWatch Evidently ช่วยปล่อยฟีเจอร์ใหม่ให้กับ ผู้ใช้บางส่วน อย่างควบคุมได้
- รองรับสองกรณีหลัก: feature flags (launches) และ A/B testing (experiments)
- Overrides ช่วยให้ผู้ใช้บางคน เช่น beta tester, เข้าถึงฟีเจอร์ได้ไม่ขึ้นกับ rollout percentage
- ข้อมูลการทดลองสามารถเก็บใน CloudWatch Logs หรือ Amazon S3 เพื่อนำไปวิเคราะห์