ตอนนี้ 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
on
อยากรู้ว่าใครเป็นคนคุมบังเหีย
winggundamth Mon, 21/06/2010 - 15:17
อยากรู้ว่าใครเป็นคนคุมบังเหียนการใช้เทคโนโลยีทั้งหมดของ Facebook ถึงได้ตัดสินใจว่าตัวไหนจะใช้ตัวไหน หรือพัฒนาเองด้วยจัง
ผู้ใช้มั๊งครับ
lingjaidee Mon, 21/06/2010 - 17:45
In reply to อยากรู้ว่าใครเป็นคนคุมบังเหีย by winggundamth
ผู้ใช้มั๊งครับ ;)
อันไหนคนใช้งานเยอะ ก็ต้องตัดสินใจสร้าง script ที่ดีกว่าขึ้นมาสักชุด เพื่อแยกงานไปอีก process นึง และสร้างความเสถียรให้มากที่สุด ตามความนิยม ลดงานระยะยาวแบบศูยน์กลางได้ด้วย
ยิ่งใหญ่จริงๆเว็บนี้
077023 Mon, 21/06/2010 - 15:24
ยิ่งใหญ่จริงๆเว็บนี้
น่าสนใจดี มีแหล่งข้อมูลเพิ่มเ
khajochi Mon, 21/06/2010 - 15:24
น่าสนใจดี
มีแหล่งข้อมูลเพิ่มเติมอีกที่หากใครสนใจ Highscalability tag Facebook
โอ้ว Varnish จริงๆด้วย
lancaster Mon, 21/06/2010 - 15:38
โอ้ว Varnish จริงๆด้วย
มือถือผมมี facebook
origami Mon, 21/06/2010 - 15:38
มือถือผมมี facebook integration มันทำงานได้เร็วมาก พอๆ กันที่กัวมันมากอยู่เหมือนกัน
ใช้เป็นกรณีศึกษาในห้องเรียนเก
redarmy Mon, 21/06/2010 - 15:39
ใช้เป็นกรณีศึกษาในห้องเรียนเกี่ยวกับการจัดการเทคโนโลยีได้ดีเลยนะเนี่ย
ทีมงานคงแน่นประสบการณ์มากกว่า
Chipset Mon, 21/06/2010 - 15:48
ทีมงานคงแน่นประสบการณ์มากกว่าทีมของทวิตเตอร์ด้วยนะครับเนี่ย
รู้สึกจะแอบรันโปรแกรมจริงนั่น
กึ่งยิงกึ่งผ่าน Mon, 21/06/2010 - 16:02
รู้สึกจะแอบรันโปรแกรมจริงนั่นล่ะครับ
ก่อนหน้านี้เวลาผมเข้า gmail บน Android แล้วคลิกที่ link ของเมล์ facebook ที่เตือนว่ามีใครส่งข้อความหาเราบ้าง
ปกติมันจะเด้งไปหน้า facebook ปกติ ซึ่งมันไม่เหมาะกับหน้าจอของโทรศัพท์
มาวันนี้ก็กดอีก แต่มันก็เด้งไปที่หน้า touch.facebook.com.... แล้วก็ใช้งานได้สะดวกเลยทีนี้
โอ๊ะ เปลี่ยนตอนไหนเนี่ย เงียบๆ นิ่มๆ เลย
เป็นกรณีตัวอย่างสำหรับงานใหญ่
aimakung Mon, 21/06/2010 - 16:15
เป็นกรณีตัวอย่างสำหรับงานใหญ่ๆ เลยนะครับ
โดยเฉพาะเว็บประกาศผล Admission ควรเอาอย่าง มาก!
ล่มให้เด็กมันด่ากันได้ทุกปี :3
เอาไปลง google app engine จบ
khajochi Mon, 21/06/2010 - 16:41
In reply to เป็นกรณีตัวอย่างสำหรับงานใหญ่ by aimakung
เอาไปลง google app engine จบ !!
gae มันมี limit ครับ
lancaster Mon, 21/06/2010 - 18:52
In reply to เอาไปลง google app engine จบ by khajochi
gae มันมี limit ครับ แว้บเดียวก็เต็มแล้ว
แต่ก็เห็นมีนะครับที่แอบเอา static file ไปฝากไว้กับ gae
ใช้ EC2 Extra Large
nat3738 Mon, 21/06/2010 - 21:48
In reply to เอาไปลง google app engine จบ by khajochi
ใช้ EC2 Extra Large เลยครับ!!!!
ว่าแต่ เว็บประกาศผล ทำเป็นกระจายไปหลายที่ แต่สุดท้ายก็เข้าที่เซิร์ฟเวอร์กลางอยู่ดี ไม่รู้ให้เด็กมึนหัวเล่นทำไม (อย่างน้อยระบบรายงานผล O-NET ก็เป็นอย่างนี้แหละ แถมเป็น Java อีก ช้าเข้าไป)
"Java ช้า"
mk Mon, 21/06/2010 - 22:52
In reply to ใช้ EC2 Extra Large by nat3738
"Java ช้า" นี่ระวังโดนยำนะครับ :P
+1
RYUTAZA Mon, 21/06/2010 - 18:51
In reply to เป็นกรณีตัวอย่างสำหรับงานใหญ่ by aimakung
+1 ถ้าผมจำไม่ผิดคนมีส่วนเกี่ยวข้องกับเว็บประกาศผลนั้นก็อยู่แถว ๆ นี้ :P
5555+ ปลงกับเวปรัฐบาลของไทยละ
l2aelba Tue, 22/06/2010 - 06:33
In reply to เป็นกรณีตัวอย่างสำหรับงานใหญ่ by aimakung
5555+ ปลงกับเวปรัฐบาลของไทยละ
Siros ฝากมาบอกครับ 570
overbid Mon, 21/06/2010 - 16:41
Siros ฝากมาบอกครับ 570 billion page views per month
billion แปลว่า พันล้าน
ต้องแปลว่า เดือนละ 5 แสน 7 หมื่น ล้านครั้งครับ
อลังการการวางระบบมาก
Ekae Mon, 21/06/2010 - 16:58
อลังการการวางระบบมาก
ไม่รู้จักเลยซักอย่าง
นักเรียน Mon, 21/06/2010 - 18:50
ไม่รู้จักเลยซักอย่าง แต่นึกถึง เวบPantip ขานั้นล่มประจำ
ทีมงานช่วยเอาไป C and D ด้วยเถอะ
สุดเลย วางแผนดีมาก
mokin Mon, 21/06/2010 - 19:35
สุดเลย วางแผนดีมาก
อ่านผ่านๆแล้วอาจจะรู้สึกว่ามั
somsak_sr Mon, 21/06/2010 - 19:38
อ่านผ่านๆแล้วอาจจะรู้สึกว่ามันเป็นการเลือกเอาซอฟต์แวร์ server มารัน แต่จริงๆแล้วหลายตัว Facebook พัฒนาขึ้นเองในแบบ Distributed Computing บางตัวก็ออกเป็น Open Source ด้วยอย่าง Thrift เข้าใจว่าถ้าเว็บทั่วๆไปจะเอามาใช้นั้นทำได้ แต่จะมี overhead สูงอย่างไม่จำเป็น (ประมาณว่า แทนที่จะเป็น PHP + SQL ง่ายๆ กลายเป็นต้องเขียนโปรแกรมแบบ Parallel หรือ Multi-thread เองตั้งแต่แรก)
ผมคิดว่าที่น่าสนใจคือ กระบวนการที่นำมาสู่การตัดสินใจเปลี่ยน component แต่ละตัว เขาตัดสินใจยังไง และมีแผน roll out ยังไง เพื่อรองรับให้ทัน
แล้วจะเรัยกว่า LAMP
Wizard. Mon, 21/06/2010 - 20:09
แล้วจะเรัยกว่า LAMP อยู่ไม๊...
LAMP ครับ มีครบ
overbid Tue, 22/06/2010 - 00:42
In reply to แล้วจะเรัยกว่า LAMP by Wizard.
LAMP ครับ มีครบ เพียงแต่โมเยอะมาก