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