สิ่งที่มักเจอบ่อย ๆ ใน CI/CD

หนึ่งในสิ่งที่น่าสนใจมาก ๆ สำหรับ CI/CD (Continuous Integration and Delivery/Deployment) คือเรื่องคุณภาพ และ ความเร็ว ที่เป็นหัวใจสำคัญของแนวคิดและแนวปฏิบัตินี้เลย เป็นสิ่งที่ผิดปกติอย่างมาก (หรือเป็นเรื่องปกติไปแล้วนะ ?)

ปัญหาแปลก ๆ ที่มักเจอใน CI/CD คือ

  • ขาดการมีส่วนร่วมของทีมที่เกี่ยวข้องในการออกแบบ pipeline หรือ process
  • มีทีมมาออกแบบ pipeline หรือ process การทำงานให้เลย
  • ไม่สนใจว่า process เหล่านั้นจะเหมาะสมกับงานหรือไม่ แต่ต้องทำตาม standard process นี้เสมอ
  • การทำงานมักเริ่มที่ tool มาต่อที่ process และสั่งให้คนทำตามที่กำหนดหรือสร้างไว้ แบบนี้จะ improve ได้หรือไม่
  • คนทำงานให้ feedback ว่า process เหล่านี้ไม่ดีแล้ว แต่คนดูแลก็ไม่ได้สนใจอะไร ให้กลับไปที่คำว่า stadard process !!
  • ระบบสามารถทำการ run และ deploy ได้เร็วและบ่อย แต่คุณภาพแย่ เพราะว่า ไม่มีกระบวนการทดสอบ หรือ การทดสอบใด ๆ ยกเว้นแต่ manual test หลังจาก deploy
  • CI/CD process ไม่ stable เพราะว่า run ผ่านบ้าง ไม่ผ่านบ้าง บางครั้งช้า ๆ อีก
  • มีชุดการทดสอบ แต่ไม่สามารถทดสอบ หรือ run ซ้ำ ๆ ได้ เพราะว่า ขาดการวางแผนเรื่อง initial data และ initial dependency ต่าง ๆ
  • ขาดการทำ functional test ที่ดี และ non-functional test ที่ทำบ่อย ๆ
  • ชอบเจอ bug เยอะ ๆ ตอน deploy production มากกว่าก่อนการ deploy
  • งานหลาย ๆ อย่างสามารถนำมา run ได้ตั้งแต่เครื่องของนักพัฒนา เช่น Lint, static code analysis และ self-test เป็นต้น ไม่ต้องไปรอ run นาน ๆ หรอกนะ


แบบนี้มันก็แปลก ๆ เหมือนกันนะว่า เป้าหมายคือ fast feedback และ high quality เพื่อจะได้ปรับปรุงหรือแก้ไข ได้แต่เนิ่น ๆ แต่พอนำมาใช้กับแนวคิดเดิม ๆ ก็ได้ปัญหาใหม่ ๆ ขึ้นมา แทนที่จะได้ประโยชน์ !!

0
140