Chuyển đến nội dung chính
Quay lại danh sách bài viết

Cloudflare Flagship ประเมิน Feature Flags ในเครื่องได้แล้ว ทดสอบ Offline โดยไม่กระทบ Production

Flagship bindings เปลี่ยนมาใช้ local flag store ระหว่างพัฒนา รองรับ Wrangler, Vite, Vitest และ cf dev พร้อมทางเลือก remote

Cloudflare Flagship ประเมิน Feature Flags ในเครื่องได้แล้ว ทดสอบ Offline โดยไม่กระทบ Production

Cloudflare ประกาศเมื่อวันที่ 2 พฤศจิกายน 2026 ว่า Flagship bindings จะประเมิน feature flags จาก local flag store ระหว่างพัฒนาเครื่องแล้ว การรันแอปในโหมด local จึงไม่ต้องเรียก Flagship app ที่อยู่ระยะไกลโดยปริยาย ความเปลี่ยนแปลงนี้เกี่ยวข้องโดยตรงกับทีมที่ใช้ flags แยกเส้นทางฟีเจอร์ ทดลอง rollout หรือควบคุมพฤติกรรมแอป เพราะค่าที่เห็นบนเครื่องนักพัฒนาอาจต่างจากค่าบน production หลังอัปเดตเครื่องมือ

พฤติกรรมใหม่ของการพัฒนาในเครื่อง

ประกาศระบุว่า local store ใช้กับ wrangler dev, Cloudflare Vite plugin, Vitest integration และ cf dev ในโหมดพัฒนา การประเมิน flag จะเกิดจากข้อมูลในเครื่องแทนการติดต่อ remote app ทำให้ทำงานแบบออฟไลน์ได้และลองเปลี่ยน flag โดยไม่กระทบค่า production จุดที่ต้องจำคือ store เริ่มต้นแบบว่าง หากโค้ดเรียกประเมิน flag ก่อนสร้างหรือดึงค่าเข้ามา ผลลัพธ์จะเป็นค่า default ที่ส่งไปในโค้ด ไม่ใช่ค่าที่อยู่ในระบบจริง

ผลต่อการทดสอบมีสองด้าน ด้านหนึ่งทีมสามารถสร้างสถานการณ์ที่คาดเดาได้และไม่ต้องพึ่งการเชื่อมต่อเครือข่ายในการรันชุดทดสอบ อีกด้านหนึ่งการทดสอบที่เคยอ่านค่าจาก remote app อัตโนมัติอาจเปลี่ยนผลทันทีหลังอัปเดตเครื่องมือ แม้โค้ดแอปไม่เปลี่ยน โดยเฉพาะ flag ที่ default ในโค้ดเป็น false แต่ production เปิดไว้ ทีมควรระบุชุด flag สำหรับแต่ละกรณีทดสอบให้ชัด ไม่ใช้ผลลัพธ์จาก store ว่างเป็นหลักฐานว่า production มีค่าเดียวกัน

เติมข้อมูลให้ local store อย่างไร

ผู้พัฒนาจัดการ flag ในเครื่องได้หลายทาง Cloudflare ระบุว่าใช้คำสั่ง wrangler flagship flags พร้อม --local เพื่อสร้าง แก้ หรือประเมินค่า flag เช่นขั้นตอนสร้าง flag สำหรับทดสอบฟีเจอร์ที่ยังไม่เปิดจริง หากต้องการตั้งต้นจาก flags ใน remote app มีคำสั่ง npx wrangler flagship flags pull <APP_ID> เพื่อดึงทั้งหมดลงมาในเครื่อง ควรตรวจเนื้อหาหลังดึงและหลีกเลี่ยงนำค่าสภาพแวดล้อมจริงไปผูกกับผลทดสอบที่ต้องทำซ้ำได้

อีกทางคือ Local Explorer ซึ่งสร้าง แก้ สลับสถานะ และประเมิน flag ได้ขณะ dev server ทำงาน ส่วนผู้ใช้ cf CLI สามารถเติม --local กับคำสั่ง cf flagship ได้เช่นกัน การเลือกวิธีขึ้นอยู่กับ workflow ของทีม: CLI เหมาะกับขั้นตอนที่บันทึกซ้ำได้และ review ในโปรเจกต์ ส่วนหน้าจอ Explorer เหมาะกับการทดลองอย่างรวดเร็วระหว่างแก้ UI หรือดูเส้นทางการทำงานหลายค่า

ถ้าต้องการอ่านค่า remote ต่อ

การเปลี่ยนเป็น local ไม่ได้ตัดทางเลือกเดิม Cloudflare ระบุว่าสามารถตั้ง remote: true บน binding เพื่อให้ประเมินจาก remote app ต่อได้ เหมาะกับการตรวจค่าจริงในสภาพแวดล้อมที่ตั้งใจเชื่อมต่อ แต่ควรใช้ด้วยความเข้าใจว่า test จะขึ้นกับเครือข่าย สิทธิ์เข้าถึง และการเปลี่ยนแปลง flag ภายนอก ทีมที่ต้องการทดสอบแบบนิ่งอาจแยกชุด local fixture ออกจากการทดสอบ integration กับ remote ให้ชัดเจน

ก่อนเปิดใช้ workflow ใหม่นี้ ต้องตรวจเวอร์ชันเครื่องมือด้วย local flag store ต้องใช้ Wrangler อย่างน้อย v4.135.0 หรือ @cloudflare/vite-plugin อย่างน้อย v1.56.0 ขณะที่ Flagship ใน Local Explorer ต้องใช้ Wrangler v4.148.0 หรือ Vite plugin v1.63.0 ขึ้นไป การมี plugin รุ่นที่รองรับ local evaluation จึงไม่ได้หมายความว่าฟังก์ชัน Explorer พร้อมเสมอ หากทีมใช้หลายเครื่องมือใน monorepo ควรตรวจเวอร์ชันที่ CI และเครื่องนักพัฒนาใช้อยู่จริงแยกกัน

สิ่งที่ควรตรวจหลังอัปเดต

เริ่มจากค้นจุดที่โค้ดเรียก Flagship binding และจด default ของแต่ละ flag แล้วรันแอปด้วย local store ว่างเพื่อดูเส้นทางเริ่มต้น จากนั้นสร้างค่าเฉพาะที่ต้องทดสอบใน local store และตรวจทั้งกรณีเปิดกับปิด flag สำหรับ Vitest ควรตั้งค่า flag เป็นส่วนหนึ่งของการเตรียมแต่ละชุดทดสอบ เพื่อไม่ให้ผลขึ้นกับสถานะที่นักพัฒนาคนก่อนทิ้งไว้ในเครื่อง ถ้าต้องเทียบ production ให้ทดสอบอีกขั้นแบบตั้งใจใช้ remote และระบุไว้ในคู่มือทีม

การเปลี่ยนแปลงนี้ทำให้การพัฒนา offline และการทดลอง rollout ปลอดจากผลกระทบต่อ production มากขึ้น แต่ความรับผิดชอบเรื่องค่าทดสอบชัดขึ้นด้วย ทีมควรเตรียมค่า flag และทดสอบ default อย่างเปิดเผย มิฉะนั้นการสลับเส้นทางแบบเงียบ ๆ อาจทำให้คิดว่าฟีเจอร์มีปัญหาทั้งที่เกิดจาก store ว่าง

แหล่งข่าว: Cloudflare Changelog — Evaluate Flagship flags locally ประกาศ 2 พฤศจิกายน 2026

Chia sẻ bài viết:
Xem thêm bài viết