Feature Flags: ปล่อยฟีเจอร์ทีละนิด และปิดได้ทันทีเมื่อพัง

27 มิถุนายน 2569อ่าน 6 นาที
Feature Flags: ปล่อยฟีเจอร์ทีละนิด และปิดได้ทันทีเมื่อพัง

การปล่อยฟีเจอร์ใหม่ให้ทุกคนพร้อมกัน คือการเดิมพันก้อนใหญ่ Feature Flags ช่วยให้เปิดฟีเจอร์ทีละกลุ่ม วัดผล และปิดได้ทันทีถ้ามีปัญหา โดยไม่ต้องรีบแก้โค้ดกลางดึก

Feature Flag คือสวิตช์ในระบบ ที่เปิดหรือปิดฟีเจอร์ได้โดยไม่ต้องปล่อยโค้ดใหม่ มันแยกสองสิ่งที่คนมักรวมกันออกจากกัน คือการนำโค้ดขึ้นระบบ (deploy) กับการเปิดให้ผู้ใช้เห็น (release) เมื่อแยกได้ คุณจะปล่อยโค้ดขึ้นไปอย่างปลอดภัยก่อน แล้วค่อยเปิดให้คนเห็นทีหลังเมื่อพร้อม

ทำไมการแยก Deploy กับ Release ถึงสำคัญ

เมื่อฟีเจอร์ใหม่มีปัญหา ทีมที่ไม่มี Feature Flag ต้องรีบเขียนโค้ดแก้และปล่อยใหม่กลางดึก ซึ่งเสี่ยงพลาดซ้ำ ส่วนทีมที่มี Flag แค่ปิดสวิตช์ ผู้ใช้กลับไปเห็นของเดิมทันที แล้วค่อยแก้อย่างใจเย็นในเวลางาน นี่คือความต่างระหว่างวิกฤตกับเรื่องเล็ก

  • ปล่อยฟีเจอร์ให้พนักงานภายในก่อน แล้วค่อยขยายไปลูกค้าบางกลุ่ม
  • ทดสอบสองเวอร์ชันพร้อมกัน (A/B) เพื่อวัดว่าแบบไหนดีกว่า
  • ตั้งแผนเก็บกวาด Flag เก่า ไม่ให้สะสมจนระบบยุ่งเหยิง

ข้อควรระวังคือ Flag ที่ลืมเก็บกวาด จะกลายเป็นความซับซ้อนที่สะสม แต่เมื่อใช้อย่างมีวินัย Feature Flag คือหนึ่งในเครื่องมือที่ลดความเสี่ยงของการปล่อยของได้มากที่สุด โดยแทบไม่ต้องลงทุนเพิ่ม

Feature FlagsReleaseDeploymentRisk

บริการที่เกี่ยวข้อง

รับพัฒนาเว็บแอปพลิเคชัน

สร้างเว็บแอปที่รองรับการเติบโตและเชื่อมกับระบบอื่นได้

WhaleScope

ดูโครงสร้างตลาดของทุกหมวดธุรกิจไทย บน WhaleScope

รายชื่อบริษัท ผู้เล่นรายใหญ่ และอัตราคงอยู่ของแต่ละหมวด — จากข้อมูลจดทะเบียน 2 ล้านนิติบุคคล

อ่านต่อ

Containerization: แพ็กแอปให้รันเหมือนกันทุกที่

ปัญหาคลาสสิกคือ บนเครื่องผมมันรันได้ แต่ขึ้นเซิร์ฟเวอร์กลับพัง Containerization แก้ด้วยการแพ็กแอปพร้อมทุกอย่างที่ต้องใช้ ให้รันเหมือนกันทุกที่ ลดปัญหาความต่างของสภาพแวดล้อม

Schema Migration: เปลี่ยนโครงสร้างฐานข้อมูลโดยไม่ทำระบบล่ม

การเปลี่ยนโครงสร้างฐานข้อมูลของระบบที่ใช้งานอยู่ เสี่ยงทำระบบล่มถ้าทำผิดจังหวะ วิธี expand-contract ค่อย ๆ เปลี่ยนเป็นขั้น ให้โค้ดเก่าและใหม่อยู่ร่วมกันได้ จนเปลี่ยนเสร็จโดยไม่ต้องหยุดบริการ

Canary Deployment: ปล่อยของใหม่ให้คนกลุ่มเล็กก่อน ลดความเสี่ยงทั้งระบบ

ปล่อยเวอร์ชันใหม่ให้ผู้ใช้ทุกคนพร้อมกัน คือเดิมพันก้อนใหญ่ Canary Deployment ปล่อยให้คนกลุ่มเล็กก่อน เฝ้าดูสัญญาณ แล้วค่อยขยาย ถ้ามีปัญหาจะกระทบแค่กลุ่มเล็กและถอยกลับได้เร็ว

Blue-Green Deployment: เตรียมสนามใหม่ให้พร้อม แล้วสลับทั้งระบบในวินาทีเดียว

การอัปเดตระบบทับของเดิมตรง ๆ คือช่วงเวลาอันตรายที่ถอยกลับยาก Blue-Green รันระบบสองชุดคู่กัน ปล่อยเวอร์ชันใหม่ลงชุดที่ว่าง ทดสอบจนมั่นใจ แล้วค่อยสลับผู้ใช้ไปทั้งหมด ถ้ามีปัญหาก็สลับกลับได้ทันที