程序員探險記6-架構篇-望遠鏡

規(guī)模復雜龐大的系統(tǒng)需要有人站在更高的視角上去關注整體性的東西屋彪,像望遠鏡那樣看得更遠,掌控全局奸忽。

究竟什么是架構量蕊,可能每個人的理解和關注點不盡相同。這里不得不提一下康威定律,值得每個架構設計者認真思考一番。定律的原文為:“Any organization that design a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure.”。我理解架構的本質是平衡系統(tǒng)熵增的過程麦牺。 公司發(fā)展過程中需要不斷調整組織架構來解決溝通效率問題;軟件系統(tǒng)架構也要在業(yè)務擴張中解決系統(tǒng)熵增的問題。所以我們經常聽說 好的架構不是設計出來的枕面,而是跟隨業(yè)務演進而來的愿卒。說明它是一個持續(xù)的過程,而非一個結果潮秘。

理解了本質琼开,再來看看架構的目標是什么。對于軟件系統(tǒng)架構枕荞,其設計直接影響著系統(tǒng)的生產柜候,比如開發(fā)過程和效率、代碼和組件復用性等躏精,同時也影響著系統(tǒng)的可用性渣刷、伸縮性、性能矗烛、擴展性和安全性辅柴。這些目標往往是相互影響的,比如為了追求安全性會犧牲小部分性能瞭吃,追求擴展性而犧牲了性能的馮·諾伊曼瓶頸碌嘀。所以架構往往需要一定的折中,根據(jù)業(yè)務情況在各個目標之間尋求一個動態(tài)的平衡(從組織架構看歪架,其實也是在平衡各方的利益)股冗。

而為了達成架構的目標,你需要什么樣的能力呢和蚪?在前面章節(jié)中多次提到的結構化思維能力止状,就是最基礎的架構能力。結構化就是將邏輯進行抽象攒霹、提煉怯疤、分解、聚合催束,構建成更加縝密旅薄、動態(tài)、彈性泣崩、邊界清晰的結構體。其次是平衡思維能力洛口。記住沒有完美的架構矫付,只有合適的架構。要根據(jù)業(yè)務目標作出自己的判斷第焰,有所取舍买优,并通過良好的溝通能力確保各方對架構達成共識,在現(xiàn)有資源約束下最合理。

關于軟件架構設計杀赢,是有一些原則的烘跺,核心就是高內聚和低耦合。具體包含的SOLID原則在上一篇【編程篇】中有說明脂崔。這里滤淳,我總結了一個自己的理解,就是一個中心【以用戶為中心】砌左,兩個基本點【拆分與治理】脖咐。其中拆分包含橫向的分層(Slice)和縱向的分塊(Dice)。

分層在系統(tǒng)架構中大量存在汇歹,比如:

????網(wǎng)絡分層屁擅,不管是OSI網(wǎng)絡模型還是TCP/IP都是分層的設計;

????操作系統(tǒng)产弹,介于計算機硬件和應用軟件之間的一個軟件層派歌;

????JVM虛擬機,屏蔽了與底層具體平臺信息相關的抽象層痰哨;

????緩存胶果,是在應用與數(shù)據(jù)源之間的一道緩沖層;

????消息隊列作谭,是在生產者和消費者之間的一個解耦層稽物;

????控制反轉(IOC),是在兩個組件之間的一個中介層折欠;

????容器贝或,是一個層層重疊的集裝箱;

????適配器模式锐秦,橋接模式咪奖,代理模式都需要一個獨立的層;

????......

分塊同樣存在不少酱床,比如:

????數(shù)據(jù)庫分庫分表(數(shù)據(jù)分片)羊赵;

????冗余備份技術;

????負載均衡集群扇谣;

????微服務模塊拆分昧捷;

????MapReduce;

????敏捷開發(fā)模式(小團隊與迭代);

????......

治理是要解決系統(tǒng)拆分帶來的相應問題如穩(wěn)定性罐寨、一致性等(天下沒有免費的午餐)靡挥。你要如何衡量你的拆分效果呢?彼得·德魯克說過鸯绿,如果一個事情跋破,你不能衡量它的話簸淀,那么你就不能改進它。精益文化里三點——Build(建立)毒返、Measure(衡量)租幕、Improve(改進)也體現(xiàn)了衡量的重要性。

治理的核心原則就是要達到統(tǒng)一共識拧簸,從整體上對系統(tǒng)運行情況進行控制劲绪。尤其是分布式架構中,如果不能達成共識狡恬,將發(fā)生數(shù)據(jù)不一致珠叔,腦裂等各種問題。系統(tǒng)在拆分的過程中弟劲,是不能離開治理者的視線的祷安,你必須始終站在全局的角度整體考慮這樣的拆分是否合理。在已經拆分的系統(tǒng)中兔乞,不能因為一個點的錯誤汇鞭,引發(fā)系統(tǒng)級的崩潰,所以限流降級庸追、熔斷機制等常用治理手段是一個系統(tǒng)完整統(tǒng)一的保證霍骄。同時你還會發(fā)現(xiàn)這些手段跟生活是分不開的,比如熔斷就是一個保險絲淡溯,股市的一種風險控制措施读整。再次說明了【學習篇】提到的計算機世界是模擬的人類世界。

有了技術架構的支撐咱娶,怎樣快速響應業(yè)務的發(fā)展需求呢米间?接下來請看下一篇【工程篇】。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末膘侮,一起剝皮案震驚了整個濱河市屈糊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌琼了,老刑警劉巖逻锐,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異雕薪,居然都是意外死亡昧诱,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進店門所袁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盏档,“玉大人,你說我怎么就攤上這事纲熏∽鼻穑” “怎么了?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵局劲,是天一觀的道長勺拣。 經常有香客問我,道長鱼填,這世上最難降的妖魔是什么药有? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮苹丸,結果婚禮上愤惰,老公的妹妹穿的比我還像新娘。我一直安慰自己赘理,他們只是感情好宦言,可當我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著商模,像睡著了一般奠旺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上施流,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天响疚,我揣著相機與錄音,去河邊找鬼瞪醋。 笑死忿晕,一個胖子當著我的面吹牛,可吹牛的內容都是我干的银受。 我是一名探鬼主播践盼,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蚓土!你這毒婦竟也來了宏侍?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤蜀漆,失蹤者是張志新(化名)和其女友劉穎谅河,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體确丢,經...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡绷耍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了鲜侥。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片褂始。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖描函,靈堂內的尸體忽然破棺而出崎苗,到底是詐尸還是另有隱情狐粱,我是刑警寧澤,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布胆数,位于F島的核電站肌蜻,受9級特大地震影響,放射性物質發(fā)生泄漏必尼。R本人自食惡果不足惜蒋搜,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望判莉。 院中可真熱鬧豆挽,春花似錦、人聲如沸券盅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽渗饮。三九已至但汞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間互站,已是汗流浹背私蕾。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留胡桃,地道東北人踩叭。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像翠胰,于是被迫代替她去往敵國和親容贝。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,629評論 2 354

推薦閱讀更多精彩內容