目錄
- 一、軟件系統復雜度的來源之低成本
- 二、軟件系統復雜度的來源之安全
- 2.1、功能安全
- 2.2、架構安全
- 2.3、規模
- 2.3.1、功能越來越多,導致系統復雜度指數級上升
- 2.3.2、數據越來越多,系統復雜度發生質變
本文來源:極客時間vip課程筆記
一、軟件系統復雜度的來源之低成本
-
當我們設計“高性能”“高可用”的架構時,通用的手段都是增加更多服務器來滿足“高性能”和“高可用”的要求;而低成本正好與此相反,我們需要減少服務器的數量才能達成低成本的目標。
-
低成本本質上是與高性能和高可用沖突的,所以低成本很多時候不會是架構設計的首要目標,而是架構設計的附加約束。也就是說,我們首先設定一個成本目標,當我們根據高性能、高可用的要求設計出方案時,評估一下方案是否能滿足成本目標,如果不行,就需要重新設計架構;如果無論如何都無法設計出滿足成本要求的方案,那就只能找老板調整成本目標了。
-
低成本給架構設計帶來的主要復雜度體現在,往往只有“創新”才能達到低成本目標。這里的“創新”既包括開創一個全新的技術領域(這個要求對絕大部分公司太高),也包括引入新技術,如果沒有找到能夠解決自己問題的新技術,那么就真的需要自己創造新技術了。
-
類似的新技術例子很多,我來舉幾個。
NoSQL(Memcache、Redis 等)的出現是為了解決關系型數據庫無法應對高并發訪問帶來的訪問壓力。
全文搜索引擎(Sphinx、Elasticsearch、Solr)的出現是為了解決關系型