วิศวกรของ Facebook จัดการเซิร์ฟเวอร์ล้านกว่าตัวในแต่ละวันได้อย่างไร
ตอนนี้สติถิผู้ใช้งานของ Facebook พุ่งไปสูงกว่า 2 พันล้านคนแล้ว แน่นอนว่าเซิร์ฟเวอร์นั้นมีจำนวนมหาศาลถึงหลายล้านตัว เราเคยสงสัยหรือไม่ว่าวิศวกรของ Social Media ยักษ์ใหญ่ของโลกนี้เขามีวิธีการบริหารจัดการเซิร์ฟเวอร์จำนวนมากแต่ละเครื่องได้อย่างไร แน่นอนว่าคงไม่ได้เดินไปเปิดหน้าเครื่องทีละเครื่องแน่ๆ
Facebook ได้พัฒนากระบวนการตั้งค่าแบบใหม่ขึ้นที่ชื่อ Location Aware Delivery (LAD) โดยก่อนหน้านี้บริษัทก็ได้ใช้เครื่องมือ Open-source ที่ชื่อ ‘Zoo Keeper’ เพื่อกระจายข้อมูลการตั้งค่าให้กับเซิร์ฟเวอร์แต่ปัญหาคือมันก็ยังไม่เหมาะสมกับบริษัทขนาดใหญ่อย่าง Facebook นั่นเอง เช่น การจำกัดขนาดของไฟล์ตั้งค่าที่ 5 MB และจำนวนสูงสุดในการกระจายการตั้งค่าได้แค่ 2500 ตัว ลองนึกภาพดูว่าเวลาใช้งานจริงกับบริการอย่าง Messenger ที่ต้องสามารถแก้ไขการตั้งค่าได้ทันทีแถมยังมีการแบ่งเรื่องของภาษาอีกท่ามกลางเซิร์ฟเวอร์หลายล้านตัว ดังนั้นเพื่อเอาชนะอุปสรรคนี้ทีมวิศวกรจึงต้องแก้ไขปัญหา เช่น รับไฟล์ตั้งค่าได้มากกว่า 10 เท่าของ Zoo keeper และ ต้องมี Latency น้อยกว่า 5 วินาที ที่สำคัญต้องทนทานต่อปริมาณทราฟฟิคที่อาจพุ่งขึ้นมหาศาลจากการใช้งานที่พร้อมจะเกิดได้เสมอด้วย
สิ่งที่วิศวกรได้แก้ปัญหาคือ LAD ประกอบด้วย 2 ส่วนคือ Proxy ที่อยู่บนทุกเครื่องและส่งไฟล์ตั้งค่าให้กับเครื่องที่ต้องการ อีกส่วนหนึ่งคือ Distributor (ชื่อเรียกที่อ้างถึงข้อมูลการตั้งค่าที่ถูกนำส่ง) ซึ่งทำหน้าที่เช็คสิ่งที่ต้องอัปเดตใหม่ หากพบก็ใช้กระจายแบบ Tree ไปยังกลุ่มของเครื่องต่างๆ ที่ต้องการอัปเดต โดยในบล็อกของ Facebook ได้เผยว่า “การใช้ Tree ทำให้ LAD สามารถอัปเดตไปยัง Proxy ที่สนใจได้แทนที่จะกระจายไปยังทุกเครื่องทั้งกลุ่ม นอกจากนี้เครื่องแม่จะส่งอัปเดตไปยังเครื่องลูกโดยตรงเพื่อการันตีว่าไม่มีเครื่องใกล้ต้นทางได้รับมากเกินไป”
ดังนั้นบริษัทยักษ์ใหญ่จึงสามารถเอาชนะข้อจำกัดของขนาดการตั้งค่าเป็น 100 MB และจากจำนวนสูงสุด 2,500 เครื่องเป็น 40,000 เครื่องแทน แม้ว่าเป็นเรื่องยากแต่ก็จำเป็นเพราะองค์กรที่มีเซิร์ฟเวอร์เยอะขนาดนี้ได้คงมีแค่ไม่กี่ที่ในโลกเท่านั้น ผู้สนใจสามารถติดตามชมใน Blog ของ Facebook แบบเต็มๆ ได้ที่นี่
Comments
Post a Comment