0Pricing
DevOps Bootcamp · บทเรียน

แฟล็กฟีเจอร์และการทยอยเปิดตัว

แยกการนำไปใช้งานออกจากการเผยแพร่ด้วยแฟล็กฟีเจอร์ จากนั้นเปิดใช้ความสามารถใหม่ทีละน้อย และปิดได้ทันทีหากเกิดข้อผิดพลาด

แฟล็กฟีเจอร์และการทยอยเปิดตัว เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 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 และแคนารี แฟล็กจะช่วยเติมเต็มชุดเครื่องมือการส่งมอบขั้นสูงของคุณ

คำถามที่พบบ่อย

บทเรียน “แฟล็กฟีเจอร์และการทยอยเปิดตัว” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “แฟล็กฟีเจอร์และการทยอยเปิดตัว” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “แฟล็กฟีเจอร์และการทยอยเปิดตัว”

แยกการนำไปใช้งานออกจากการเผยแพร่ด้วยแฟล็กฟีเจอร์ จากนั้นเปิดใช้ความสามารถใหม่ทีละน้อย และปิดได้ทันทีหากเกิดข้อผิดพลาด คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “แฟล็กฟีเจอร์และการทยอยเปิดตัว” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม

ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การนำไปใช้แบบน้ำเงิน/เขียว
  2. การออกรุ่นแบบคานารีด้วยแอ็กชัน
  3. การย้อนกลับและการกู้คืนจากภัยพิบัติ
  4. แฟล็กฟีเจอร์และการทยอยเปิดตัว
← กลับไปที่ DevOps Bootcamp