อ่านเจอ tweet ที่น่าสนใจของคุณ Jez Humble ใน twitter.com
เป็นผู้ร่วมเขียนหนังสือ Continuous Delivery
อธิบายเกี่ยวกับ Continuous Delivery/Deployment (CD)
ว่ามันไม่ใช่การทำอะไรก็ได้
เพื่อ build ระบบงานจาก code/config ที่อยู่ใน Version Control System
จากนั้นก็ทำการ deploy ไปยัง production server ให้เร็วที่สุด
จากนั้นก็ไปทดสอบบน production server อีกที

แต่มันคือการสร้างความปลอดภัย (SAFE) ให้กับการส่งมอบระบบงานไปยัง production server

ดังนั้นสิ่งที่ควรต้องทำใน pipeline ของ CD จำเป้นต้องมี

  • การ run ชุดการทดสอบต่าง ๆ แน่นอนว่าต้องทดสอบได้เร็ว และ ทดสอบอย่างสม่ำเสมอหรือต่อเนื่อง (Continuous Testing) เพื่อช่วยให้เราหาปัญหาต่าง ๆ ก่อนส่งมอบ
  • ขั้นตอนการ deploy จะต้องเร็วและมีความน่าเชื่อถือ
  • ในการทำงานจะทำงานแบบเล็ก ๆ หรือ small batch ดังนั้น ถ้าระบบเป้นแบบ monolith แล้วก็จะยิ่งยากลำบากขึ้นเรื่อย ๆ
  • เนื่องจากระบบจะมีขนาดใหญ่หรือมีการเปลี่ยนแปลงเรื่อย ๆ ดังนั้นจำเป็นต้อง detect ปัญหาต่าง ๆ ได้อย่างรวดเร็วเสมอ รวมทั้งเรียนรู้จากปัญหาบน production server เพื่อเอามาเพิ่มใน pipeline ก่อน deploy หรือส่งมอบ นั่นคือเราจะไม่ผิดซ้ำที่เดิม

สิ่งเหล่านี้คือเหตุผลที่ในหนังสือ Continuous Delivery เขียนไว้ว่า

Reliable Software Release through build, test and deployment automation

แน่นอนว่า ไม่มี Test in production นะ !!
แนวคิด Test in production นั้นดีมาก
แต่ว่ามันคือสิ่งที่จำเป็นต้องทำจริง ๆ หรือ ?