รู้จักซอฟต์แวร์เบื้องหลัง Facebook ว่ารองรับโหลดมหาศาลได้อย่างไร

by mk
21 June 2010 - 07:00

ตอนนี้ Facebook กลายเป็นเว็บไซต์ขนาดใหญ่ที่สุดของโลก มีผู้ชมเดือนละ 570 ล้านครั้ง มีคนมาดูภาพบน Facebook วินาทีละ 1.2 ล้านครั้ง แต่อัตราการล่มของ Facebook กลับน้อยมาก (โดยเฉพาะเมื่อเทียบกับ Twitter)

เว็บไซต์ Royal Pingdom จึงได้นำเสนอซอฟต์แวร์ที่ Facebook ใช้ทำเซิร์ฟเวอร์ว่ามีอะไรบ้าง? Facebook ทำอย่างไรจึงรองรับผู้ชมจำนวนมหาศาลนี้ได้

โดยภาพรวมแล้ว Facebook ยังใช้เทคโนโลยี LAMP เช่นเดียวกับเว็บไซต์ทั่วไป แต่ในรายละเอียด Facebook กลับพัฒนาซอฟต์แวร์ของตัวเองขึ้นมาอีกมากมาย

ซอฟต์แวร์ที่ Facebook ใช้ มีดังนี้

  • Memcached เป็นตัวกลางระหว่างเว็บเซิร์ฟเวอร์กับฐานข้อมูล เพื่อไม่ให้ต้องเรียกข้อมูลบ่อยครั้ง Facebook มีเซิร์ฟเวอร์ Memcached หลักหลายพันตัว ซึ่งน่าจะมากที่สุดในโลก
  • HipHop for PHP ตัวแปลภาษา PHP เป็น C++ เพื่อประสิทธิภาพที่ดีกว่า (อ่านข่าวเก่าประกอบตามลิงก์)
  • Haystack ระบบเก็บภาพประสิทธิภาพสูง ตอนนี้มีภาพถูกเก็บอยู่ 8 หมื่นล้านภาพ
  • BigPipe เว็บเซิร์ฟเวอร์ที่ให้บริการเฉพาะ "บางส่วนของเพจ" (ตัวอย่างที่ชัดเจนคือ Facebook Chat)
  • Cassandra ฐานข้อมูลแบบกระจายตัว (อ่านข่าวเก่าเรื่อง NoSQL)
  • Scribe ระบบจัดการ log file
  • Hadoop ระบบ MapReduce
  • Hive ระบบที่ใช้ SQL กับ Hadoop
  • Thrift ตัวกลางสำหรับภาษาที่ใช้พัฒนาอันหลากหลาย
  • Varnish ตัวเสริมประสิทธิภาพของ HTTP

นอกจากนี้ยังมีเทคนิคอื่นๆ อีกมาก เช่น การทดสอบโค้ดเฉพาะผู้ใช้บางกลุ่ม, การแอบรันระบบใหม่โดยไม่ให้ผู้ใช้รู้ เพื่อเป็นการทดสอบในสภาวะการณ์จริง รายละเอียดอ่านกันได้ตามลิงก์ครับ

ที่มา - Royal Pingdom

Blognone Jobs Premium