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