Friday, December 15, 2006

Ebay Architecture

รู้ว่า ebay มี load เยอะแน่ๆ
แต่ไม่รู้ว่าเยอะขนาดนี้
  • 1,000,000,000 page view ต่อวัน
  • 212,000,000 registered user
  • 1,000,000,000 photos
  • 2,000,000 GB data
  • 26,000,000,000 sql execute ต่อวัน
    (อะไรวะ เฉลี่ยหนึ่งหน้า(page view) พ่อล่อไป 26 sql เลยเหรอ)
  • 3,000,000,000 api call ต่อเดือน


architecture เป็นไงบ้างหรือ
  • scale horizontal -> parallel boxes
  • presentation layer -> MSXML (พัฒนาเอง)
  • ใช้แค่ servlet, connection pools
    ภาษาอังกฤษ เขาใช้คำว่า "Throw out most of J2EE"
  • ไม่ใช้ session state
    ถ้าจำเป็นต้องมี ก็จะใช้ cookie หรือ database ชั่วคราว
  • app server ใช้ WebSphere (jdk 1.3)
    ทายสิว่าใช้กี่ตัว
    คำตอบคือ 15,000
  • Database -> oracle
    แค่ 200 database
    โดย split database ตาม functional
  • no stored procedures (บ้านเราคงไม่ชอบแนวนี้)
  • หลีกเลี่ยงการใช้ cpu ใน database layer
    ฉนั้น join กับ sorting กรุณาออกไปทำที่ application layer
  • minimize db transaction


แค่เห็นก็เหนื่อยแล้ว นี่ยังไม่พูดเรื่อง searhing กับ deployment
ใครอยากรู้ต่อ ลองอ่าน ebay presentation ดู

Note: นึกถึง project เมื่อ 2 ปีก่อน
ผมเคยมอง architecture ตรงข้ามกับ
พวกผู้ชำนาญการจากบริษัท IBM กับ คณะที่ปรึกษา (อาจารย์มหาวิทยาลัยมีชื่อแห่งหนึ่ง)
รวมทั้ง sales จาก IBM

ตอนนั้น production จะต้อง deploy บน box 4 cpu กับ box 2 cpu
ผมบอกให้ใช้ 2 cpu เป็น database server
สวน app server ให้ใช้ 4 cpu box

ทางฝั่งนู้น บอก "ไม่ไช่ๆ จากประสบการณ์ของผู้เชี่ยวชาญ
database box ต้องใช้ 4 cpu ต่างหาก"
แล้วก็ดื้อ config เครื่องไปตามนั้น
ถึงวันใช้จริง load ฝั่ง database เฉลี่ยไม่เกิน 10 %
ส่วนฝั่ง app อยู่แถว 60 % ถ้าเจอ spike ก็พุ่งปรึ๊ดเกือบติดเพดาน
ผ่านไป 2 เดือนพวกผู้เชี่ยวชาญก็เลยยอม โอน cpu จาก database
มาให้ application server

เวลาผ่านไปอีก 1 ปี ก็มีการย้ายเครื่องขึ้น linux mainframe
พวกผู้ชำนาญการก็ยังไม่เข็ด
จัดสรร computing resource ให้ database server เยอะกว่า app
แต่สุดท้ายก็ต้องโอน resource กลับมาให้ app อยู่ดี

เรื่องนี้สอนให้รู้ว่า
1. ผู้เชี่ยวชาญ ถ้าใช้ประสบการณ์เดิมๆ มาตัดสิน
บางครั้งก็เดาพลาดได้เหมือนกัน
2. คนเขียนโปรแกรมย่อมรู้ดีว่าตัวเองเขียน app ให้มี nature แบบไหน

Related link from Roti

Tuesday, December 12, 2006

Which Logos

Ridiculous fish เขามี quiz สนุกๆให้ทำ
Logos

Related link from Roti

Breaking Barriers

Breaking Barriers
"The Potential of Free and Open Source Software
for Sustainable Human Development"

เป็นเอกสาร case studies project ที่ใช้ FOSS

Related link from Roti