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