![]() | Building Scalable Web Sites Cal Henderson/著 O'Reilly出版 售價:39.99美元 Amazon 4顆半星 |
試圖想像以下情境:當你所建立的內容網站不斷地湧入訪客,並進行大量的檔案上傳及下載,傳輸量如指數般地成長,檔案系統的存取頻率居高不下,雖然你會因為網站使用率提升而覺得十分高興,但同時也要面臨系統效能不斷下降的問題。你會怎麼作?花大把銀子購買更好規格的硬體進行擴充?還是仔細檢討流程是否還有改善之處?
從問題的根本思考解決之道
本書作者Cal Henderson在書中便提到同樣的問題,他在任職於Flickr.com期間,曾面臨到檔案上傳功能效能不彰的難題,當時的解決方式並非直接以增購硬體設備的方式來改善,而是針對他們的網站特性,自行研發出一種更精簡的檔案傳輸協定取代傳統的FTP功能,僅僅撰寫了600餘行的PHP程式碼,便省下了一筆可觀的金錢,並有效地提升系統效能。
你會發現,當資訊人員在面臨一些難題或錯誤時,通常會採用既定的解法,也就是我們常聽到的最佳實踐方案(Best Practice)。雖然前人經驗值得參考,但有時這些所謂的Best Practice還真的會害死人,最佳實踐方案往往限制了解決問題的思考方向,並磨滅了許多尚未被發掘出來的更好的點子,也讓你未能更深一層鑽入問題的核心,找到真正適合的解決方法。
何謂可延展性?
從本書的標題《Building Scalable Web Sites》來看,你也許會十分直覺地認為書中所討論的主題,應該不外乎是建置你的硬體及網路架構,當使用者、資料量、及網路流量增加時,便以增加硬體設備的方式維持良好的系統效能。不過這樣的內容已經是老生常談,想必無法吸引讀者青睞,也有損O'Reilly叢書的品味。
本書對於「可延展系統(Scalable System)」的定義,並非狹隘地侷限於系統效能面或是某特定技術上,而是廣義的定義在以下幾個觀點:
● 系統可以容納日益成長的使用量
● 系統可以容納日益成長的資料量
● 系統是可以被輕易維護的(Maintainable)
若你身為網站開發人員,本書所討論的議題無疑可以讓你受益良多,書中內容主要包含以下重點:
● 網站應用系統本身的架構議題:此架構議題包含了所有相關的硬體及軟體平臺。在設計的原則上通常以階層方式(Layered)來進行,而為了符合階層化設計,所採用的技術以及搭配的方式亦影響甚鉅。像是利用MVC框架讓軟體階層更加彈性,或是採用一些樣版機制,讓界面設計更加靈活等。
● 對於開發過程的組態環境,通常依循以下原則進行:建立程式撰寫標準,針對程式碼的版本控管,快速的軟體構建機制,完整的測試計畫,以及有效追蹤錯誤及問題。這些程序雖然不是直接影響到系統本身,但整個過程的流暢能有效提升系統開發的作業,亦符合Scalable System的基本精神。
● 考慮國際化及多重語系的設計彈性,尤其在資料編碼上,從展現層到資料層及資料交換需要考慮問題及處理方式,同時考量資料的正確性及安全性。
● 網路服務的結合,像是電子郵件內容的處理,不同主機之間透過不同傳輸協定的溝通,同步及非同步的方式進行資料交換,保持系統之間良好的一致性及互動性。
● 利用流量統計監控工具來發覺系統運行的瓶頸所在,透過閾值的定義及自動系統檢測功能,讓系統管理者能在第一時間處理以免措手不及,釀成大禍。
本書並非教你如何寫好網站的程式碼,重點在於原則性的討論,是著重在架構上設計時所需要審視的重點,這裡所謂的架構,除了一般所常提及的硬體及軟體平臺,後續的開發及維護程序也是十分重要。同時,作者在本書所介紹或使用的技術或工具,全然來自開放源碼(Open Source)社群的心血結晶,不會讓你在預算上失血太多。
《作者簡介》陳宏一
交通大學資訊管理研究所碩士,現任億訊國際資深顧問。曾任職於南亞科技資訊部工程師、資迅人網路研發副理、艾群科技產品研發部經理,專精於OOAD、J2EE 相關技術、Open Source、資料庫設計、軟體開發流程及專案管理等;取得SCJP、SCWCD、SCJD、SCEA、ITIL等認證。曾經歷大型社群及電子商務網站、WAP/3G行動加值服務、CTI/CRM客服系統架構規劃設計等。
熱門新聞
2026-01-12
2026-01-12
2026-01-12
2026-01-12
2026-01-12
