ช่วงหลังไปงาน meetup มักจะได้ยินคำแปลก ๆ ใหม่ ๆ เยอะมาก
หนึ่งในนั้นก็คือ Blue-Green Deployment จาก Docker Meetup
ดังนั้น มาทำความรู้จักกันหน่อยสิ
ว่ามันคืออะไร ?
ว่ามันมีขั้นตอนการทำงานอย่างไร ?
ว่ามันมีประโยชน์อย่างไรบ้าง ?
มาดูรูปแบบการ deploy และ release ระบบงาน แบบเดิม ๆ กันก่อน
เมื่อต้องการ deploy ระบบงานใหม่ ๆ ขึ้นไปยัง production server มักจะมีขั้นตอนดังนี้- ต้องหยุดให้บริการระบบงานเดิมก่อน นั่นคือต้องปิดระบบกันก่อน
- ทำการ deploy ระบบงานใหม่ขึ้นไป
- ต้องทำการทดสอบภายในกันก่อน ว่าทำงานถูกต้องหรือไม่ ถ้าระบบซับซ้อนก็ใช้เวลานานหน่อย
- เมื่อทุกอย่างพร้อม ก็เปิดใช้งานระบบกันเลย (Release)
มาดูแนวคิดของ Blue-Green Deployment
เป็นแนวคิดที่เรียบง่ายมากคือ เมื่อต้องการ deploy ระบบงานใหม่ ๆ ก็ไม่ต้องปิดระบบเดิม ก็ปล่อยให้ระบบเดิมทำงานไป และทำการ deploy ระบบใหม่ขึ้นไปแบบขนานเลย โดยที่- Blue คือ ระบบเดิม หรือ New Green
- Green คือ ระบบใหม่
- ลดเวลา Downtime
- ลดความเสี่ยงในการ deploy
- สามารถทดสอบได้นานเท่าที่ต้องการจนกว่าจะมั่นใจ
- Environment ของระบบที่เพิ่มขึ้น
- กระบวนการทดสอบระบบที่รวดเร็วขึ้น เช่น Automated testing
- การออกแบบ service ในรูปแบบของ Microservice และ SOA เป็นต้น เพื่อให้แต่ละ service แยกออกจากกันอย่างชัดเจน เพื่อลดความซับซ้อนของระบบ และ ผลกระทบต่าง ๆ
จำไว้เลยว่า ยิ่งเวลาแต่ละ deploy แต่ละ release บ่อย ๆ ก็ยิ่งดีครับ