การ deploy มันคืออะไร ?
มันคือการพูดถึงขั้นตอนการของนำ code แต่ละบรรทัด
ย้ายไปยัง server ต่าง ๆ หรือไม่ ?
นั่นหมายความว่า
เรากำลังแก้ไขปัญหาบางอย่าง
เรากำลังทำงานที่น่าเบื่อซำแล้วซ้ำอีก
ไม่ว่าจะใช้เครื่องมือใด ๆ ก็ตาม
แต่เรากลับพบว่า เครื่องมือใด ๆ ก็ไม่ใช่ปัญหา
แล้วปัญหามันเกิดขึ้นมาได้อย่างไรล่ะ ?
สิ่งที่น่าสนใจสำหรับการ deploy software
เราพบว่าไม่ว่าจะใช้เครื่องมือที่ดีเพียงใด ก็ยังพบว่า การ deploy มักจะเกิดความผิดพลาดเสมอ จึงเกิดคำถามตามมามากมาย เช่น- ทำไมเกิดข้อผิดพลาด ?
- ทำไมเรา deploy ระบบที่มี bug เพียบขึ้นไปล่ะ ?
- ทำไมระบบมี downtime ด้วยล่ะ ?
- สิ่งที่ deploy ขึ้นไปมันไม่น่าจะผิดพลาดนะ !!
- ไม่ทดสอบระบบกันหรือไง ?
ลองกลับไปดูที่ทีม และ องค์กรของเราสิว่า มีขั้นตอนการ deploy software อย่างไร ?
ทำการ deploy แบบใหม่ ๆ หรือ Big Bang หรือไม่ ? ทำการ deploy แบบเล็ก ๆ บ่อย ๆ หรือไม่ ? การ deploy แต่ละครั้งส่งผลกระทบมากหรือน้อย ? การ deploy มีปัญหาอะไรบ้าง ?ลองตั้งคำถามสิว่า
- เราต้องการ release manager หรือไม่ ?
- เราต้องการการ deploy แบบพิเศษหรือด่วน ๆ ในทุก ๆ วันหรือไม่ ?
- เราต้องอยู่เฝ้าในทุก ๆ การ deploy หรือไม่ ?
- การเริ่มต้นที่ดี
- การจัดการเรื่อง branch
- การควบคุม
- การ monitoring