วิศวกรของ 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

Popular posts from this blog

เตือนเว็บ Office 365 ปลอม เสี่ยงถูกหลอกลง Trickbot Trojan ขโมยรหัสผ่าน

แนะนำวิธีเปิดใช้ DNS over HTTPS บน Firefox

Kali Linux for Raspberry Pi 4 ออกแล้ว!