所謂架構,一種通俗的說法就是「最高層次的規劃,難以改變的決定」,這些規劃和決定奠基了事物將來發展的方向和最終的藍圖。數據庫
而軟件架構即「有關軟件總體結構與組件的抽象描述,用於指導大型軟件系統各方面的設計」。瀏覽器
通常來講軟件架構須要關注性能、可用性、伸縮性、擴展性和安全性這5個架構要素。緩存
性能是網站架構設計的一個重要方面,任何軟件架構設計方案都必須考慮可能帶來的性能問題,也正由於性能問題幾乎無處不在,因此優化網站性能的手段也很是多。安全
衡量網站性能有一系列指標,重要的有響應時間、TPS、系統性能計數器等,經過這些指標以肯定系統設計是否達到目標。性能優化
可用性即可以不間斷提供服務的時間。幾乎全部網站都承諾7×24小時可用,但事實上任何網站都不可能達到徹底的7×24,總會有一些故障時間,扣除這些故障時間,就是網站的可用時間。一些大型網站能夠作到4個9以上的可用性,也就是99.99%。服務器
網站高可用的主要手段就是冗餘,應用部署在多臺服務器上同時提供服務,數據存儲在多臺服務器上相互備份,任何一臺服務器都不會影響應用的總體能夠,一般的實現手段即把多臺服務器經過負載均衡設備組成一個集羣。架構
衡量一個系統架構設計是否知足高可用的目標,就是假設系統中任何一臺或者多臺服務器宕機時,以及出現各類不可預期的問題時,系統總體是否依然可用。併發
大型網站須要面對大量用戶的高併發訪問和存儲海量數據,網站經過集羣的方式將多臺服務器組成一個總體共同提供服務。所謂伸縮性是指經過不斷向集羣中加入服務器的手段來緩解不斷總體上市用戶併發訪問壓力和不斷增加的數據存儲需求。負載均衡
衡量架構伸縮性的主要標準就是是否可用多臺服務器構建集羣,是否容易向集羣中添加新的服務器。加入新的服務器後是否能夠提供和原來的服務器無差異的服務。集羣中可容納的總服務器數量是否有限制。框架
不一樣於其餘架構要素主要關注非功能性需求,網站的擴展性架構直接關注網站的功能需求。網站快速發展,功能不斷擴展,如何設計網站的架構使其可以快速響應需求變化,是網站可擴展架構的主要目標。
衡量網站架構擴展性好壞的主要標準就是在網站增長新的業務產品時,是否能夠實現對現有產品透明無影響,不一樣產品之間是否不多耦合等。
網站可擴展架構的主要手段是事件驅動架構和分佈式服務。
互聯網是開發的,任何人在任何地方均可以訪問網站。網站的安全架構就是保護網站不受惡意訪問和攻擊,保護網站的重要數據不被竊取。
衡量網站安全架構的標準就是針對現存和潛在的各類攻擊和竊密手段,是否有可靠的應對策略。
這個世界沒有絕對的安全,正如沒有絕對的自由同樣,很遺憾,這個世界上沒有固若金湯的網站安全架構,咱們只能天天打起百分百的精神,預防可能的漏洞或者攻擊。