天天看點

大型網站技術架構讀書筆記03—大型網站架構核心要素1.性能2.可用性3.伸縮性4.擴充性5.安全性

架構,指的就是能夠指導整個軟體開發的那一部分設計。在維基百科裡面的定義是:有關軟體整體結構與元件的抽象描述,用于指導大型軟體系統各個方面的設計,

軟體開發除了考慮軟體的功能性需求之外,還需要考慮性能,可用性,伸縮性,擴充性和安全這5個架構要素(非功能性需求)。這篇文章就帶大家來了解了解這5個網站架構中的核心要素。

1.性能

性能是衡量一個網站的重要名額,任何網站都必須要有很好的性能才能留住客戶。一個打開速度極慢的網站會使客戶大量流失,是以任何網站架構的設計必須考慮性能這個因素,性能最直接的展現是網站打開速度的快慢。 網站優化的手段有很多,從使用者發送請求到最終收到響應(最終呈現的網頁)這個過程要經曆很多環節,是以可以在這些環節中的任意環節對性能進行優化。 在浏覽器端,可以使用浏覽器緩存,頁面壓縮,合理布局頁面,減少Cookies傳輸來優化性能 CDN内容分發網絡可以保證使用者能從離自己最近的伺服器中拿到自己想要的資料 應用伺服器的本地緩存和分布式緩存可以極大地加快處理請求 異步操作可以使使用者很快收到響應消息,而對應的處理可以放到消息隊列裡面,等待後續任務去處理 叢集可以大大提高網站的處理能力 等等...... 衡量一個網站有很多名額,通過測試這些名額是否達标來确定系統設計是否合理。 性能優異僅僅是一個網站最基本也是必備的條件。性能不達标,會直接使客戶流失殆盡。

2.可用性

對于大型網站而言,伺服器當機是必不可少的事件。那麼在伺服器當機的時候,網站能否正常運作則反應了這個網站的可用性怎麼樣,如果網站直接崩潰,說明網站的可用性很差。是以網站高可用性設計的目的是當伺服器當機的時候,網站依然可以正常運作!

3.伸縮性

使用者通路規模的不斷擴大會使網站面臨前所未有的壓力。而伸縮性正是解決這個問題的關鍵。伸縮性指的是不斷向叢集中加入伺服器來緩解不斷上升的使用者并發通路壓力和不斷增長的資料存儲需求。如果網站的伸縮性架構設計的好,那麼可以非常容易的向網站伺服器中添加新的機器來解決問題。如果添加一台或者數台機器帶來大量麻煩的工作,那說明這個網站的伸縮性架構設計的并不合理。 資料庫做到大規模叢集是比較難的。

4.擴充性

軟體開發有一個原則,開閉原則,具體含義就是對擴充開發,對修改關閉。指的就是可以對系統進行擴充,增加新的功能,但是要盡量在不修改原來子產品的前提下進行。 架構的擴充性和這個觀點是類似甚至可以說是一緻的。擴充性關注的是網站的功能性需求。網站短時間快速發展,功能不斷擴充,如何設計網站架構能夠快速适應新需求是擴充性架構設計的目的。 衡量網站擴充性好壞的主要标準是:在網站增加新的業務産品業務需求時,是否在不修改現有子產品或者盡量少的修改現有子產品的基礎上把新的業務功能附加到網站系統中,如果可以,就說明網站的擴充性架構設計的非常合理

5.安全性

任何一個網站都需要安全的運作環境,是以任何一個網站的架構設計都必須要考慮網站安全架構,也就是如何保證網站不被惡意破壞,資料不會被惡意盜取。

繼續閱讀