如果把上世紀90年代初CERN正式發佈WEB標準和第一個WEB服務的出現當做互聯網站的開始,那麼互聯網站的發展只經歷了短短20多年的時間。在20多年的時間裏,互聯網的世界發生了巨大變化,今天,全球有近一半的人口使用互聯網,人們的生活因爲互聯網而產生了巨大變化。從信息檢索到即時通信,從電子購物到文化娛樂,互聯網滲透到生活的每個角落,而且這種趨勢還在加速。因爲互聯網,我們的世界正變得越來越小。
同時我們也看到,在互聯網跨越式發展的進程中,在電子商務火熱的市場背後卻是不堪重負的網站架構,某些B2C網站逢促銷必宕機幾乎成爲一種規律,而鐵道部電子客票官方購票網站的頻繁故障和操作延遲更將這一現象演繹得淋漓盡致。
一邊是企業在網站技術上的大量投入,一邊卻是網站在關鍵時刻的頻繁宕機;一邊是工程師夜以繼日地加班工作,一邊卻是網站故障頻發新功能上線緩慢;一邊是互聯網業務快速發展多領域挑戰傳統行業,一邊卻是網站安全漏洞頻發讓網民膽戰心驚怨聲載道。
如何打造一個高可用、高性能、易擴展、可伸縮且安全的網站?如何讓網站隨應用所需靈活變動,即使是山寨他人的產品,也可以山寨的更高、更快、更強,一年時間用戶數從零過億呢?
大型網站軟件系統的特點
與傳統企業應用系統相比,大型互聯網應用系統有以下特點:
- 高併發、大流量。
- 高可用。
- 海量數據。
- 用戶分佈廣泛,網絡情況複雜。
- 安全環境惡劣。
- 需求快速變更,發佈頻繁。
- 漸進式發展。
大型網站架構演化發展歷程
- 初始階段的網站架構
- 應用服務和數據服務分離
- 使用緩存改善網站性能
- 使用應用服務器集羣改善網站的併發能力
- 數據庫讀寫分離
- 使用反向代理和CDN加速網站響應
- 使用分佈式文件系統和分佈式數據庫系統
- 使用NoSQL和搜索引擎
- 業務拆分
- 分佈式服務