แฟล็กฟีเจอร์และการทยอยเปิดตัว
แยกการนำไปใช้งานออกจากการเผยแพร่ด้วยแฟล็กฟีเจอร์ จากนั้นเปิดใช้ความสามารถใหม่ทีละน้อย และปิดได้ทันทีหากเกิดข้อผิดพลาด
แฟล็กฟีเจอร์และการทยอยเปิดตัว เป็นบทเรียน CI/CD with GitHub Actions & DevOps Pipelines ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน CI/CD with GitHub Actions & DevOps Pipelines และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส CI/CD with GitHub Actions & DevOps Pipelines มีบทเรียนทั้งหมด 4 บทเรียน
การนำไปใช้งานกับการรีลีส
แนวคิดสำคัญในการส่งมอบขั้นสูงคือ การนำโค้ดไปใช้งานและการรีลีสฟีเจอร์ไม่ใช่สิ่งเดียวกัน
แฟล็กฟีเจอร์ช่วยให้คุณส่งโค้ดขึ้นสภาพแวดล้อมจริงได้ แต่ยังปิดฟีเจอร์ไว้จนกว่าจะตัดสินใจเปิดให้ผู้ใช้บางส่วนหรือทั้งหมด
แฟล็กฟีเจอร์คืออะไร
แฟล็กฟีเจอร์ (หรือสวิตช์) คือเงื่อนไขในโค้ดที่ตรวจสอบค่าการกำหนดค่า เพื่อตัดสินใจว่าจะให้เส้นทางการทำงานของโค้ดทำงานหรือไม่
if (flags.isEnabled('new-checkout')) {
renderNewCheckout();
} else {
renderOldCheckout();
}เหตุใดแฟล็กจึงดีกว่าการใช้แขนง
แขนงฟีเจอร์ที่มีอายุยาวนานทำให้การรวมโค้ดยุ่งยาก แฟล็กช่วยให้คุณรวมการเปลี่ยนแปลงเล็ก ๆ เข้ากับ main อย่างต่อเนื่อง ขณะที่ยังซ่อนฟีเจอร์ไว้
- คำขอดึงที่เล็กและปลอดภัยกว่า
- การพัฒนาโดยยึดแขนงหลัก
- เปิดหรือปิดได้ทันทีโดยไม่ต้องนำระบบไปใช้งานใหม่
ประเภทของแฟล็ก
แฟล็กมีจุดประสงค์แตกต่างกัน:
- แฟล็กรีลีส — ซ่อนงานที่ยังไม่เสร็จ
- แฟล็กปฏิบัติการ — สวิตช์ฉุกเฉินสำหรับระบบที่มีความเสี่ยง
- แฟล็กการทดลอง — การทดสอบ A/B
- แฟล็กสิทธิ์ — มอบสิทธิ์ให้ผู้ใช้พรีเมียม
การทราบประเภทช่วยให้คุณตัดสินใจเกี่ยวกับอายุการใช้งานของแฟล็กได้
กฎการกำหนดกลุ่มเป้าหมาย
แพลตฟอร์มแฟล็กช่วยให้คุณกำหนดกลุ่มผู้ที่จะเห็นฟีเจอร์ได้ตาม ID ผู้ใช้ กลุ่ม ภูมิภาค หรือเปอร์เซ็นต์
สิ่งนี้ช่วยให้เกิดการทยอยเปิดใช้งานที่ขับเคลื่อนด้วยการกำหนดค่า แทนการนำโครงสร้างพื้นฐานใหม่ไปใช้งาน
การทยอยเปิดใช้งานตามเปอร์เซ็นต์
รูปแบบที่ใช้บ่อยคือเปิดแฟล็กให้ผู้ใช้จำนวนน้อยก่อน แล้วค่อยเพิ่มขึ้น: 1% จากนั้น 10%, 50% และ 100%
ต่างจากแคนารีที่แบ่งทราฟฟิกในระดับโครงสร้างพื้นฐาน วิธีนี้เป็นการทยอยเปิดใช้งานเชิงตรรกะที่ควบคุมในการกำหนดค่าโค้ด
// Pseudo targeting config
flag: new-checkout
rollout:
percentage: 10
attribute: userIdสวิตช์ปิดฉุกเฉิน
ประโยชน์ด้านการปฏิบัติการที่สำคัญที่สุดคือ หากฟีเจอร์ที่เปิดด้วยแฟล็กทำงานผิดปกติ คุณสามารถปิดได้ทันทีโดยไม่ต้องนำระบบย้อนกลับ
วิธีนี้ลดเวลาเฉลี่ยในการกู้คืนได้อย่างมาก เมื่อเทียบกับการย้อนโค้ดและนำระบบไปใช้งานใหม่
แฟล็กในไปป์ไลน์
คุณสามารถผสานการเปลี่ยนแปลงแฟล็กเข้ากับ CI/CD ได้ ตัวอย่างเช่น ขั้นตอนหนึ่งของเวิร์กโฟลว์อาจเปลี่ยนแฟล็กเป็น enabled หลังการนำระบบไปใช้งานสำเร็จ หรือกำหนดตารางเพิ่มระดับอย่างค่อยเป็นค่อยไป
- name: Enable feature
run: |
curl -X PATCH https://flags.example.com/api/flags/new-checkout \
-H "Authorization: Bearer ${{ secrets.FLAG_TOKEN }}" \
-d '{"enabled": true}'ปิดเป็นค่าเริ่มต้นและปลอดภัย
ออกแบบแฟล็กให้ล้มเหลวอย่างปลอดภัยเสมอ หากบริการแฟล็กไม่สามารถเข้าถึงได้ โค้ดควรใช้ค่าเริ่มต้นที่ทราบว่าปลอดภัย (โดยปกติคือปิด)
แฟล็กฟีเจอร์ไม่ควรกลายเป็นจุดล้มเหลวเพียงจุดเดียว
const enabled = flags.isEnabled('new-checkout', { default: false });การล้างแฟล็ก
แฟล็กทำให้เกิดเส้นทางการทำงานของโค้ดหลายทาง แฟล็กที่ค้างอยู่จะกลายเป็นหนี้ทางเทคนิคและทำให้ผู้อ่านสับสน
เมื่อแฟล็กรีลีสเปิดใช้งานครบถ้วนและมีเสถียรภาพแล้ว ให้ลบแฟล็กและเส้นทางโค้ดเดิมออก พร้อมติดตามอายุการใช้งานของแฟล็กอย่างตั้งใจ
แฟล็กกับรูปแบบการนำระบบไปใช้งาน
แฟล็กฟีเจอร์ช่วยเสริมการนำระบบไปใช้งานแบบ blue/green และแคนารี รูปแบบโครงสร้างพื้นฐานใช้เปลี่ยนทราฟฟิก ส่วนแฟล็กใช้เปลี่ยนฟังก์ชันการทำงาน
การใช้ทั้งสองอย่างทำให้ได้รีลีสที่ปลอดภัยที่สุด: นำระบบไปใช้งานอย่างเงียบ ๆ จากนั้นเปิดให้เห็นทีละน้อย และปิดได้ทันทีหากจำเป็น
ตรวจสอบความเข้าใจ
ทดสอบความเข้าใจของคุณเกี่ยวกับแฟล็กฟีเจอร์
สรุปทบทวน
คุณได้เรียนรู้การแยกการนำระบบไปใช้งานออกจากการรีลีสด้วย แฟล็กฟีเจอร์
- แฟล็กซ่อนโค้ดไว้หลังเงื่อนไขที่ขับเคลื่อนด้วยการกำหนดค่า
- การกำหนดกลุ่มเป้าหมายช่วยให้ทยอยเปิดใช้งานตามเปอร์เซ็นต์ได้
- สวิตช์ปิดฉุกเฉินช่วยให้กู้คืนได้ทันทีโดยไม่ต้องนำระบบไปใช้งานใหม่
- ออกแบบแฟล็กให้ล้มเหลวอย่างปลอดภัย และล้างแฟล็กเพื่อหลีกเลี่ยงหนี้ทางเทคนิค
เมื่อใช้ร่วมกับ blue/green และแคนารี แฟล็กจะช่วยเติมเต็มชุดเครื่องมือการส่งมอบขั้นสูงของคุณ
เรียนรู้ CI/CD with GitHub Actions & DevOps Pipelines ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 12
- บทเรียน
- 48
คำถามที่พบบ่อย
บทเรียน “แฟล็กฟีเจอร์และการทยอยเปิดตัว” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “แฟล็กฟีเจอร์และการทยอยเปิดตัว” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส CI/CD with GitHub Actions & DevOps Pipelines ให้อัปเกรดเป็น CoddyKit PRO คอร์ส CI/CD with GitHub Actions & DevOps Pipelines มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “แฟล็กฟีเจอร์และการทยอยเปิดตัว”
แยกการนำไปใช้งานออกจากการเผยแพร่ด้วยแฟล็กฟีเจอร์ จากนั้นเปิดใช้ความสามารถใหม่ทีละน้อย และปิดได้ทันทีหากเกิดข้อผิดพลาด คุณปฏิบัติ CI/CD with GitHub Actions & DevOps Pipelines ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน CI/CD with GitHub Actions & DevOps Pipelines หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน CI/CD with GitHub Actions & DevOps Pipelines บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “แฟล็กฟีเจอร์และการทยอยเปิดตัว” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน CI/CD with GitHub Actions & DevOps Pipelines นี้ได้ไหม
ได้ บทเรียน CI/CD with GitHub Actions & DevOps Pipelines ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การนำไปใช้แบบน้ำเงิน/เขียว
- การออกรุ่นแบบคานารีด้วยแอ็กชัน
- การย้อนกลับและการกู้คืนจากภัยพิบัติ
- แฟล็กฟีเจอร์และการทยอยเปิดตัว