- ในช่วง 1.5 ปีที่ผ่านมา Slack ได้เปลี่ยนจากโครงสร้างแบบเดี่ยวไปเป็นโครงสร้างแบบเซลล์ (Cellular Architecture) เพื่อเพิ่มความซ้ำซ้อน (Redundancy) และจำกัดผลกระทบของความล้มเหลวระดับไซต์
- การเปลี่ยนแปลงนี้ขับเคลื่อนโดยความจำเป็นในการเพิ่มความยืดหยุ่นของบริการ Slack หลังเหตุขัดข้องของเครือข่ายในเดือนมิถุนายน 2021 ที่ทำให้ลูกค้า Slack พบกับการให้บริการที่ด้อยลง
- โครงสร้างแบบเซลลูลาร์ทำให้แต่ละบริการทำงานเป็นบริการเสมือนหนึ่งชุดต่อหนึ่ง Availability Zone (AZ) จึงทำให้ความล้มเหลวใน AZ หนึ่งไม่ส่งผลกระทบต่อ AZ อื่น
- ยังมีความสามารถในการระบายทราฟฟิก (Drain) ออกจาก AZ ที่มีปัญหา เพื่อแยก AZ นั้นออกจากส่วนที่เหลือของระบบได้อย่างมีประสิทธิภาพ
- กลไกการระบายถูกออกแบบให้รวดเร็ว ไม่มีข้อผิดพลาด ทำงานแบบค่อยเป็นค่อยไป และเป็นอิสระจากทรัพยากรของ AZ ที่กำลังถูกระบาย
- การเปลี่ยนไปใช้โครงสร้างแบบเซลลูลาร์ยังรวมถึงกลยุทธ์ที่เรียกว่า Siloing ซึ่งทำให้บริการรับและส่งทราฟฟิกเฉพาะภายใน AZ ของตัวเอง ช่วยกักปัญหาความล้มเหลวทั้งหมดให้อยู่ภายใน AZ เดียว
- การใช้งานกลไกการย้ายทราฟฟิกมุ่งเน้นไปที่ระบบที่ทำหน้าที่กำหนดเส้นทางคำขอของผู้ใช้ไปยังบริการแกนหลัก
- สถาปัตยกรรมใหม่นี้ใช้ความสามารถของ Envoy อย่าง weighted clusters และการกำหนดค่าน้ำหนักแบบไดนามิกผ่าน RTDS เพื่อรองรับการระบาย AZ
- การเปลี่ยนแปลงนี้ได้เปลี่ยนทั้งวิธีการปฏิบัติการของ Slack และวิธีการสร้างบริการ พร้อมมอบเครื่องมือใหม่ที่ทรงพลังสำหรับการจัดการทราฟฟิกและการบรรเทาความล้มเหลว
- ในบล็อกโพสต์ถัดไป จะเจาะลึกรายละเอียดด้านการติดตั้งใช้งานเชิงเทคนิค และพูดคุยว่าสถาปัตยกรรมใหม่นี้ส่งผลต่อการดำเนินงานของ Slack อย่างไร
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News