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

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

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

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

เสน่ห์อยู่ที่ปุ่มถอยกลับ

คุณค่าที่แท้จริงของ Blue-Green ไม่ใช่แค่การปล่อยแบบไม่มีดาวน์ไทม์ แต่คือการถอยกลับที่เร็วเท่ากับการไปข้างหน้า เพราะระบบชุดเก่ายังรันอยู่ครบถ้วน ถ้าเวอร์ชันใหม่มีปัญหาโผล่หลังปล่อยจริง การแก้ไขคือสลับทางเข้ากลับไปชุดเดิมภายในไม่กี่วินาที ไม่ใช่การไล่แก้กลางดึก ข้อแลกเปลี่ยนคือค่าใช้จ่ายของการมีระบบสองชุด และโจทย์ที่ต้องคิดให้จบคือฐานข้อมูล ซึ่งมักใช้ร่วมกันชุดเดียว การเปลี่ยนโครงสร้างข้อมูลจึงต้องทำแบบที่ทั้งเวอร์ชันเก่าและใหม่อยู่ร่วมกันได้ เช่นเดียวกับแนวคิด expand-contract ที่ใช้ในการเปลี่ยนโครงสร้างฐานข้อมูลแบบไม่หยุดระบบ

  • ปล่อยและทดสอบบนชุดว่างอย่างใจเย็น ก่อนให้ผู้ใช้จริงแตะ
  • สลับไปและสลับกลับได้ในวินาที ความผิดพลาดจึงราคาถูกลงมาก
  • ออกแบบการเปลี่ยนฐานข้อมูลให้สองเวอร์ชันอยู่ร่วมกันได้เสมอ

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

Blue-Green DeploymentDevOpsReleaseReliability

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

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

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

WhaleScope

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

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

อ่านต่อ

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

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

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

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

Infrastructure as Code: จัดการโครงสร้างพื้นฐานด้วยโค้ด ไม่ใช่กดมือทีละครั้ง

การตั้งค่าเซิร์ฟเวอร์ด้วยมือทีละครั้ง ทำให้ทำซ้ำยาก ผิดพลาดง่าย และไม่มีใครรู้ว่าใครเปลี่ยนอะไร Infrastructure as Code เปลี่ยนการตั้งค่าให้เป็นโค้ดที่ตรวจสอบ ทำซ้ำ และย้อนกลับได้

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

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