架構設計之六個複雜度來源(續)

這篇繼上篇架構設計之六個複雜度來源 沒有講完的剩下的三個內容低成本、安全、規模等。html

 

1、低成本git

當咱們的架構方案只涉及幾臺或者十幾臺服務器時,通常狀況下成本並非咱們重點關注的目標,但若是架構方案設計幾百甚至上千上萬臺服務器,成本就會變成一個很是重要的架構設計考慮點。例如,A方案須要10000臺機器,B方案只須要8000臺機器,但從比例上看,就節省了20%的成本。web

關於低成本,還有就是聯繫我實際開發,對於一些OA方面的開發,目前的碼雲上有很多示例可用作參考,甚至拿來即用,固然了,有一點不可忽略的是,Java的Web方面開源的程度和功能的強大並無Python的Djaogo來的爽快。數據庫

OA開源項目地址:https://gitee.com/aaluoxiang/oa_system安全

運行效果,以下圖所示:服務器

 

能夠說,基本上知足了OA經常使用功能,固然對於其餘方面的個性化功能,可能須要在此基礎上擴展開發。不過,你要知道這個模板已經爲你省了不少事情。正常來講,開發這個OA項目,要達到這種規模,以三我的來講,可能須要兩個月到三個月左右。網絡

 

固然了,現成的解決方案也有其必定的侷限性:架構

好比現成的解決方案中可能包含你以前還沒有接觸過的新技術,熟悉這個新技術你可能須要一段時間。性能

 

2、安全網站

安全自己是一個龐大而又複雜的技術領域,而且一旦出問題,對業務和企業形象影響很是大。

例如:

2013年10月,爲全國4500多家酒店提供網絡服務的浙江惠達驛站網絡有限公司,因安全漏洞問題,致2千萬條入住酒店的客戶信息泄露,爲此致使不少敲詐、家庭破裂的後續事件。

正由於常常可以看到或者聽到各種安全事件,因此大部分技術人員和架構師,對安全這部分會多一些瞭解和考慮。

從技術的角度來說,安全能夠分爲兩類:

一類是功能上的安全;

另外一類是架構上的安全。

 

1.功能上的安全

例如:常見的XSS攻擊、CSRF攻擊、SQL注入、Windows漏洞、密碼破解等,本質上是由於系統實現有漏洞,黑客有了可乘之機。黑客會利用各類漏洞潛入系統,這種行爲就像小偷同樣,黑客和小偷的手法都是利用系統或家中不完善的地方潛入,並進行破壞或者盜取。所以,形象地說:功能安全其實就是「防小偷」。

 

XSS攻擊是什麼?

XSS是一種常常出如今web應用中的計算機安全漏洞,它容許惡意web用戶將代碼植入到提供給其它用戶使用的頁面中。好比這些代碼包括HTML代碼和客戶端腳本。攻擊者利用XSS漏洞旁路掉訪問控制——例如同源策略(same origin policy)。這種類型的漏洞因爲被黑客用來編寫危害性更大的網絡釣魚(Phishing)攻擊而變得廣爲人知。對於跨站腳本攻擊,黑客界共識是:跨站腳本攻擊是新型的「緩衝區溢出攻擊「,而JavaScript是新型的「ShellCode」。

 

CSRF攻擊是什麼?

CSRF(Cross-site request forgery)跨站請求僞造,也被稱爲「One Click Attack」或者Session Riding,一般縮寫爲CSRF或者XSRF,是一種對網站的惡意利用。儘管聽起來像跨站腳本(XSS),但它與XSS很是不一樣,XSS利用站點內的信任用戶,而CSRF則經過假裝來自受信任用戶的請求來利用受信任的網站。與XSS攻擊相比,CSRF攻擊每每不大流行(所以對其進行防範的資源也至關稀少)和難以防範,因此被認爲比XSS更具危險性。

 

SQL注入是什麼?

所謂SQL注入,就是經過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。具體來講,它是利用現有應用程序,將(惡意的)SQL命令注入到後臺數據庫引擎執行的能力,它能夠經過在Web表單中輸入(惡意)SQL語句獲得一個存在安全漏洞的網站上的數據庫,而不是按照設計者意圖去執行SQL語句。 [1]  好比先前的不少影視網站泄露VIP會員密碼大多就是經過WEB表單遞交查詢字符暴出的,這類表單特別容易受到SQL注入式攻擊

 

關於Window漏洞和密碼破解,Window漏洞太多了,就很少說了,密碼破解,好比對QQ密碼破解或者是其餘遊戲或者社交網站帳號破解等。一般對此的解決方案是,從用戶的角度是少點擊一些無關的連接,這樣能夠在必定程度上減小被破解的機會;從企業的角度上看,提升系統安全係數,提升核心安全方面的技術。

 

2.架構安全

若是說「功能安全」是爲了防小偷,那麼架構安全就是爲了防強盜。

強盜會直接用大錘將門砸開搶東西順便加搞破壞,而小偷是偷東西也會搞破壞。通常狀況,強盜相對於小偷,危害更大。

所以架構設計時須要特別關注架構安全,尤爲是互聯網時代,理論上來講,系統部署在互聯網上時,全球任何地方均可以發起攻擊。

傳統的架構安全主要依靠防火牆,防火牆最基本的功能就是隔離網絡,經過將網絡劃分紅不一樣的區域,制定出不一樣區域之間的訪問控制策略來控制不一樣信任程度區域間傳送的數據流。

 

 

3、規模

不少企業級的系統,既沒有高性能要求,也沒有雙中心高可用要求,也不須要什麼擴展性,但每每咱們一說到這樣的系統,不少人都會脫口而出:這個系統好複雜。爲何這麼說呢?關鍵就在於這樣的系統每每功能特別多,邏輯分支特別多。特別是有的系統,發展實際比較長,不斷地往上面疊加功能,後來的人因爲不熟悉整個發展歷史,可能連不少功能的應用場景都不熟悉,或者細節根本沒法掌握,面對的就是一個黑盒系統,看不懂、改不動、不敢改、修不了,複雜度天然就感受很高了。

 

規模帶來的複雜度主要緣由在於「量變引發質變」,當數量超過必定閾值後,複雜度會發生質的變化。常見的規模帶來的複雜度有:

1.功能愈來愈多,致使系統的複雜度指數愈來愈高;

2.數據愈來愈多,系統的複雜度發生質變;

 

問:結合你所在的業務,分析一下注意的複雜度是這其中的哪些部分?是否還有其餘複雜度緣由?

個人回答是:就目前而言,注意是功能愈來愈多,致使複雜度指數上升。

 

 

小結:

本篇是上一篇文章的續,上篇文章主要講了高可用、高性能、可擴展性等三個方面。本篇主要是圍繞低成本、安全、規模等方面。

其實仔細想來,不論是高可用、高性能、可擴展性,仍是低成本、安全、規模等。關鍵仍是取決於業務。

相關文章
相關標籤/搜索