เดิมว่าจะตั้งชื่อ "ทำอย่างไร server ไม่ล่ม" แต่จริงๆอย่างไรก็มีโอกาส(ล่ม) อยากตั้งชื่อให้ตรงกับภาษาอังกฤษว่า "High Available System" หรือ "High Availability",ผมยังนึกชื่อเทห์ๆยังไม่ได้ บทความคงเน้นเรื่องแนวคิด(concept)ยังไม่ลงลึกถึงเรื่องทางเทคนิค(ถ้าหนังสือขายได้ อาจมีเล่ม 2-3) ระบบจะเน้นที่ windows+IIS+ASP.NET+MSSQL และ LAMP(Linux+Apache+MySQL+Perl/PHP) หัวข้อที่คิดได้ตอนนี้(เพิ่มเติมได้นะครับ) 1.บทนำ -จุดประสงค์หลักของการออกแบบระบบให้ทำงานได้อย่างราบรื่นก็คือต้องการให้ระบบทำงานไปถึงจุดหมายสูงสุดคือระดับ 99.999% ซึ่งมักถูกเรียกว่า "five nines" ซึ่งหมายถึงระบบ down ได้ 5.26 min ใน 1 ปี 2.Web Server and Scripts - IIS,Apache,lighttpd,LiteSpeed,nginx,Yaws 3.Web Site Optimize - Rule of Fast Web and Optimize (JavaScript ,YSlow,Minimize CSS, JS and PNG,Gzip) 4. แนวคิดการเขียนโปรแกรมแบบ High Available - Message Queuing(MQSeries,MSMQ,ActiveMQ,RabbitMQ,beanstalkd,gearman,starling) - Session Management - Hibernate - SOA - RESTful (Apache CouchDB,Amazon’s Simple Storage Service,Yahoo,eBay,Flickr,Del.icio.us,Facebook,Google GData/Picasa) - Template(smarty..etc) 5.แนวคิดการทำ Caching - Page Caching - MemCached - Query Cache - Script Cache (PHP Cache/APC/eAccelerator,Python/django/MintCache) - Content Cache(Varnish, Squid) 6.แนวคิด High Available Database - Partition/Shard,View - Store Procedure,Profiler - Replication - Distribute Database (Distribute Query) - Tunning - hypertable,BigTable,Hadoop 7. แนวคิดเรื่องการแบ่งภาระกันทำงาน - Scale Up,Scale Out - Load Balancing ,NLB,CLB,HAproxy,pound - Clustering,Fail Over,Heartbeat - Virtual Server - P2P,Grid/Cloud Computing 8.แนวคิด High Available Storage - SATA,SCSI,iSCSI,SAS - RAID 0,1,5,6 - NAS,SAN - distributed filesystem(NFS,mogilefs..) 9.Performance Testing/Capacity Plan - Load Runner,ACT,WebLoad,Httperf - PHPunit,DBunit,strace, dtrace, ltrace - Capacity Plan (RRDtoo,Munin) - (Not “how fast” but “how many”, Test “force”, not speed,Test scalability, not just “performance”) - System Monitor (Hyperic,Ganglia) 10. Hardware/Network และ OS -แนวคิดเรื่อง Datacenter and High Available Network - Hotswap,chipkill ..etc - CentOS - Content Delivery Network(Akamai, LimeLight, PantherExpress, CacheFly..) - Netwok Appliance 11.แนวคิด Backup & Recovery,Disaster Recovery,Security 12. กรณีศึกษา(มาดูว่าระบบจริงๆเขาทำอย่างไร) - LiveJournal ผู้ให้กำเนิด memcached มีสมาชิกมากกว่า 10 ล้าน ต้องรองรับการเข้าใช้อย่างน้อยเป็นพัน hits/วินาที LiveJournal มักเป็นกรณีศึกษาสำหรับการทำ High Availability - google bigtable,MapReduce .. - hotmail(การย้าย hotmail จาก BSD ไป Exchange) - youtube - ebay - flickr - Amazon - Twitter - Wikimedia - Slashdot - FeedBurner - MySpace - Friendster
ผมลองๆเขียนหัวข้อดูครับ ถ้ามีอะไรตกหล่น ก็เสนอแนะได้นะครับ (ตอนนี้นึกได้แค่นี้ อาจมีตกหล่น) จะลองพยายามเขียนเป็นตอนๆก่อนนะครับ
ืnote: เดิมตั้งใจจะไปที่หิ้งคอม แต่ตั้งกระทู้ใหม่ไม่ได้
|