Azure รายงานความผิดพลาดใน Azure DevOps ศูนย์ข้อมูลบราซิล สคริปต์ลบฐานข้อมูลพิมพ์ผิดกลายเป็นลบเซิร์ฟเวอร์ – SMS Marketing ราคาถูกที่สุด
Azure รายงานถึงผลวิเคราะห์เหตุการณ์บริการ Azure DevOps ในศูนย์ข้อมูลบราซิลใต้ (SBR) ล่มไปถึง 10.5 ชั่วโมงเมื่อวันที่ 24 พฤษภาคมที่ผ่านมา โดยสาเหตุหลักคือสคริปต์ที่พิมพ์ผิด
เหตุการณ์ครั้งนี้เกิดใน Sprint 222 ที่อัพเกรดไลบรารี Microsoft.Azure.Managment ที่เตรียมเลิกใช้งานไปเป็น Azure.ResourceManager ทำให้แพตช์มีขนาดใหญ่มาก และส่วนที่พิมพ์ผิดอยู่ในฟังก์ชั่นลบ snapshot ของฐานข้อมูล
ทีมงานเริ่ม deploy โค้ดที่ผ่านการทดสอบแล้วจากวงเล็กสุดหรือ Ring 0 ที่เป็นเซิร์ฟเวอร์ Azure DevOps ภายใน แต่เซิร์ฟเวอร์ภายในก็ไม่มี snapshot ฐานข้อมูลทำให้โค้ดไม่ถูกรัน หลังจากรันโค้ดอยู่ใน Ring 0 อยู่หลายวันก็ปล่อยโค้ดสู่ Ring 1 ที่ครอบคลุมถึงศูนย์ข้อมูล SBR เมื่อโค้ดพบ snapshot ที่เก่าพอก็รันโค้ดลบ snapshot เมื่อโค้ดรันขึ้นมาจริงๆ ก็ลบฐานข้อมูลโปรดักชั่นไปทั้งหมด 17 เซิร์ฟเวอร์
ทีมงาน Azure DevOps รู้ตัวภายใน 20 นาทีหลังระบบเริ่มล่ม จากนั้นก็ต้องขอความช่วยเหลือจากทีมงาน Azure SQL และกระบวนการกู้ฐานข้อมูลกินเวลาหลายชั่วโมงเพราะฐานข้อมูลบางตัวเก่าจนสร้างมาก่อนมีบริการ Geo-zone-redundant backup ทำให้การกู้คืนกินเวลานานกว่าปกติเมื่อสั่งกู้คืนแบบ Geo-zone-redundant backup
ทาง Azure ะบุว่า แก้ไขบั๊กนี้เรียบร้อยแล้ว, ชุดทดสอบจะทดสอบโค้ดส่วนที่ลบ snapshot เสมอ, และเพิ่ม Azure Resource Manager Locks เพื่อป้องกันการลบโดยไม่ตั้งใจอีก
ที่มา – Azure DevOps Status