Scalable architecture by plug.in
26
May0
May0
from Barcamp Bangkok 3
ยุคของโครงสร้าง Webserver ได้แบ่งไว้คร่าวๆดังนี้
- Genaration #1- เริ่มต้น ยุคประหยัด
- [ WEB +DB] ในเครื่องเดียว
- รูปแบบมาตราฐาน ที่ทุกๆคนต้องเคยใช้กันอย่างแน่นอน แต่เมื่อเวปมีคนใช้งานถึงระดับนึง ก็มีความจำเป็นที่ต้องขยับขยายสู่ยุคที่ 2
- Generation #2 - เริ่มขยายตัว
- [WEB] + [DB] แยกเครื่อง
- จาก 1 เครื่องสู่สองเครื่อง โดยเป็น Webserver เครื่องนึงกับ Database server แยกกัน process ทำงาน
- เกิดคอขวดการส่งข้อมูลระหว่าง server 2 เครื่อง
- Generation #3
- [WEB] [WEB]… [WEB] + [DB] หลาย web server
- พลังเงินตรา! ซื้อเครื่องขยายไปเรื่อยๆ แบ่ง load ไปที่ตัว server
- ปัญหาคือแยก DB ไม่ได้ เนื่องจากระบบการทำงานจะเปลี่ยนแปลง
- Generation #4
- Replication DB = ทำ Mirror ของ Database เพื่อใช้ในการ SELECT
- [DB] => [Replication of DB : Read Only]
- เริ่มมี Database หลายตัว โดยมี Master แล้ว Replication โดย
- หากจะ READ (SELECT) ให้ไปที่ Replication
- หากต้อง WRITE (UPDATE,INSERT,DELETE) ไปที่ Master
- Feature Replication มีอยู่แล้วใน Mysql
- Generation #?
- Memcache => Save ข้อมูลต่างๆลง Memory
- เนื่องจากการทำงานของ HDD ช้ากว่า RAM มากกว่าหลายร้อยเท่า
- เก็บข้อมูลที่ใช้บ่อยๆไว้ใน RAM
- ทำ Farm server Memcache แทน Replication DB
- Horizontal Scaling
- http://farm4.static.flickr.com/3161/2459859342_69ed6b6785.jpg
- แบบที่เวปใหญ่ๆใช้กัน
- มี Master DB ไว้ดูว่าข้อมูลอยู่ที่ DB ไหน
- ข้อเสียคือ Database จะ Join ไม่ได้ ต้องออกแบบเวปใหม่แต่แรก
Note
- 80 % ของ end-user response time อยู่ที่ส่วน Front-end
- แต่ถ้าเพิ่มความเร็วส่วน back-end ได้ก็เป็นเรื่องดี
- เปิด Keep alive ในทุกๆ Hop
- ข้อมูลจะถูก Cache ไว้ไม่ต้องเรียกใช้หมดทุกรอบ
- แยก Static ไฟล์ กับ Dynamic
- ช่วยลด Cookie ที่ต้องส่งไปที่ static ไฟล์ได้
- Mysql
- ใช้ Memory table of unimportant data
- Fulltext search - search แบบ Fulltext
- Recommend : Sphinx
- Reverse Proxy
- Squid - Design สำหรับ Forward Proxy
- Recommend : Vanish* ( ได้เฉพาะ UTF-8)
- Big table - Database สำหรับการ Scalable
- Hadoop ( yahoo พัฒนา opensource )
Enjoy this article?
Consider subscribing to our RSS feed!
Tagged as: BarcampBkk3, scalable
ไม่มีความเห็น
ยังไม่มีความเห็น
ใส่ความเห็น
Who are we?
LevelUp! Studio aim to be the world-wide first-class web-based social gaming company. 

Contact Us
contact (at) levelup.in.th