Travis CI ขี้แจงเหตุเซิร์ฟเวอร์ดับเมื่อเดือนมีนาคม รันเทสบนเซิร์ฟเวอร์ Production ข้อมูลหายเกลี้ยง

by lew
9 April 2018 - 04:20

Travis CI ผู้ให้บริการ continuous integration (CI) ทำฐานข้อมูลหายทั้งระบบเมื่อเดือนมีนาคมที่ผ่านมา หลังพลาดรันชุดทดสอบโดยกำหนดคอนฟิกตัวแปร DATABASE_URL เป็นเซิร์ฟเวอร์ production ทำให้สคริปต์สั่งล้างฐานข้อมูลเพื่อเตรียมทดสอบ และเมื่อสัปดาห์ที่แล้วทีมงานก็เขียนบล็อครายงานสาเหตุและแนวทางแก้ไข

ความผิดพลาดนี้เกิดจากนักพัฒนาใช้หน้าจอ tmux เปิดฐานข้อมูล production เพื่อตรวจสอบปัญหา จึงคอนฟิกให้ตัวแปรชี้ไปยังฐานข้อมูลจริง หลังจากนั้นก็ทิ้งเทอร์มินัลนี้ไว้หลายวัน แล้วกลับมาใช้รันทดสอบโดยลืมไปว่าตั้งให้ใช้ฐานข้อมูลจริงไว้

หลังฐานข้อมูลถูกล้าง ทีมงานยังทำผิดพลาดหลายอย่าง เช่น เปิดบริการขณะกู้ฐานข้อมูล หรือระบบ cron ไม่กลับมาทำงาน อย่างไรก็ตาม ทีมงานสามารถกู้ฐานข้อมูลกลับมาได้โดยเสียข้อมูลไปเพียง 15 นาทีเท่านั้น

ระบบพัฒนากับเซิร์ฟเวอร์จริงของ Travis CI ไม่ได้แยกขาดจากกัน โดยระบุว่าการออกแบบเครื่องมือทำให้แยกจากกันได้ยาก และกระบวนการแก้ไขก็เป็นการแจ้งเตือนนักพัฒนาว่ากำลังทำงานบนระบบใด รวมถึงการแก้ไขไลบรารีอย่าง DatabaseCleaner ให้เตือนนักพัฒนาว่ากำลังใช้ฐานข้อมูลนอกเครื่องอยู่

ที่มา - Travis CI

Blognone Jobs Premium