為何寫作本書 ?
如果你想得到從未擁有過的東西,你就得去做從未做過的事。
—托馬斯·杰斐遜
20世紀(jì)60年代提出的云計(jì)算是20世紀(jì)最偉大的技術(shù)理念之一。伴隨著云計(jì)算所引發(fā)的技術(shù)爆炸而產(chǎn)生的創(chuàng)新商業(yè)模式正在沖擊著各行各業(yè),聲勢浩大地改變著整個(gè)世界。支付寶重塑了我們的支付習(xí)慣,Netflix徹底顛覆了我們收看電視和電影的習(xí)慣,滴滴與Uber改變了我們交通出行的習(xí)慣,這一切在十幾年前都是不可想象的。而現(xiàn)在,云計(jì)算與互聯(lián)網(wǎng)的影響正在滲透到各行各業(yè),為這些行業(yè)帶來新的商業(yè)模式與業(yè)務(wù)邏輯。在云計(jì)算的驅(qū)動(dòng)下,新的商業(yè)模式正在不斷為人們創(chuàng)造更加美好的生活。
作為云計(jì)算的再升級,云原生為商業(yè)帶來了更多元且海量的技術(shù)紅利。比如,快速迭代與更快地使用新技術(shù),利用云端資源的集群和彈性優(yōu)勢來降低經(jīng)營成本并提高經(jīng)濟(jì)效益,借助云原生技術(shù)加速新商業(yè)模式的探索等。通過云原生,企業(yè)可以重新審視現(xiàn)有的商業(yè)模式,重新思考如何更好地構(gòu)建新的商業(yè)模式。隨著云原生應(yīng)用的成功和普及,越來越多的企業(yè)開始采用云原生架構(gòu)來開發(fā)軟件,有些企業(yè)甚至還將云原生的理念運(yùn)用到了傳統(tǒng)企業(yè)軟件的開發(fā)和交付中。
在IT架構(gòu)日益復(fù)雜的今天,企業(yè)急需完整的技術(shù)與理論方法,以重塑軟件全生命周期研發(fā)管理體系與技術(shù)棧,改造傳統(tǒng) IT 架構(gòu),融合先進(jìn)技術(shù),提高服務(wù)能力,為企業(yè)的高速發(fā)展提供支持,而這一套完整的技術(shù)與理論方法就是云原生。云原生作為企業(yè)各業(yè)務(wù)所需技術(shù)支持的提供方,通過自身的平臺能力與服務(wù)能力,打造了一套高效、可靠的研發(fā)流程體系與技術(shù)支持體系。當(dāng)出現(xiàn)新的市場變化、需要構(gòu)建新的前臺應(yīng)用時(shí),云原生可以迅速提供技術(shù)服務(wù),從而能夠敏捷地支持企業(yè)的創(chuàng)新。技術(shù)賦能業(yè)務(wù),業(yè)務(wù)驅(qū)動(dòng)技術(shù),二者形成一個(gè)完整的閉環(huán)。
實(shí)際上,云原生不只是一種技術(shù)架構(gòu)或者概念,單純地加大技術(shù)和人才方面的投入是無法保障企業(yè)經(jīng)營效能的持續(xù)提升的,只有站在技術(shù)價(jià)值觀和方法論的高度,才能系統(tǒng)性地解決企業(yè)經(jīng)營發(fā)展中關(guān)于技術(shù)的諸多問題。而誰能率先解決具有云計(jì)算特征的全新技術(shù)價(jià)值觀和方法論的問題,并打造出平臺級能力,誰就能從真正意義上使用云計(jì)算。
2019年是云原生技術(shù)爆炸的元年,阿里云認(rèn)為云原生必將依循“概念引爆—落地嘗試—規(guī)模復(fù)制”的認(rèn)知升級路徑,從行業(yè)頭部企業(yè)普惠至更多中小型企業(yè),成為云計(jì)算時(shí)代的“基礎(chǔ)設(shè)施”。當(dāng)前,很多人也正在努力嘗試?yán)眠@些技術(shù)來設(shè)計(jì)和開發(fā)云原生應(yīng)用。
本書將重點(diǎn)闡述云原生技術(shù)和架構(gòu)建設(shè)的方法,這也是阿里巴巴多年以來在云計(jì)算領(lǐng)域的落地實(shí)踐以及在云原生架構(gòu)建設(shè)方面的經(jīng)驗(yàn)總結(jié)。阿里云寫作本書的初衷是,希望阿里巴巴的云原生技術(shù)以及架構(gòu)建設(shè)方法能為計(jì)劃進(jìn)行數(shù)字化轉(zhuǎn)型或者已經(jīng)在數(shù)字化轉(zhuǎn)型之路上奮力前行的企業(yè)決策者、業(yè)務(wù)推動(dòng)者和技術(shù)實(shí)現(xiàn)者提供認(rèn)知和升級方面的參考和借鑒,幫助企業(yè)結(jié)合自身特點(diǎn),在戰(zhàn)略規(guī)劃的牽引下,從組織、保障、準(zhǔn)則、內(nèi)容、步驟五個(gè)層面綜合考慮,最終建立起一套可持續(xù)發(fā)展的云原生架構(gòu),以加速企業(yè)的數(shù)字化轉(zhuǎn)型進(jìn)程。阿里云希望幫助開發(fā)者和架構(gòu)師更從容地開啟云原生應(yīng)用設(shè)計(jì)之旅,與更廣泛的行業(yè)從業(yè)者交流、分享,從而更好地幫助企業(yè)享受云計(jì)算所帶來的技術(shù)紅利,用技術(shù)驅(qū)動(dòng)企業(yè)快速增長。
本書主要內(nèi)容
本書不是教讀者如何一步步打造一個(gè)滿足特定業(yè)務(wù)需求的云原生應(yīng)用,而是告訴讀者如何設(shè)計(jì)、構(gòu)建和運(yùn)維一個(gè)優(yōu)秀的云原生應(yīng)用,讓讀者了解云原生能為企業(yè)帶來什么樣的實(shí)際業(yè)務(wù)價(jià)值。在實(shí)現(xiàn)業(yè)務(wù)需求的過程中,使用說明固然很重要,但只有系統(tǒng)性地理解云原生應(yīng)用的基本原理、架構(gòu)設(shè)計(jì)規(guī)則和構(gòu)建方法,才能更好地打造成功的云原生應(yīng)用。
本書聚焦于云原生業(yè)務(wù)形態(tài)背后的技術(shù)選型和架構(gòu)設(shè)計(jì)落地,從“技術(shù)+商業(yè)”的視角闡述如何利用云原生賦能業(yè)務(wù),并結(jié)合阿里巴巴云原生技術(shù)團(tuán)隊(duì)在云原生領(lǐng)域的探索與沉淀,幫助企業(yè)重塑軟件全生命周期研發(fā)管理體系與技術(shù)棧。
本書將回顧阿里云多年積累的云原生實(shí)踐經(jīng)驗(yàn),分享云原生為業(yè)務(wù)帶來巨大技術(shù)紅利的經(jīng)驗(yàn)。具體章節(jié)劃分及主要內(nèi)容如下。
第1章主要介紹云原生的重要性,以及企業(yè)內(nèi)部云原生落地的現(xiàn)狀與所面臨的挑戰(zhàn)。
第2章重點(diǎn)闡述云原生架構(gòu)的定義,以及云原生架構(gòu)在企業(yè)中實(shí)際落地時(shí)需要遵循的關(guān)鍵原則。
第3章為讀者介紹云原生架構(gòu)的各種模式與反模式。
第4章進(jìn)一步介紹容器和微服務(wù)等云原生相關(guān)的技術(shù)和理念。
第5章以阿里云ACNA架構(gòu)設(shè)計(jì)方法開篇,重點(diǎn)講解評估云原生架構(gòu)成熟度所需要考慮的維度與細(xì)則。
第6章從職能價(jià)值角度出發(fā),闡述云原生對于不同崗位的業(yè)務(wù)賦能。
第7章聚焦于企業(yè)落地價(jià)值,分享具有代表性的企業(yè)案例和最佳實(shí)踐。這些最佳實(shí)踐對于打造一個(gè)成功的云原生應(yīng)用來說具有非常大的幫助。
第8章從行業(yè)角度出發(fā),闡述未來的云原生技術(shù)發(fā)展趨勢。
附錄A簡要介紹了阿里云現(xiàn)有的云原生產(chǎn)品家族。
附錄B總結(jié)了一些常見分布式設(shè)計(jì)模式。
本書讀者對象
開發(fā)人員:本書可幫助開發(fā)人員熟悉云原生架構(gòu)的相關(guān)技術(shù),使之能夠從宏觀架構(gòu)的角度研究業(yè)務(wù),從而拓寬技術(shù)視
序1
序2
序3
前言
第1章 云原生:云計(jì)算的再升級1
1.1 什么是云原生1
1.1.1 云原生的概念1
1.1.2 云原生是云計(jì)算的趨勢5
1.1.3 支撐淘寶千億交易背后的技術(shù)平臺故事6
1.2 云原生是云計(jì)算的再升級8
1.2.1 重塑研發(fā)流水線9
1.2.2 重新定義軟件交付模式9
1.2.3 運(yùn)維模式的升級11
1.2.4 應(yīng)用架構(gòu)的升級12
1.2.5 組織結(jié)構(gòu)的升級13
1.3 構(gòu)建現(xiàn)代化應(yīng)用14
1.3.1 現(xiàn)代化應(yīng)用及其特點(diǎn)14
1.3.2 云原生架構(gòu)的提出14
1.3.3 云原生架構(gòu)能為企業(yè)帶來什么價(jià)值16
1.4 案例:阿里巴巴云原生發(fā)展實(shí)踐17
1.4.1 應(yīng)用架構(gòu)互聯(lián)網(wǎng)化階段18
1.4.2 核心系統(tǒng)全面云原生化階段18
1.4.3 云原生技術(shù)全面升級階段19
1.5 本章小結(jié)19
第2章 云原生架構(gòu)的定義和原則21
2.1 云原生架構(gòu)定義21
2.1.1 降低研發(fā)成本和項(xiàng)目維護(hù)復(fù)雜度22
2.1.2 加快軟件迭代速度,降低管理和運(yùn)行成本23
2.2 云原生架構(gòu)原則24
2.2.1 服務(wù)化原則25
2.2.2 彈性原則26
2.2.3 可觀測原則28
2.2.4 韌性原則29
2.2.5 所有過程自動(dòng)化原則30
2.2.6 零信任原則32
2.2.7 架構(gòu)持續(xù)演進(jìn)原則34
2.3 本章小結(jié)35
第3章 云原生架構(gòu)的模式和反模式36
3.1 服務(wù)化架構(gòu)模式36
3.1.1 服務(wù)接口定義37
3.1.2 IDL定義37
3.1.3 OpenAPI 38
3.2 Service Mesh化架構(gòu)模式40
3.2.1 Service Mesh之Sidecar模式41
3.2.2 Service Mesh之服務(wù)注冊和發(fā)現(xiàn)模式45
3.2.3 Service Mesh之中心化Broker模式48
3.3 Serverless架構(gòu)模式51
3.4 計(jì)算存儲分離模式54
3.5 分布式事務(wù)模式55
3.5.1 兩階段提交55
3.5.2 BASE56
3.5.3 TCC56
3.5.4 Saga57
3.5.5 AT58
3.6 可觀測架構(gòu)模式59
3.6.1 日志60
3.6.2 度量60
3.6.3 追蹤62
3.6.4 事件流訂閱63
3.7 事件驅(qū)動(dòng)架構(gòu)模式63
3.7.1 什么是事件64
3.7.2 事件的生成和消費(fèi)64
3.7.3 事件異步通信65
3.7.4 數(shù)據(jù)變更捕獲65
3.7.5 讀寫分離66
3.8 網(wǎng)關(guān)架構(gòu)模式67
3.9 混沌工程模式68
3.10 聲明式設(shè)計(jì)模式69
3.11 典型的云原生架構(gòu)反模式70
3.11.1 龐大的單體應(yīng)用70
3.11.2 單體應(yīng)用“硬拆”為微服務(wù)71
3.11.3 缺乏自動(dòng)化能力的微服務(wù)71
3.11.4 架構(gòu)不能充分使用云的彈性能力72
3.11.5 技術(shù)架構(gòu)與組織能力不匹配73
3.12 本章小結(jié)74
第4章 云原生技術(shù)及概念介紹75
4.1 容器技術(shù)75
4.1.1 容器技術(shù)的背景與價(jià)值75
4.1.2 典型的容器技術(shù)77
4.1.3 應(yīng)用場景案例:申通基于Kubernetes的云原生化81
4.2 DevOps技術(shù)84
4.2.1 DevOps的技術(shù)背景與價(jià)值84
4.2.2 DevOps的原則與技術(shù)85
4.2.3 應(yīng)用場景案例:阿里巴巴DevOps實(shí)踐91
4.3 微服務(wù)93
4.3.1 微服務(wù)的背景與價(jià)值93
4.3.2 微服務(wù)的設(shè)計(jì)約束原則與典型架構(gòu)94
4.3.3 應(yīng)用場景案例:阿里巴巴的Dubbo實(shí)踐98
4.4 Serverless99
4.4.1 Serverless的技術(shù)背景與價(jià)值99
4.4.2 Serverless的典型技術(shù)與架構(gòu)100
4.4.3 應(yīng)用場景案例:越光醫(yī)療巧用Serverless容器提升診斷準(zhǔn)確度102
4.5 開放應(yīng)用模型103
4.5.1 OAM的技術(shù)背景與價(jià)值103
4.5.2 OAM的典型原則與架構(gòu)104
4.5.3 應(yīng)用場景案例:KubeVela基于Kubernetes OAM實(shí)現(xiàn)106
4.6 Service Mesh技術(shù)109
4.6.1 Service Mesh的技術(shù)背景與價(jià)值109
4.6.2 Service Mesh的典型技術(shù)與架構(gòu)110
4.6.3 應(yīng)用場景案例:阿里巴巴Service Mesh實(shí)踐112
4.7 分布式消息隊(duì)列114
4.7.1 分布式消息隊(duì)列的背景與動(dòng)機(jī)114
4.7.2 分布式消息隊(duì)列的典型技術(shù)與架構(gòu)115
4.7.3 應(yīng)用場景案例:阿里巴巴的RocketMQ實(shí)踐117
4.8 云原生數(shù)據(jù)庫技術(shù)119
4.8.1 云原生數(shù)據(jù)庫的技術(shù)背景與價(jià)值120
4.8.2 云原生數(shù)據(jù)庫的典型技術(shù)120
4.8.3 應(yīng)用場景案例:PolarDB助力銀泰實(shí)現(xiàn)快速云化138
4.9 云原生大數(shù)據(jù)139
4.9.1 云原生大數(shù)據(jù)的技術(shù)背景與價(jià)值140
4.9.2 云原生大數(shù)據(jù)的典型技術(shù)140
4.9.3 應(yīng)用場景案例150
4.10 云原生AI153
4.10.1 云原生AI的技術(shù)背景與價(jià)值154
4.10.2 云原生AI的典型技術(shù)154
4.10.3 應(yīng)用場景案例:利用云原生AI打造新一代社交推薦平臺157
4.11 云端開發(fā)159
4.11.1 云端開發(fā)的技術(shù)背景與價(jià)值159
4.11.2 應(yīng)用場景案例:杭州幻熊科技借助云效平臺實(shí)現(xiàn)每日交付162
4.12 云原生安全164
4.12.1 云原生安全的技術(shù)背景與價(jià)值165
4.12.2 云原生安全的典型技術(shù)166
4.13 本章小結(jié)178
第5章 阿里巴巴云原生架構(gòu)設(shè)計(jì)179
5.1 云原生架構(gòu)的四個(gè)不同成熟階段180
5.2 ACNA的概念181
5.2.1 ACNA-S1:企業(yè)戰(zhàn)略視角182
5.2.2 ACNA-S2:業(yè)務(wù)發(fā)展視角183
5.2.3 ACNA-S3:組織能力視角183
5.2.4 ACNA-S4:云原生技術(shù)架構(gòu)視角184
5.2.5 ACNA-S5:架構(gòu)持續(xù)演進(jìn)閉環(huán)185
5.3 云原生架構(gòu)成熟度模型187
5.3.1 6個(gè)評估維度187
5.3.2 評估模型的實(shí)施指導(dǎo)和工作表188
5.3.3 服務(wù)化能力的評估190
5.3.4 彈性能力的評估191
5.3.5 無服務(wù)器化程度的評估191
5.3.6 可觀測性的評估192
5.3.7 韌性能力的評估193
5.3.8 自動(dòng)化能力的評估194
5.4 如何向云原生架構(gòu)遷移194
5.4.1 技術(shù)棧遷移評估表195
5.4.2 組織和文化的改變195
5.4.3 現(xiàn)有產(chǎn)品的遷移路徑197
5.4.4 項(xiàng)目實(shí)施關(guān)鍵點(diǎn)197
5.5 架構(gòu)風(fēng)險(xiǎn)控制198
5.6 本章小結(jié)200
第6章 云原生落地實(shí)踐對不同崗位的影響201
6.1 CXO和IT主管201
6.1.1 外部環(huán)境201
6.1.2 內(nèi)部環(huán)境202
6.2 架構(gòu)師/咨詢?nèi)藛T/系統(tǒng)規(guī)劃人員203
6.3 開發(fā)人員204
6.4 運(yùn)維人員206
6.5 軟件交付工程師/系統(tǒng)集成工程師207
6.6 從數(shù)據(jù)庫管理員到數(shù)據(jù)庫架構(gòu)師208
6.7 本章小結(jié)210
第7章 不同行業(yè)的云原生架構(gòu)實(shí)踐211
7.1 完美日記的云原生之路211
7.2 突圍數(shù)字化轉(zhuǎn)型,云原生賦能特步新零售214
7.3 落地云原生,聯(lián)通構(gòu)建新一代云化業(yè)務(wù)支撐系統(tǒng)220
7.4 申通快遞核心業(yè)務(wù)系統(tǒng)云原生之路223
第8章 云原生架構(gòu)的發(fā)展趨勢227
8.1 容器技術(shù)的發(fā)展趨勢227
8.2 基于云原生的新一代應(yīng)用編程界面的發(fā)展趨勢232
8.3 Serverless發(fā)展趨勢233
8.4 采用云原生技術(shù)的軟件交付模式235
8.5 云原生大數(shù)據(jù)發(fā)展趨勢237
8.6 云原生數(shù)據(jù)庫的發(fā)展趨勢238
8.7 本章小結(jié)240
附錄A 阿里云云原生產(chǎn)品介紹242
附錄B 常見分布式設(shè)計(jì)模式257