架構演進史
架構並不是被髮明出來的,而是持續演進的結果。
我們放下程式碼與技術,討論歷史之名,來梳理軟體架構發展歷程中出現過的名詞術語,以全域性的視角,從這些概念的起源去分析它們是什麼,它們取代了什麼,它們為什麼能夠在競爭中取得成功,為什麼變得不可或缺,以及它們為什麼會失敗,在鬥爭中被淘汰,逐漸湮滅於歷史的煙塵當中。
“演進中的架構”是一條重要的邏輯線索就是軟體工業對如何拆分業務、隔離技術複雜性的探索。從最初的不拆分,到透過越來越複雜的技術手段逐漸滿足了業務的拆分與協作,再到追求隔離掉這些複雜技術手段,將它們掩埋於基礎設施之中,到未來(有可能的)重新回到無需考慮算力、無需拆分的雲端系統。
如何閱讀本書?
一共分為演進中的架構、架構師的視角、分散式的基石、不可變基礎設施和技術方法論五部分,每一部分都有相對明確的主題與目標,建議按順序閱讀各部分以獲得更有邏輯性的閱讀體驗。不過每部分內各章節之間並沒有明顯的前後依賴關係,讀者從任何一個感興趣的章節開始閱讀都可以。
鳳凰架構
由於篇幅限制,文件內容過多,只能展示部分內容,感興趣的朋友,幫忙點贊轉發後,私信【架構】獲取完整版免費下載方式。
目錄
其次,我們來看下內容概述
本書是一本以“如何構建一套可靠的大型分散式系統“為敘述主線的技術手冊。十多年來一直從事大型企業級軟體的架構研發工作,較完整地經歷了從最早的大型單體系統到如今基於雲原生基礎設施的架構演變過程,希望藉此機會,系統性地整理相關知識,查漏補缺,將它們都融入既有的知識框架之中,也希望能將這些知識與大家分享討論。相信要深入理解一門技術,不僅要去看、去讀、去想、去用,更要去說、去寫。將自己“認為掌握了的”知識敘述出來,儘量將知識說得條理清晰,讓他人聽得明白,釋去心中疑惑,同時把自己的觀點交予別人審視,乃至質疑,在此過程之中,自己也會挖掘出很多潛藏在“已知“背後的“未知”“-
第一部分演進中的架構
這部分只有第1章,適合所有開發者,但尤其推薦剛剛從單體架構向微服務架構轉型的開發者閱讀。
第一部分既是全書的緒論,也是對後續將用到的大量名詞概念所做的鋪墊。這部分沒有談論過於具體的技術,只是著重介紹了軟體開發歷史中多種主流架構出現的契機、解決的問題以及帶來的新缺陷。
服務架構演進史
服務架構演進史
服務架構演進史
第二部分架構師的視角
這部分包括第2一5章,適合所有技術架構師、系統設計與開發人員,主要討論與風格無關的架構知識。
“架構師”這個詞的外延非常寬泛,不同語境中有不同的含義。本書中的技術架構師特指企業架構中面向技術模型的系統設計者,這意味著討論範圍不會涉及貼近企業戰略、業務流程的系統分析、資訊戰略設計等內容,而是聚焦於貼近一線研發人員的技術方案設計者。這部分將介紹一名架構師應該在架構設計時思考哪些問題,有哪些主流的解決方案和行業標準做法,各種方案有什麼優缺點,不同的解決方法會帶來什麼不同的影響,等等,以達到將“架構設計”這種聽起來抽象的工作具體化、具象化的目的。
作為後續實踐的基礎,第二部分的內容與具體的架構風格無關,討論的是普適的架構技
術與使用技巧。無論你是否關注微服務、雲原生這些概念,無論你從事架構設計還是編碼開
發,瞭解這裡所列的基礎知識,都是有實用價值的。
通訊的成本
實現原子性和永續性
全域性事務
客戶端模式
第三部分 分散式的基石
這部分包括第6一10章,主要面向使用分散式架構的開發人員。
只要選擇了分散式架構,無論是SOA、微服務、服務網格或者其他架構風格,涉及與遠端服務的互動時,服務的註冊發現、跟蹤治理、負載均衡、故障隔離、認證授權、伸縮擴充套件、傳輸通訊、事務處理等一系列問題都是不可避免的。不同的架構風格,其區別是到底要在技術規範上提供統一的解決方案,由應用系統自行解決,還是在基礎設施層面將這類問題隔離掉。第三部分將重點討論這類問題的解決思路、方法和常見工具。
工作例項
工作例項
斷路器工作過程時序圖
追蹤規範化
第四部分 不可變基礎設施
這部分包括第11一15章,主要面向基礎設施的運維人員、技術平臺的開發人員。
“不可變基礎設施“”這個概念由來已久。2012年Martin Fowler設想的“鳳凰伺服器[小與2013年Chad Fowler正式提出的“不可變基礎設施[2小,都闡明瞭基礎設施不變性帶來的益處。在雲原生基金會(Cloud Nat ive Comput ing Founxdation,CNCF)所定義的“雲原生“概念中,“不可變基礎設施”被提升到與微服務平級的重要程度,此時它已不再侷限於方便運維、程序升級和部署的手段,而是昇華為嚮應用程式碼隱藏分散式架構複雜度、讓分散式架構得以成為一種可普遍推廣的普適架構風格的必要前提。在雲原生時代、後微服務時代,軟體與硬體之間的界線已經徹底模糊,無論是基礎設施的運維人員,抑或是技術平臺的開發人員,都有必要深入理解基礎設施不變性的目的、原理與實現途徑。
封裝應用:Docker
隔離與協作
韌性與彈性
通訊成本
第五部分 技術方法論
這部分包括第16章,主要面向企業中重要技術的決策者。
本書的主體內容是務實的,偏重具體技術,而非方向理論。但在第16章會集中討論幾點與分散式、微服務、架構等相關的相對務虛的話題。
筆者認為,對於一個技術人員,成長的主要驅動力是實踐,是在開發程式、解決問題中增長知識,再將知識歸納、總結、昇華成為理論,所以筆者將本章安排到全書的末尾,也是希望大家能先去實踐,再談理論。同時,筆者也認為,對於一名研究人員或者企業中技術方向的決策者,理論與實踐都不可缺少,在涉及決策的場景中,成體系的理論知識甚至比實踐經驗還要關鍵,因為執行力再強,也必須用在正確的方向上才有價值。如果你對自己的規劃是有朝一日從一名技術人員發展成研究或者管理人員,補充這部分知識是必不可少的。
前提:微服務需要的條件
發展的治理
鳳凰架構是架構師必讀的一本書籍,同時也是架構師進階上的成功的階梯
。
好啦,今天的分享就到這裡啦
如何獲取:
感興趣的朋友,麻煩幫忙點贊轉發,關注我後私信【架構】二字即可獲取!