東方的第一本“鳳凰架構(gòu)”竟是出自阿里,手把手教你構(gòu)建可靠大型分布式系統(tǒng)
前言:
一本好的技術(shù)書不僅能告訴你某個技術(shù)點(diǎn)怎么做、為什么這么做,還會讓你明白所有技術(shù)點(diǎn)如何協(xié)同配合,最終構(gòu)建出一個完整的技術(shù)體系。
本書是一本以“如何構(gòu)建一套可靠的大型分布式系統(tǒng)”為敘述主線的技術(shù)手冊。從5個方面全面剖析了如何構(gòu)建一個可靠的分布式系統(tǒng),同時給出了Spring Boot、Spring Cloud、Kubernetes、Istio、AWS Lambda五種架構(gòu)風(fēng)格的樣例工程。
筆者十多年來一直從事大型企業(yè)級軟件的架構(gòu)研發(fā)工作,較完整地經(jīng)歷了從最早的大型單體系統(tǒng)到如今基于云原生基礎(chǔ)設(shè)施的架構(gòu)演變過程,希望借此機(jī)會,系統(tǒng)性地整理相關(guān)知識,查漏補(bǔ)缺,將它們都融入既有的知識框架之中,也希望能將這些知識與大家分享討論。
目錄:

如何閱讀本書:
全書一共分為演進(jìn)中的架構(gòu)、架構(gòu)師的視角、分布式的基石、不可變基礎(chǔ)設(shè)施和技術(shù)方法論五部分,每一部分都有相對明確的主題與目標(biāo),建議按順序閱讀各部分以獲得更有邏輯性的閱讀體驗(yàn)。不過每部分內(nèi)各章節(jié)之間并沒有明顯的前后依賴關(guān)系,讀者從任何一個感興趣的章節(jié)開始閱讀都可以。

因?yàn)槲恼缕拗疲緯鴥?nèi)容過多,只能展示部分內(nèi)容,完整文檔已上傳網(wǎng)盤,需要獲取學(xué)習(xí)的伙伴,請?jiān)邳c(diǎn)贊轉(zhuǎn)發(fā)后,私信【學(xué)習(xí)】或【筆記】,獲取免費(fèi)下載方式
第一部分 演進(jìn)中的架構(gòu)
這部分只有第1章,適合所有開發(fā)者,但尤其推薦剛剛從單體架構(gòu)向微服務(wù)架構(gòu)轉(zhuǎn)型的開發(fā)者閱讀。

第一部分既是全書的緒論,也是對后續(xù)將用到的大量名詞概念所做的鋪墊。這部分沒有談?wù)撨^于具體的技術(shù),只是著重介紹了軟件開發(fā)歷史中多種主流架構(gòu)出現(xiàn)的契機(jī)、解決的問題以及帶來的新缺陷。
第1章服務(wù)架構(gòu)演進(jìn)史

第二部分 架構(gòu)師的視角
這部分包括第2~5章,適合所有技術(shù)架構(gòu)師、系統(tǒng)設(shè)計(jì)與開發(fā)人員,主要討論與風(fēng)格無關(guān)的架構(gòu)知識。

“架構(gòu)師”這個詞的外延非常寬泛,不同語境中有不同含義。本書中的技術(shù)架構(gòu)師特指企業(yè)架構(gòu)中面向技術(shù)模型的系統(tǒng)設(shè)計(jì)者,這意味著討論范圍不會涉及貼近企業(yè)戰(zhàn)略、業(yè)務(wù)流程的系統(tǒng)分析、信息戰(zhàn)略設(shè)計(jì)等內(nèi)容,而是聚焦于貼近一線研發(fā)人員的技術(shù)方案設(shè)計(jì)者。這部分將介紹一名架構(gòu)師應(yīng)該在架構(gòu)設(shè)計(jì)時思考哪些問題,有哪些主流的解決方案和行業(yè)標(biāo)準(zhǔn)做法,各種方案有什么優(yōu)缺點(diǎn),不同的解決方法會帶來什么不同的影響,等等,以達(dá)到將“架構(gòu)設(shè)計(jì)”這種聽起來抽象的工作具體化、具象化的目的。
作為后續(xù)實(shí)踐的基礎(chǔ),第二部分的內(nèi)容與具體的架構(gòu)風(fēng)格無關(guān),討論的是普適的架構(gòu)技術(shù)與使用技巧。無論你是否關(guān)注微服務(wù)、云原生這些概念,無論你從事架構(gòu)設(shè)計(jì)還是編碼開發(fā),了解這里所列的基礎(chǔ)知識,都是有實(shí)用價值的。
第2章訪問遠(yuǎn)程服務(wù)


第3章事務(wù)處理


第4章透明多級分流系統(tǒng)


第5章架構(gòu)安全性


第三部分 分布式的基石
這部分包括第6~10章,主要面向使用分布式架構(gòu)的開發(fā)人員。

只要選擇了分布式架構(gòu),無論是SOA、微服務(wù)、服務(wù)網(wǎng)格或者其他架構(gòu)風(fēng)格,涉及與遠(yuǎn)程服務(wù)的交互時,服務(wù)的注冊發(fā)現(xiàn)、跟蹤治理、負(fù)載均衡、故障隔離、認(rèn)證授權(quán)、伸縮擴(kuò)展、傳輸通信、事務(wù)處理等一系列問題都是不可避免的。不同的架構(gòu)風(fēng)格,其區(qū)別是到底要在技術(shù)規(guī)范上提供統(tǒng)一的解決方案,由應(yīng)用系統(tǒng)自行解決,還是在基礎(chǔ)設(shè)施層面將這類問題隔離掉。第三部分將重點(diǎn)討論這類問題的解決思路、方法和常見工具。
第6章分布式共識


第7章從類庫到服務(wù)


第8章流量治理


第9章可靠通信


第10章可觀測性


第四部分 不可變基礎(chǔ)設(shè)施
這部分包括第11~15章,主要面向基礎(chǔ)設(shè)施的運(yùn)維人員、技術(shù)平臺的開發(fā)人員。

“不可變基礎(chǔ)設(shè)施”這個概念由來已久。2012年Martin Fowler設(shè)想的“鳳凰服務(wù)器 [1] ”與2013年Chad Fowler正式提出的“不可變基礎(chǔ)設(shè)施 [2] ”,都闡明了基礎(chǔ)設(shè)施不變性帶來的益處。
在云原生基金會(Cloud Native Computing Foundation,CNCF)所定義的“云原生”概念中,“不可變基礎(chǔ)設(shè)施”被提升到與微服務(wù)平級的重要程度,此時它已不再局限于方便運(yùn)維、程序升級和部署的手段,而是升華為向應(yīng)用代碼隱藏分布式架構(gòu)復(fù)雜度、讓分布式架構(gòu)得以成為一種可普遍推廣的普適架構(gòu)風(fēng)格的必要前提。在云原生時代、后微服務(wù)時代,軟件與硬件之間的界線已經(jīng)徹底模糊,無論是基礎(chǔ)設(shè)施的運(yùn)維人員,抑或是技術(shù)平臺的開發(fā)人員,都有必要深入理解基礎(chǔ)設(shè)施不變性的目的、原理與實(shí)現(xiàn)途徑。
第11章虛擬化容器


第12章容器間網(wǎng)絡(luò)


第13章持久化存儲


第14章資源與調(diào)度


第15章服務(wù)網(wǎng)格


第五部分 技術(shù)方法論
這部分包括第16章,主要面向企業(yè)中重要技術(shù)的決策者。

本書的主體內(nèi)容是務(wù)實(shí)的,偏重具體技術(shù),而非方向理論。但在第16章會集中討論幾點(diǎn)與分布式、微服務(wù)、架構(gòu)等相關(guān)的相對務(wù)虛的話題。
筆者認(rèn)為,對于一個技術(shù)人員,成長的主要驅(qū)動力是實(shí)踐,是在開發(fā)程序、解決問題中增長知識,再將知識歸納、總結(jié)、升華成為理論,所以筆者將本章安排到全書的末尾,也是希望大家能先去實(shí)踐,再談理論。同時,筆者也認(rèn)為,對于一名研究人員或者企業(yè)中技術(shù)方向的決策者,理論與實(shí)踐都不可缺少,在涉及決策的場景中,成體系的理論知識甚至比實(shí)踐經(jīng)驗(yàn)還要關(guān)鍵,因?yàn)閳?zhí)行力再強(qiáng),也必須用在正確的方向上才有價值。如果你對自己的規(guī)劃是有朝一日從一名技術(shù)人員發(fā)展成研究或者管理人員,補(bǔ)充這部分知識是必不可少的。
第16章向微服務(wù)邁進(jìn)


附錄A技術(shù)演示工程實(shí)踐

附錄B部署Kubernetes集群

完整內(nèi)容如何獲取?
點(diǎn)贊轉(zhuǎn)發(fā)后,私信【筆記】或【學(xué)習(xí)】,獲取免費(fèi)下載方式。
本文就是愿天堂沒有BUG給大家分享的內(nèi)容,大家有收獲的話可以分享下,想學(xué)習(xí)更多的話可以到微信公眾號里找我,我等你哦。
