Percentage Rollouts
Percentage Rollouts
หัวข้อที่มีชื่อว่า “Percentage Rollouts”rule แบบ percentage rollout ให้คุณปล่อย flag ให้ผู้ใช้เพียงบางส่วน แทนที่จะเปิด flag ให้ทุกคนพร้อมกัน คุณสามารถเริ่มที่ 10% ตรวจสอบว่าระบบยังทำงานปกติดี แล้วค่อยขยับเป็น 50% และสุดท้าย 100%
การสร้าง rollout rule ใน GrowthBook
หัวข้อที่มีชื่อว่า “การสร้าง rollout rule ใน GrowthBook”- ในหน้ารายละเอียดของ Feature คลิก Add Rule
- เลือก Rollout (percentage) เป็นประเภทของ rule
- ตั้งค่าเปอร์เซ็นต์ Coverage (เช่น 10)
- ตั้งค่า Hash Attribute — นี่คือ attribute ของผู้ใช้ที่จะนำค่าไป hash เพื่อตัดสินการกำหนด bucket (โดยปกติคือ
id) - เพิ่ม Targeting Conditions เพื่อจำกัด rollout ให้กับผู้ใช้บางกลุ่มได้ตามต้องการ
- คลิก Save Rule
การแบ่ง bucket ทำให้ผู้ใช้ได้ผลลัพธ์ที่สม่ำเสมออย่างไร
หัวข้อที่มีชื่อว่า “การแบ่ง bucket ทำให้ผู้ใช้ได้ผลลัพธ์ที่สม่ำเสมออย่างไร”GrowthBook จะ hash ค่าของ hash attribute ของผู้ใช้ (เช่น id ของพวกเขา) รวมกับ feature key เพื่อสร้างตัวเลขระหว่าง 0 ถึง 1 หากตัวเลขนั้นต่ำกว่าเปอร์เซ็นต์ coverage rule จะ match เนื่องจาก hash เป็นแบบ deterministic ผู้ใช้คนเดิมจะตกลงใน bucket เดิมเสมอ การเพิ่ม coverage จาก 10% เป็น 50% จะเพิ่มเฉพาะผู้ใช้ใหม่เท่านั้น ไม่เคยพลิกสถานะของผู้ใช้เดิม
การ ramp rollout
หัวข้อที่มีชื่อว่า “การ ramp rollout”ตารางการ ramp ทั่วไป: เริ่มที่ 10% เป็นเวลา 24 ชั่วโมง คอยดู error rate และ metric หากปกติดี ขยับเป็น 50% อีก 24 ชั่วโมง จากนั้น rollout ไปที่ 100% และลบ flag ออก
gb.setAttributes({ id: 'user-123' });if (gb.isOn('new-dashboard')) { // user-123 is consistently in the 10% bucket}gb.setAttributes({ id: 'user-123' });
if (gb.isOn('new-dashboard')) {
// user is deterministically in or out based on id hash
}Rollout Strategy Comparison
หัวข้อที่มีชื่อว่า “Rollout Strategy Comparison”| Strategy | Risk | Speed |
|---|---|---|
| Big Bang Release | สูง | เร็ว |
| Canary Release | กลาง | กลาง |
| Progressive Rollout | ต่ำ | ช้า |
| Feature Flag | ต่ำมาก | ปรับได้ตามต้องการ |
ข้อแลกเปลี่ยน
หัวข้อที่มีชื่อว่า “ข้อแลกเปลี่ยน”| ตัวเลือก | Benefit | Cost |
|---|---|---|
| Rollout แบบช้า (ทยอย %) | ปลอดภัยกว่า ตรวจจับปัญหาได้ก่อนกระทบคนมาก | ใช้เวลานานกว่าจะถึง 100% |
| Rollout เร็ว | เห็นผลลัพธ์ในมือเร็วกว่า | เสี่ยง blast radius ใหญ่ถ้าพัง |
ข้อผิดพลาดที่พบบ่อย
หัวข้อที่มีชื่อว่า “ข้อผิดพลาดที่พบบ่อย”- rollout ไป 100% ทันทีโดยไม่ผ่านขั้น percentage เล็กๆก่อน
- ไม่ monitor metric ระหว่าง rollout แต่ละขั้น
- เพิ่ม percentage เร็วเกินไปโดยไม่รอดูผลขั้นก่อนหน้าให้นานพอ
💡 ตัวอย่างจากของจริง
Netflix และ Facebook ใช้ progressive rollout (1% → 5% → 25% → 100%) เป็นมาตรฐานสำหรับทุก feature ใหญ่ เพื่อจำกัดความเสียหายถ้าเกิดบัค