Description: อธิบายการ build, Cloudflare Workers และปัญหาระบบปล่อยเว็บที่รายงานผลสำเร็จผิดพลาด
Introduction
แค่แก้เว็บไซต์แล้วเผยแพร่ ทำไมต้องรอหลายสิบนาที แต่หน้าเว็บยังเหมือนเดิม? บางครั้งปัญหาไม่ได้อยู่ที่การสร้างไฟล์ แต่อยู่ที่ขั้นตอนตรวจสอบที่ซ้อนกันมากเกินไป
What is happening?
การ build คือการนำบทความและโค้ดมาสร้างเป็นไฟล์ที่เบราว์เซอร์ใช้งานได้ Cloudflare Workers ทำหน้าที่ตอบคำขอของผู้เข้าชมและรันโค้ดตามความจำเป็น ส่วน GitHub Actions และ Buildkite สามารถสั่ง build และเผยแพร่ได้ ถ้าเรียกทุกปัญหาว่า Worker หยุดทำงาน ก็จะหาต้นเหตุยาก
The absurd failure
ลองนึกถึงระบบที่ต้องถาม Worker ก่อนว่าอนุญาตให้เผยแพร่ไหม สลับไปใช้โค้ดล่าสุด รันซ้ำ ตรวจว่ามีอะไรเปลี่ยน เช็กบัญชีโควตาฟรี แล้วค่อยสรุปผล ด่านแรกไม่ตอบเพราะใช้โควตาหมด ระบบจึงข้ามไป แต่กลับติดที่ด่านถัดมา สุดท้ายไม่มีอะไรถูกเผยแพร่ ทว่าหน้าจอขึ้นว่า สำเร็จ เหมือนบริษัทขนส่งแจ้งว่าส่งของแล้วทั้งที่กล่องยังอยู่ในคลัง
How to tell what failed
ข้อความผิดพลาดร้อยบรรทัดอาจเกิดจากไฟล์ร่วมที่เสียเพียงไฟล์เดียว ในทางกลับกัน build ผ่านก็ไม่ได้แปลว่าเว็บจริงเปลี่ยนแล้ว ต้องแยกตรวจการสร้างไฟล์ การอัปโหลด และเวอร์ชันที่ผู้ใช้เห็นจริง
A simpler route
วิธีลดความยุ่งยากคือใช้คำสั่งหลักเพียงชุดเดียวสำหรับเผยแพร่ Worker และอีกชุดสำหรับสร้างและอัปโหลดเว็บ ทุกระบบเรียกคำสั่งเดียวกัน หากไม่ได้เผยแพร่ต้องรายงานว่าล้มเหลวพร้อมเหตุผล แล้วตรวจหน้าเว็บจริงหลังทำเสร็จ
Conclusion
ตั้งใจใช้ระบบอัตโนมัติเพื่อลดงานคน แต่สุดท้ายคนต้องมานั่งดูแลระบบอัตโนมัติทั้งวัน บางทีทางออกคือเอาด่านที่ไม่จำเป็นออก
