Monday, 8 October 2007

ทำไมเว็บไซต์ใหญ่ ๆ หลายแห่ง ถึงไม่เขียนด้วยภาษา java

ผมอ่านมาจาก Nati Shalom's Blog จึงเห็นว่าน่าสนใจดีเลยจะนำมาเล่าให้ฟังกัน



นี้เป็นข้อมูลคร่าวๆว่า เว็บไซต์ดังๆหลายแห่งเช่น Firckr, YouTube, MySpace ... เค้าออกแบบระบบกันอย่างไรใช้ Technology อะไรกันบ้าง ซึ่งสรุปได้คร่าวๆดังนี้

OS: Linux 7 - Windows 2
Web server: Apache 7 - IIS 2 - Lighttpd 2
Scripting: PHP 4 - Perl 4 - ASP.NET 2 - Python 1 - Java 1
Database: MySQL 7 - SQL Server 1 (possibly 2)

ตัวเลขข้างหลังหมายถึงจำนวนที่ web ในตารางใช้

แน่นอนว่าเว็บไซต์เหล่านี้ต้องมีระบบขนาดใหญ่ มีความเสถียรภาพสูง เค้าทำกันอย่างไร เพื่อรองรับจำนวน transaction เป็นล้านๆต่อวัน

ส่วนใหญ่ใช้ LAMP (Linux, Apache, Mysql, PHP) กันเยอะ แต่ก็จะมีบ้างที่พัฒนา file system ขึ้นมาเองเช่น GFS ของ Google

บางที่ใช้ cache เพื่อช่วยแก้ปัญหาคอขวดของ database
และบางที่ก็แก้ปัญหาด้วยวิธีที่พัฒนาขึ้นมาเอง แต่ละแห่งก็ใช้วิธีที่ต่างกัน

แต่ที่สงสัยคือทั้งที่ Architecture J2EE ถูกออกแบบมาเพื่อระบบขนาดใหญ่ แต่ทำไมไม่มีใครนำไปใช้

เท่าทีอ่านดู Nati Shalom สรุปใจความได้ว่า ถ้าใช้ LAMP ในการพัฒนาระบบ ไม่ต้องกังวลเรื่องของค่าใช้จ่ายเกี่ยวกับ software และ LAMP เสถียรพอสมควรเลยทีเดียว แต่นี้เป็นเพียงความเห็นส่วนตัวของ Nati Shalom แล้วผู้อ่านคิดว่ายังไงกันบ้างครับ

Reference:
อยากอ่านเต็มๆเข้าไปอ่านได้ที่ http://natishalom.typepad.com/nati_shaloms_blog
มาดูว่าเว็บไซต์ขนาดใหญ่หลายแห่งเค้าออกแบบระบบกันอย่างไร http://www.highscalability.com

5 comments:

panuta said...

คิดว่าอาจเป็นเพราะ logic การทำงานของเว็บไซต์เหล่านี้ไม่ได้ซับซ้อนอะไรเท่าไหร่ เว็บรูปภาพ ก็แค่ดึงรูปภาพมาแสดง การใช้ภาษา script แทน java น่าจะ lightweight มากกว่า

สิ่งที่ซับซ้อน แทนที่จะเป็น logic การทำงาน กลับเป็นการ optimize ทรัพยากรที่มีอยู่ให้คุ้มค่า, การตอบสนองต่อ scalability ที่มีประสิทธิภาพ, ระบบที่เป็น fault-tolerance มากกว่า ซึ่งการ customize apache หรือ web server อื่นๆ ให้ตอบสนองต่อความต้องการเหล่านี้ น่าจะง่ายกว่าการ customize ตัว Java VM หรือ Application Server

kim said...

เห็นด้วยกับคุณ panuta

1. "​การ​ใช้​ภาษา​ script ​แทน​ java ​น่า​จะ​ lightweight ​มากกว่า"

2. ​"เป็น​การ​ optimize ​ทรัพยากรที่มี​อยู่​ให้​คุ้มค่า"
ข้อนี้ขอเสริมครับ นอกจาก obtimize เชิง technical แล้ว การใช้ php ยัง optimize เงินในกระเป๋าด้วยครับ เพราะการใช้ LAMP ไม่เสียค่า license แม้แต่แดงเดียว

อย่างสองหนุ่ม google ที่ทำ GFS ก็เพราะว่าอยากประหยัด budget เป็นประเด็นหลัก
โดยอาศัยการใช้ CPU ของเครื่อง PC เก่า ๆ ราคาถูก ๆ มาประกอบกัน ทำ super server
จึงต้องเขียน GFS ขึ้นมาเอง คอยจัดการเรื่อง grid +clustering ครับ

NooM said...

ที่บอกว่า LAMP ไม่ต้องกังวลเรื่องค่าใช้จ่ายของซอฟแวร์นั้น ผมขอถามแบบไม่รู้จริงๆ ครับว่า MySQL ที่ใช้งานแบบ Commercial นั้น ไม่ต้องมีค่าใช้จ่ายเลยใช่ไหมครับ เพราะตอนแรกผมก็เข้าใจเช่นนี้ แต่ผมได้ยินมากจากกูรู 2 ท่านบอกว่าถ้าใช้แบบ Commerical ต้องมีค่าใช้จ่ายด้วยครับ

kim said...

ขอบคุณครับสำหรับ comment นี้
ก่อนหน้านี้ ผมเองก็ไม่ได้ศึกษาเรื่องเกี่ยวกับ GPL license สักเท่าไหร่
K.NooM ถามมา จึงได้มีโอกาสได้อ่านและค้นคว้าจริง ๆ จัง ๆ ครับ

เท่าที่ผมค้นมานะครับ ขอลอกประโยคนี้มาจาก Obec Resource Center ครับ
http://www.obec.go.th/resource/index.php?option=com_content&task=view&id=11&Itemid=33

"4. สามารถนำ Mambo ไปใช้เพื่อหารายได้ได้หรือไม่?
GPL อนุญาตให้นำซอฟท์แวร์ไปใช้เพื่อหารายได้ได้
ซึ่งในที่นี้หมายถึงรายได้จากการขายบริการการติดตั้ง
แก้ไข หรือเผยแพร่ซอฟท์แวร์หรือบริการอื่น ๆ
แต่ไม่สามารถขายตัวซอฟท์แวร์ได้

ข้อควรจำ :: ถ้าหากมีผู้จ่ายเงินให้กับบริการใด ๆ ที่คุณได้ทำขึ้นมา GPL
อนุญาตให้บุคคลผู้นั้นนำซอฟท์แวร์ดังกล่าวไปเผยแพร่ต่อโดยจะคิดเงินหรือไม่ก็ได้"

"7. แล้วเนื้อหาในเว็บไซต์ที่ใช้ Mambo สร้างขึ้นมาจะอยู่ภายใต้สัญญานุญาต GPL ด้วยหรือไม่?
ไม่ ลิขสิทธิ์และสัญญานุญาตดังกล่าวไม่รวมเนื้อหาในเว็บไซต์ของคุณ"

ผมขออนุมานว่า
จากข้อ 4. GPL อนุญาตให้นำซอฟท์แวร์ไปใช้เพื่อหารายได้ได้ ... แต่ไม่สามารถขายตัวซอฟท์แวร์ได้
ดังนั้น เราสามารถนำ MySQL ไปทำ commercial ได้

จากข้อ 7 ข้อมูลใน MySQL ก็เปรียบได้กับ content ใน Mambo ครับ
ดังนัน Data ของเรา ก็ไม่ได้อยู่ใน GPL ด้วยครับ

ถ้า gurus ท่านอื่น ๆ แวะเวียนมา เชิญมาชี้แนะต่อได้ครับ

เสริมอีกนิดครับ
ถ้าเป็น ตัวนี้ MySQL Enterprise เสียเงินแน่ ๆครับ
เช่นเดียวกับ Fedora ใช้ฟรี แต่ RHEL เสียตังค์ครับ

อ่านเพิ่มเติม
GNU General Public License ฉบับแปลไทย
http://www.cmsthaicenter.com/module/view/52

Intellectual Property ของนาย MK ครับ
http://www.slideshare.net/markpeak/intellectual-property-81407

Frequently Asked Questions about the GNU GPL
http://www.gnu.org/licenses/gpl-faq.html#DoesFreeSoftwareMeanUsingTheGPL

NooM said...

ขอบคุณมากครับ สำหรับข้อมูลที่ดีมากๆ
ผมพอจะเข้าใจขึ้นมากแล้วครับ