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

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

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

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

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

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