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