0.1 關(guān)于夢(mèng)想
筆者在大學(xué)生涯剛開始的第二天就策劃創(chuàng)建學(xué)校英語社團(tuán),并起了一個(gè)有夢(mèng)想的名字夢(mèng)想之星英語社,到現(xiàn)在已經(jīng)過去15年了。然后便通過一次次ACM競賽和活動(dòng)來追逐自己心中的夢(mèng)想。
大學(xué)畢業(yè)后剛開始工作時(shí),筆者就夢(mèng)想著通過代碼來改變世界,當(dāng)時(shí)也正趕上千團(tuán)大戰(zhàn),再加上Facebook和六度空間理論,也嘗試了基于大學(xué)校園、基于三四線城市的本地社交平臺(tái)。再往后筆者拼命地轉(zhuǎn)型學(xué)習(xí)云計(jì)算,并推出了云計(jì)算在線動(dòng)手實(shí)驗(yàn)平臺(tái)夢(mèng)想學(xué)院,正是因?yàn)檫@些,筆者拿到了UCloud的Offer,雖然還沒有通過代碼改變世界,但改變了自己的認(rèn)知。
筆者歷經(jīng)解決方案架構(gòu)師、培訓(xùn)師等崗位,通過培訓(xùn)、動(dòng)手實(shí)驗(yàn)來為技術(shù)布道,通過架構(gòu)設(shè)計(jì)來解決用戶項(xiàng)目中的技術(shù)問題。這要求筆者不斷學(xué)習(xí)新的技術(shù)、新的行業(yè)場景、新的架構(gòu)設(shè)計(jì)方法論并提煉云計(jì)算實(shí)踐,為用戶、開發(fā)者、大學(xué)生及內(nèi)部員工普及技術(shù),為IT行業(yè)的知識(shí)傳播、技術(shù)演進(jìn)貢獻(xiàn)自己的力量,他們有所收獲便是筆者的夢(mèng)想。
接下來筆者還需要繼續(xù)學(xué)習(xí),不斷提升自己,提煉總結(jié),再進(jìn)行分享。
0.2 關(guān)于云計(jì)算架構(gòu)
提及云,想必大家已不陌生,云已在各行各業(yè)中落地。在分析不同行業(yè)業(yè)務(wù)場景的案例和解決方案時(shí),可以發(fā)現(xiàn)在技術(shù)痛點(diǎn)、業(yè)務(wù)需求、技術(shù)解決方案上很多都大同小異?v觀云服務(wù)商的解決方案,一般分為行業(yè)解決方案、技術(shù)或通用解決方案,行業(yè)解決方案會(huì)按照新零售、金融、政務(wù)、醫(yī)療健康、教育等行業(yè)進(jìn)行劃分,每個(gè)行業(yè)中又分為不同的子行業(yè)或場景,這些是帶有行業(yè)屬性的。例如,新零售行業(yè)遇到的經(jīng)典場景是雙11等大促帶來的業(yè)務(wù)流量高峰,需要保證業(yè)務(wù)持續(xù)可用;游戲行業(yè)業(yè)務(wù)重點(diǎn)考慮服務(wù)器與玩家之間的網(wǎng)絡(luò)質(zhì)量及體驗(yàn)友好度。業(yè)務(wù)連續(xù)性、數(shù)據(jù)可靠性、系統(tǒng)可擴(kuò)展性、數(shù)據(jù)安全是系統(tǒng)架構(gòu)設(shè)計(jì)永恒的話題,這些技術(shù)解決方案結(jié)合業(yè)務(wù)場景就是行業(yè)解決方案。
在繽紛的行業(yè)場景和案例中,我們抽絲剝繭探究通用的技術(shù)解決方案,其中并非無章可循,云架構(gòu)設(shè)計(jì)圍繞6大原則:合理部署、業(yè)務(wù)持續(xù)、彈性擴(kuò)展、性能效率、安全合規(guī)、持續(xù)運(yùn)營。這6大原則適用于傳統(tǒng)業(yè)務(wù)架構(gòu),也適用于互聯(lián)網(wǎng)等各個(gè)行業(yè)。在云端如何圍繞這些設(shè)計(jì)原則展開架構(gòu)設(shè)計(jì)呢?我們通過整理各行業(yè)在云端的落地案例、解決方案,提煉了41種架構(gòu)設(shè)計(jì)模式。
從另一個(gè)角度,我們有了架構(gòu)設(shè)計(jì)模式,就可以像積木模塊一樣將其靈活組合成架構(gòu)的拼圖,就像一味味中草藥可以組成大夫的藥單來醫(yī)治百病。因此,在本書中將會(huì)用大量篇幅來介紹這41種架構(gòu)設(shè)計(jì)模式,當(dāng)然這些架構(gòu)設(shè)計(jì)模式也是圍繞云架構(gòu)設(shè)計(jì)的6大原則展開的。
設(shè)計(jì)模式這個(gè)詞廣泛應(yīng)用于IT領(lǐng)域,其更早的來源是建筑領(lǐng)域的通用設(shè)計(jì)方法論的總結(jié)。其實(shí)重要的不是設(shè)計(jì)模式的名稱,而是提出的對(duì)同一領(lǐng)域的問題提供可復(fù)用的解決方案的設(shè)計(jì)思路。本書提供了架構(gòu)設(shè)計(jì)模式,也希望讀者能結(jié)合自己的學(xué)習(xí)、工作場景來總結(jié)適合自己的可復(fù)用的架構(gòu)設(shè)計(jì)模式。
0.3 本書的內(nèi)容組成
本書共三篇。
篇重點(diǎn)介紹云計(jì)算體系、設(shè)計(jì)模式及架構(gòu)設(shè)計(jì)方法,引入MumuLab作為示例項(xiàng)目來實(shí)踐。
第1章從5層架構(gòu)的云計(jì)算架構(gòu)體系開始介紹云計(jì)算,從云計(jì)算的優(yōu)勢來分析其給我們帶來的思維變革,后介紹云計(jì)算架構(gòu)的設(shè)計(jì)流程和6大設(shè)計(jì)原則。
第2章介紹本書中配套的實(shí)踐項(xiàng)目MumuLab,我們可以通過這個(gè)平臺(tái)在線學(xué)習(xí)架構(gòu)設(shè)計(jì)模式,還可以將其作為動(dòng)手練習(xí)的項(xiàng)目,因此有必要了解MumuLab平臺(tái)的功能和設(shè)計(jì)初衷。
第二篇包括開篇的設(shè)計(jì)模式全景圖及圍繞6大設(shè)計(jì)原則展開的41種架構(gòu)設(shè)計(jì)模式。
第3章介紹了設(shè)計(jì)模式之間的關(guān)系并構(gòu)建了設(shè)計(jì)模式全景圖,提出了架構(gòu)設(shè)計(jì)過程中的實(shí)踐與壞味道。
第4章介紹合理部署,包括公有云、私有化、混合架構(gòu)、全球部署、多云部署5種類型。
第5章介紹業(yè)務(wù)持續(xù)的設(shè)計(jì)中需要考慮可用性、可靠性,以及業(yè)務(wù)與數(shù)據(jù)的可恢復(fù)性。
第6章圍繞彈性擴(kuò)展展開介紹,介紹如何實(shí)現(xiàn)數(shù)據(jù)訪問與存儲(chǔ)的動(dòng)靜分離、組件之間的解耦,介紹云主機(jī)、數(shù)據(jù)庫、私有化部署的擴(kuò)展能力,也介紹了通過遷移實(shí)現(xiàn)擴(kuò)展的方案,后通過流量轉(zhuǎn)發(fā)及全局負(fù)載均衡將業(yè)務(wù)負(fù)載分發(fā)到各個(gè)解耦的組件中。
第7章圍繞提升性能效率展開介紹,包括提升計(jì)算性能,通過Redis、CDN等緩存技術(shù)實(shí)現(xiàn)訪問加速、網(wǎng)絡(luò)優(yōu)化,選擇部署地域拉近終用戶與業(yè)務(wù)之間的距離、降低網(wǎng)絡(luò)延遲,通過應(yīng)用性能管理對(duì)當(dāng)前業(yè)務(wù)系統(tǒng)進(jìn)行性能檢測。
第8章圍繞安全合規(guī)展開介紹,介紹了不可忽略的賬號(hào)與權(quán)限的管理、對(duì)應(yīng)用和資源的訪問控制,在架構(gòu)設(shè)計(jì)之初就考慮等保測評(píng)、滿足合規(guī)要求等會(huì)事半功倍,還從終端安全、數(shù)據(jù)安全、網(wǎng)絡(luò)安全、應(yīng)用安全、審計(jì)合規(guī)等模塊逐一介紹如何應(yīng)對(duì)不同類型的安全風(fēng)險(xiǎn)。
第9章圍繞持續(xù)運(yùn)營展開介紹,匯總了云服務(wù)等級(jí)協(xié)議SLA、云監(jiān)控告警、成本優(yōu)化等內(nèi)容,也包含了對(duì)冷熱數(shù)據(jù)分層處理和數(shù)據(jù)開放及隱私計(jì)算的介紹,通過持續(xù)運(yùn)營定期巡檢、評(píng)估、復(fù)盤來保證業(yè)務(wù)架構(gòu)持續(xù)滿足變化的業(yè)務(wù)需求,保持良好的架構(gòu)設(shè)計(jì)。
第三篇包括應(yīng)用、評(píng)估、總結(jié)與展望。
第10章從新零售行業(yè)、游戲行業(yè)、傳統(tǒng)行業(yè)介紹了三類應(yīng)用場景,并嘗試通過設(shè)計(jì)模式靈活組合的方式來構(gòu)建解決方案。
第11章介紹了架構(gòu)評(píng)估與重構(gòu)的時(shí)機(jī),隨后展開介紹了如何進(jìn)行適用性評(píng)估、成熟度評(píng)估、健壯性評(píng)估。
第12章對(duì)本書進(jìn)行概要總結(jié),從個(gè)人角度對(duì)云計(jì)算的發(fā)展進(jìn)行展望。
0.4 閱讀指引
本書涵蓋41種架構(gòu)設(shè)計(jì)模式、MumuLab平臺(tái)完整案例、3個(gè)行業(yè)解決方案案例,讀者可以根據(jù)需要選擇不同的閱讀順序。
本書介紹了公有云部署、具備可擴(kuò)展性、實(shí)現(xiàn)基礎(chǔ)高可用及數(shù)據(jù)備份、緩存加速、性能優(yōu)化及高并發(fā)、存儲(chǔ)周期及分析、安全、高可用進(jìn)階、私有 混合、全球化、持續(xù)運(yùn)營優(yōu)化。
路徑一:對(duì)云計(jì)算產(chǎn)品、場景還不太熟悉,建議按照章節(jié)順序閱讀,先了解云業(yè)務(wù)架構(gòu)設(shè)計(jì)的概況,再通過真實(shí)案例分析MumuLab有哪些需求,在云平臺(tái)中如何解決,第4章至第9章將會(huì)詳細(xì)介紹每種設(shè)計(jì)模式,在第10章的行業(yè)場景案例中進(jìn)行練習(xí),將設(shè)計(jì)模式應(yīng)用到實(shí)際工作的不同行業(yè)場景中。
路徑二:對(duì)云計(jì)算產(chǎn)品已經(jīng)比較熟悉,建議從第3章開始閱讀,先全覽設(shè)計(jì)模式,再詳細(xì)閱讀第4章至第9章的每種設(shè)計(jì)模式,后閱讀第2章的完整案例和第10章的行業(yè)延伸案例。
路徑三:如果你打算從行業(yè)切入,則可以選擇新零售等互聯(lián)網(wǎng)應(yīng)用、游戲等跨地區(qū)的業(yè)務(wù)、傳統(tǒng)業(yè)務(wù)數(shù)字化轉(zhuǎn)型、創(chuàng)新創(chuàng)業(yè)平臺(tái),找到比較接近的行業(yè)和方案,直接跳轉(zhuǎn)到第10章的具體行業(yè)場景案例進(jìn)行閱讀,每個(gè)行業(yè)的需求和痛點(diǎn)不同,提供的解決方案也不同,之后再通過瀏覽MumuLab完整案例進(jìn)行設(shè)計(jì)模式全景圖的補(bǔ)充。
路徑四:按照業(yè)務(wù)系統(tǒng)部署、設(shè)計(jì)階段,先考慮如何部署系統(tǒng),再考慮可用性、擴(kuò)展性、性能、安全、可持續(xù)運(yùn)營等,按照階段進(jìn)行架構(gòu)的迭代設(shè)計(jì)和螺旋式架構(gòu)演進(jìn)。
0.5 使用MumuLab項(xiàng)目進(jìn)行練習(xí)與實(shí)踐
完成實(shí)驗(yàn)
如前面所述,MumuLab平臺(tái)項(xiàng)目會(huì)貫穿全書,每章節(jié)中的應(yīng)用案例都來自該項(xiàng)目。在應(yīng)用案例和動(dòng)手實(shí)驗(yàn)環(huán)節(jié)中,重點(diǎn)是實(shí)踐解決方案的實(shí)現(xiàn)過程,可以忽略不同云平臺(tái)的差異及項(xiàng)目中的代碼語言和框架。每章節(jié)中的動(dòng)手實(shí)驗(yàn)環(huán)節(jié)均可實(shí)際操作,如有問題,可以通過平臺(tái)進(jìn)行留言或通過郵箱進(jìn)行交流。
在實(shí)現(xiàn)具體實(shí)驗(yàn)時(shí)可能會(huì)遇到問題,這時(shí)可以回顧一下設(shè)計(jì)模式全景圖,從全局角度上概覽整個(gè)項(xiàng)目所涉及的業(yè)務(wù)痛點(diǎn)及解決方案的演變過程。
刷題式練習(xí)
如果是用碎片化的時(shí)間閱讀本書,可以逐個(gè)完成實(shí)驗(yàn)并在MumuLab平臺(tái)中進(jìn)行提交,提交后可以獲得實(shí)驗(yàn)積分。通過積分可以兌換一些禮品,通過這些方式讓你與其他讀者一起進(jìn)步,帶給你陪伴式學(xué)習(xí)的感受。
MumuLab平臺(tái)不僅是貫穿本書的實(shí)踐項(xiàng)目,還是用來承載本書實(shí)驗(yàn)、解答、提交實(shí)驗(yàn)結(jié)果、競賽的平臺(tái),這也使得平時(shí)訓(xùn)練的項(xiàng)目就是正在運(yùn)行的線上平臺(tái),不至于模擬一個(gè)只可看不可練的示例平臺(tái)。
MumuLab 鏈接:請(qǐng)通過讀者服務(wù)獲取。
0.6 致謝及聯(lián)系我們
每一位當(dāng)下的夢(mèng)想者都在信息化與數(shù)字化浪潮中推動(dòng)技術(shù)創(chuàng)新、技術(shù)應(yīng)用、知識(shí)普及,筆者能夠在這創(chuàng)新時(shí)代的浪潮中追逐夢(mèng)想,深感榮幸。感謝UCloud提供了良好的學(xué)習(xí)與鍛煉的平臺(tái),感謝UCloud啟云學(xué)院的各位講師、學(xué)員在多次培訓(xùn)交流過程中的靈感碰撞、經(jīng)驗(yàn)沉淀、實(shí)踐的提煉。感謝身邊的朋友一直以來的幫助和鼓勵(lì),筆者受益匪淺。
感謝劉華、張悅蘭、王彬、何夢(mèng)君、郭凱、王威武、李詩萌、黃玲利、趙娜、張薇、左冬冬、魏賓賓、劉堅(jiān)君、高亮、周恭元、薛翎軍、沈曉勇等同事和朋友參與本書內(nèi)容的討論和修訂,經(jīng)過多次溝通與修訂,盡可能讓書稿中的錯(cuò)誤更少。
感謝妻子劉寧對(duì)筆者夢(mèng)想的理解和支持,在筆者編寫本書的過程中細(xì)心照顧家庭,為筆者擠出了大量時(shí)間,在整個(gè)過程中不厭其煩地聆聽書稿一點(diǎn)一滴的進(jìn)展和一次次編寫思路的優(yōu)化更新,同時(shí)參與了部分公式的設(shè)計(jì)和部分章節(jié)的文字核對(duì)。還要感謝寶貝兒子沐然、沐橦,他們的每個(gè)微笑和可愛瞬間都讓筆者的疲勞瞬間消散,也是筆者努力的動(dòng)力所在。感謝父母的養(yǎng)育之恩,無論是千里之行始于足下的理念熏陶,還是無條件的信任、關(guān)心、鼓勵(lì),都讓筆者能夠勇敢追夢(mèng)。有了你們的支持,筆者追逐夢(mèng)想的信念更加堅(jiān)定、腳步更加踏實(shí)!
筆者盡力修訂了書中的內(nèi)容,但難免有疏漏之處,煩請(qǐng)讀者批評(píng)指正,謝謝!
微信訂閱號(hào):沐然云計(jì)算。
篇 概述
第1章 云計(jì)算架構(gòu)設(shè)計(jì)
1.1 云計(jì)算架構(gòu)體系
1.2 云計(jì)算帶來的思維變化
1.3 架構(gòu)設(shè)計(jì)流程
1.4 架構(gòu)設(shè)計(jì)原則
第2章 實(shí)踐項(xiàng)目:MumuLab
2.1 系統(tǒng)概述
2.2 模塊一:云設(shè)計(jì)模式CDP界面
2.3 模塊二:實(shí)驗(yàn)管理
2.4 模塊三:統(tǒng)計(jì)分析
2.5 模塊四:后端運(yùn)維管理
第二篇 設(shè)計(jì)模式
第3章 可復(fù)用的設(shè)計(jì)模式
3.1 什么是架構(gòu)設(shè)計(jì)模式
3.2 設(shè)計(jì)模式的邏輯關(guān)系
3.3 實(shí)踐與壞味道
第4章 合理部署
4.1 公有云使用云主機(jī)快速部署業(yè)務(wù)
4.2 公有云托管應(yīng)用
4.3 公有云托管服務(wù)器
4.4 私有化私有化部署
4.5 混合架構(gòu)混合架構(gòu)連通
4.6 混合架構(gòu)云管理平臺(tái)
4.7 全球部署全球部署
4.8 多云部署多云部署
第5章 業(yè)務(wù)持續(xù)
5.1 可用性地域內(nèi)業(yè)務(wù)高可用
5.2 可用性跨地域業(yè)務(wù)部署
5.3 可靠性非結(jié)構(gòu)化數(shù)據(jù)可靠存儲(chǔ)
5.4 可靠性采用高可用的云數(shù)據(jù)庫
5.5 可恢復(fù)性業(yè)務(wù)容災(zāi)
5.6 可恢復(fù)性云端備份
5.7 可恢復(fù)性數(shù)據(jù)庫備份回檔機(jī)制
第6章 彈性擴(kuò)展
6.1 解耦數(shù)據(jù)存儲(chǔ)訪問動(dòng)靜分離
6.2 解耦通過消息隊(duì)列解耦組件
6.3 擴(kuò)展計(jì)算自動(dòng)伸縮
6.4 擴(kuò)展數(shù)據(jù)庫層擴(kuò)展
6.5 擴(kuò)展通過混合架構(gòu)擴(kuò)展本地能力
6.6 遷移業(yè)務(wù)及數(shù)據(jù)遷移
6.7 均衡流量轉(zhuǎn)發(fā)及全局負(fù)載均衡
第7章 性能效率
7.1 計(jì)算提升計(jì)算性能
7.2 緩存緩存數(shù)據(jù)庫
7.3 緩存CDN緩存加速
7.4 網(wǎng)絡(luò)網(wǎng)絡(luò)優(yōu)化
7.5 網(wǎng)絡(luò)選擇部署地域
7.6 性能測試應(yīng)用性能管理APM
第8章 安全合規(guī)
8.1 權(quán)限權(quán)限策略與訪問控制
8.2 安全防護(hù)終端安全
8.3 安全防護(hù)數(shù)據(jù)安全
8.4 安全防護(hù)網(wǎng)絡(luò)安全
8.5 安全防護(hù)應(yīng)用安全
8.6 審計(jì)合規(guī)審計(jì)
8.7 審計(jì)合規(guī)合規(guī)
第9章 持續(xù)運(yùn)營
9.1 服務(wù)標(biāo)準(zhǔn)云服務(wù)等級(jí)協(xié)議SLA
9.2 監(jiān)控告警云監(jiān)控告警
9.3 成本成本優(yōu)化
9.4 數(shù)據(jù)冷熱數(shù)據(jù)分層存儲(chǔ)
9.5 數(shù)據(jù)數(shù)據(jù)開放及隱私計(jì)算
9.6 運(yùn)營持續(xù)運(yùn)營
第三篇 應(yīng)用與評(píng)估
第10章 行業(yè)場景案例
10.1 引言
10.2 新零售行業(yè)的架構(gòu)設(shè)計(jì)
10.3 游戲行業(yè)的架構(gòu)設(shè)計(jì)
10.4 傳統(tǒng)行業(yè)的架構(gòu)設(shè)計(jì)
第11章 評(píng)估與重構(gòu)
11.1 評(píng)估與重構(gòu)的時(shí)機(jī)
11.2 適用性評(píng)估
11.3 成熟度評(píng)估
11.4 健壯性評(píng)估
第12章 總結(jié)與展望
12.1 云的變化與趨勢
12.2 經(jīng)驗(yàn)的提煉與能力的復(fù)用
12.3 構(gòu)建自己的浪潮之巔
附錄A 云架構(gòu)設(shè)計(jì)模式列表
附錄B 云服務(wù)名稱對(duì)應(yīng)表
附錄C 基于設(shè)計(jì)模式的解決方案編排模板
附錄D Advisor巡檢問題