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
หมวดหมู่
ป้ายกำกับ
3d
android
animation
as3
beginner
browser
bug
color
css
database
document
excel
facebook
facebook api
flash
flex
game
game design
google
Graphic
html
illustrator
ios
javascript
marketing
mobile
mysql
ngui
node.js
performance
photoshop
php
programming
query
review
sai
Server
social game
spine
tools
tutorial
ui
Unity
unity3d
เรื่องง่ายแต่กูไม่รู้
บันทึกเก่า
- พฤษภาคม 2017
- กุมภาพันธ์ 2017
- มกราคม 2017
- ธันวาคม 2016
- พฤศจิกายน 2016
- ตุลาคม 2016
- กันยายน 2016
- สิงหาคม 2016
- กรกฎาคม 2016
- มิถุนายน 2016
- พฤษภาคม 2016
- เมษายน 2016
- มีนาคม 2016
- กุมภาพันธ์ 2016
- มกราคม 2016
- ธันวาคม 2015
- พฤศจิกายน 2015
- ตุลาคม 2015
- กันยายน 2015
- สิงหาคม 2015
- กรกฎาคม 2015
- มิถุนายน 2015
- พฤษภาคม 2015
- เมษายน 2015
- มีนาคม 2015
- กุมภาพันธ์ 2015
- มกราคม 2015
- ธันวาคม 2014
- พฤศจิกายน 2014
- ตุลาคม 2014
- กันยายน 2014
- สิงหาคม 2014
- กรกฎาคม 2014
- มิถุนายน 2014
- พฤษภาคม 2014
- เมษายน 2014
- มีนาคม 2014
- กุมภาพันธ์ 2014
- มกราคม 2014
- ธันวาคม 2013
- พฤศจิกายน 2013
- ตุลาคม 2013
- กันยายน 2013
- สิงหาคม 2013
- กรกฎาคม 2013
- มิถุนายน 2013
- พฤษภาคม 2013
- เมษายน 2013
- มีนาคม 2013
- กุมภาพันธ์ 2013
- มกราคม 2013
- ธันวาคม 2012
- พฤศจิกายน 2012
- ตุลาคม 2012
- กันยายน 2012
- สิงหาคม 2012
- กรกฎาคม 2012
- มิถุนายน 2012
- พฤษภาคม 2012
- เมษายน 2012
- มีนาคม 2012
- กุมภาพันธ์ 2012
- มกราคม 2012
- ธันวาคม 2011
- พฤศจิกายน 2011
- ตุลาคม 2011
- กันยายน 2011
- กรกฎาคม 2011
- มิถุนายน 2011
- พฤษภาคม 2011
- เมษายน 2011
- มีนาคม 2011
- กุมภาพันธ์ 2011
- มกราคม 2011
- ธันวาคม 2010
- พฤศจิกายน 2010
- ตุลาคม 2010
- กันยายน 2010
- สิงหาคม 2010
- กรกฎาคม 2010
- มิถุนายน 2010
- พฤษภาคม 2010
- เมษายน 2010
- มีนาคม 2010
- กุมภาพันธ์ 2010
- มกราคม 2010
- ธันวาคม 2009
- พฤศจิกายน 2009
- ตุลาคม 2009
- กันยายน 2009
- สิงหาคม 2009
- กรกฎาคม 2009
- มิถุนายน 2009
- พฤษภาคม 2009
- มีนาคม 2009