學(xué)習(xí)哪些API決策需要管治,以及何時(shí)通過(guò)何種方法管治。
通過(guò)API即產(chǎn)品(AaaP)的方式設(shè)計(jì)、部署和管理API。
學(xué)習(xí)構(gòu)成API產(chǎn)品基礎(chǔ)的十大支柱。
學(xué)習(xí)持續(xù)改進(jìn)模型在API整個(gè)生命周期內(nèi)管治變更的過(guò)程。
探索API產(chǎn)品生命周期的五大階段。
深入探討設(shè)計(jì)、構(gòu)建與維護(hù)API的團(tuán)隊(duì)角色。
學(xué)習(xí)如何管理API格局(即由組織發(fā)布的一系列API)。
前言
隨著社會(huì)和企業(yè)的數(shù)字化程度越來(lái)越高,互聯(lián)軟件的需求呈現(xiàn)出了爆炸式增長(zhǎng)。反過(guò)來(lái),應(yīng)用程序編程接口(Application Programming Interface,API)已成為現(xiàn)代組織的重要資源,因?yàn)樗龠M(jìn)了軟件之間的相互連接。但事實(shí)證明,有效管理這些API 是一項(xiàng)新挑戰(zhàn)。為了獲取API 的最大價(jià)值,我們需要學(xué)習(xí)如何管理API 的設(shè)計(jì)、開(kāi)發(fā)、部署、增長(zhǎng)、質(zhì)量,以及安全,同時(shí)還需要應(yīng)對(duì)上下文、時(shí)間和規(guī)模等復(fù)雜因素。
本書(shū)的讀者對(duì)象
如果你剛開(kāi)始構(gòu)建API 程序,而且想了解一下后面的工作,或者你已擁有API 但想學(xué)習(xí)一下如何更好地管理它們,則本書(shū)非常適合你。
在本書(shū)中,我們會(huì)嘗試構(gòu)建一個(gè)可應(yīng)用于多種上下文的API 管理框架。書(shū)中提供的指導(dǎo)不僅可以幫助你管理與世界各地的開(kāi)發(fā)人員共享的一個(gè)API,而且還可以就如何在專(zhuān)門(mén)為內(nèi)部開(kāi)發(fā)人員設(shè)計(jì)的微服務(wù)架構(gòu)中構(gòu)建一組復(fù)雜的API 提供建議,以及介于二者之間的一切。
本書(shū)的編寫(xiě)盡可能保持技術(shù)中立。我們提供的建議和分析適用于任何基于API 的架構(gòu),包括 HTTP CRUD、REST、GraphQL 以及事件驅(qū)動(dòng)的交互風(fēng)格。
本書(shū)適合于任何希望改進(jìn)API 相關(guān)決策的工作人員。
本書(shū)的主要內(nèi)容
本書(shū)包含了我們多年來(lái)在設(shè)計(jì)、開(kāi)發(fā)和改進(jìn) API 方面積累的知識(shí),既囊括了我們自己的知識(shí),也借鑒了他人的經(jīng)驗(yàn)。我們將所有這些經(jīng)驗(yàn)提煉到了這本書(shū)中。我們確立了有效開(kāi)發(fā)API 的兩個(gè)核心因素:采用產(chǎn)品視角與建立正確類(lèi)型的團(tuán)隊(duì)。我們還確立了管理該工作的三個(gè)基本因素:管治、產(chǎn)品成熟度與格局設(shè)計(jì)。
API 管理的這五個(gè)要素構(gòu)成了成功構(gòu)建API 管理程序的基礎(chǔ)。在本書(shū)中,我們會(huì)逐個(gè)介紹這些主題,并提供有關(guān)如何根據(jù)組織的大環(huán)境塑造這五個(gè)要素的指導(dǎo)。
大綱
本書(shū)所討論的管理問(wèn)題的范圍會(huì)隨著章節(jié)的推進(jìn)而逐步擴(kuò)大。首先,我們介紹基于決策的管治和API 即產(chǎn)品的基本概念。其次,我們介紹構(gòu)建API 產(chǎn)品必須管理的所有工作。
在介紹完單個(gè)API 的管理之后,我們將深入API 隨著時(shí)間發(fā)生的變化,以及API 的成熟度帶給這些變更決策的影響。接下來(lái)是對(duì)執(zhí)行變更工作的團(tuán)隊(duì)和人員的探索。最后,在本書(shū)的后半部分,我們將介紹規(guī)模的復(fù)雜性以及管理API 產(chǎn)品格局的挑戰(zhàn)。
下面是每章的內(nèi)容概要:
第1 章介紹API 管理域,并解釋為什么有效管理API 如此困難。
第2 章從基于決策的工作(API 管理的基本概念)的角度探索管治。
第3 章確立API 即產(chǎn)品的觀點(diǎn),以及為什么該觀點(diǎn)是所有API 戰(zhàn)略的重要組成部分。
第4 章概述API 產(chǎn)品領(lǐng)域的十大基本支柱。這些支柱形成了一組必須加以管理的決策制訂的任務(wù)。
第5 章深入探討API 持續(xù)變更的意義,并介紹采用持續(xù)變更思維的必要性,幫助你了解不同類(lèi)型的 API 變更(及其影響)。
第6 章介紹API 產(chǎn)品的生命周期框架,并幫助你在API 整個(gè)生命周期內(nèi)通過(guò)十大支柱管理API。
第7 章討論API 管理系統(tǒng)中人的因素,探索API 團(tuán)隊(duì)在API 產(chǎn)品整個(gè)生命周期內(nèi)擔(dān)負(fù)的常見(jiàn)角色、責(zé)任,以及設(shè)計(jì)模式。
第8 章介紹API 管理中的規(guī)模問(wèn)題。介紹八個(gè)“V”,即多樣性、術(shù)語(yǔ)、規(guī)模、速度、脆弱性、可見(jiàn)性、版本,以及波動(dòng)性,這些是當(dāng)多個(gè)API 同時(shí)發(fā)生變化時(shí)必須注意的問(wèn)題。
第9 章概述持續(xù)格局設(shè)計(jì)方式,可用于持續(xù)、大規(guī)模地管理API 變更。
第10 章將格局視角映射回API 即產(chǎn)品的視角,并說(shuō)明當(dāng)周?chē)母窬职l(fā)生變化時(shí),API 工作的變化。
第11 章總結(jié)API 的管理工作,并提出相關(guān)建議,幫助大家為未來(lái)做好準(zhǔn)備,踏上新征程。
本書(shū)不包含的內(nèi)容
API 管理的范圍非常廣,而且在環(huán)境、平臺(tái)和協(xié)議方面也存在著大量差異。由于創(chuàng)作的時(shí)間和空間有限,我們不可能介紹所有與API 工作相關(guān)的具體實(shí)施實(shí)踐。本書(shū)不是設(shè)計(jì)REST API 或選擇安全網(wǎng)關(guān)產(chǎn)品的指南。如果你正在尋找編寫(xiě)API 代碼或設(shè)計(jì)HTTP API 的規(guī)范指南,那么這本書(shū)也不適合你。雖然書(shū)中討論了具體的實(shí)踐示例,但本書(shū)的重點(diǎn)不在于實(shí)施(有大量書(shū)籍、博客和視頻可滿足這方面的需求)。本書(shū)解決了一些鮮有人重視的問(wèn)題,即如何在一個(gè)復(fù)雜的、不斷變化的組織系統(tǒng)中有效地管理API 的構(gòu)建工作。
排版約定
本書(shū)使用了下述排版約定。
斜體(Italic)
表示新術(shù)語(yǔ)、URL、電子郵件地址、文件名和擴(kuò)展名。
等寬字體(Constant Width)
表示程序片段,以及正文中出現(xiàn)的變量、函數(shù)名、數(shù)據(jù)庫(kù)、數(shù)據(jù)類(lèi)型、環(huán)境變量、語(yǔ)句和關(guān)鍵字等。
等寬斜體(constant width italic)
表示應(yīng)該由用戶輸入的值或根據(jù)上下文確定的值替換的文本。
O’Reilly 在線學(xué)習(xí)平臺(tái)(O’Reilly Online Learning)
近40 年來(lái),O’Reilly Media 致力于提供技術(shù)和商業(yè)培訓(xùn)、知識(shí)和卓越見(jiàn)解,來(lái)幫助眾多公司取得成功。
我們擁有獨(dú)一無(wú)二的專(zhuān)家和革新者組成的龐大網(wǎng)絡(luò),他們通過(guò)圖書(shū)、文章、會(huì)議和我們的在線學(xué)習(xí)平臺(tái)分享他們的知識(shí)和經(jīng)驗(yàn)。O’Reilly 的在線學(xué)習(xí)平臺(tái)允許你按需訪問(wèn)現(xiàn)場(chǎng)培訓(xùn)課程、深入的學(xué)習(xí)路徑、交互式編程環(huán)境,以及O’Reilly 和200 多家其他出版商提供的大量文本和視頻資源。有關(guān)的更多信息,請(qǐng)?jiān)L問(wèn)http://oreilly.com。
意見(jiàn)和疑問(wèn)
請(qǐng)把你對(duì)本書(shū)的意見(jiàn)和疑問(wèn)發(fā)給出版社:
美國(guó):
O’Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中國(guó):
北京市西城區(qū)西直門(mén)南大街2號(hào)成銘大廈C座807室(100035)
奧萊利技術(shù)咨詢(xún)(北京)有限公司
如果你對(duì)本書(shū)有一些評(píng)論或技術(shù)上的建議, 請(qǐng)發(fā)送電子郵件到bookquestions@oreilly.com。
有關(guān)其他圖書(shū)、講座、會(huì)議、新聞的信息,請(qǐng)?jiān)L問(wèn)我們的網(wǎng)站:http://www.oreilly.com。
我們的Facebook:http://facebook.com/oreilly。
我們的Twitter:http://twitter.com/oreillymedia。
我們的YouTube:http://www.youtube.com/oreillymedia。
致謝
本書(shū)得以付梓,我們要感謝很多人給予的幫助。感謝在創(chuàng)作早期大綱和草稿以及編輯的過(guò)程中,給予過(guò)我們幫助和支持的所有人。首先,感謝我們采訪和咨詢(xún)過(guò)的所有人,以及參加過(guò)研討會(huì)的所有人。我們獲得了積極的反饋和的良好建議。其次,還要感謝CA 科技公司的同仁多年來(lái)支持我們,并幫助我們舉辦研討會(huì)和現(xiàn)場(chǎng)的采訪。特別感謝閱讀我們?cè)缙诘牟莞澹椭覀兺瓿闪吮緯?shū)的所有人。感謝Matt McLarty、James Higginbotham,以及Chris Wood 在百忙之中抽出時(shí)間閱讀和審查我們的創(chuàng)作,并指出有待提升的地方。最后,我們非常感謝O’Reilly Media 的團(tuán)隊(duì)。感謝Alicia Young、Justin Billing,以及O’Reilly 全體員工,感謝你們?yōu)閹椭覀儗⒆畛醯南敕ㄗ兂裳矍暗倪@本書(shū)所付出的一切努力。
Mehdi Medjaoui是API學(xué)院的首席API經(jīng)濟(jì)學(xué)家,OAuth.io的創(chuàng)始人以及2020 EU委員會(huì)的API管治專(zhuān)家。
Erik Wilde是API學(xué)院的首席顧問(wèn),主要從事數(shù)字化轉(zhuǎn)換以及API的戰(zhàn)略、設(shè)計(jì)和管理的工作。
Ronnie Mitra是API學(xué)院的首席設(shè)計(jì)師,專(zhuān)門(mén)從事高價(jià)值A(chǔ)PI、戰(zhàn)略以及組織系統(tǒng)的開(kāi)發(fā)工作。
Mike Amundsen是API學(xué)院的首席架構(gòu)師,負(fù)責(zé)幫助各個(gè)公司發(fā)展API業(yè)務(wù)。
目錄
序 .1
前言 .3
第1 章 API 管理的挑戰(zhàn) 9
1.1 什么是API 管理? . 11
1.1.1 什么是API ? 11
1.1.2 不僅僅是API 13
1.1.3 API 成熟度階段 14
1.1.4 不止單個(gè)API 14
1.1.5 API 業(yè)務(wù) . 15
1.2 為什么API 管理如此之難? . 16
1.2.1 范圍 17
1.2.2 規(guī)模 18
1.2.3 標(biāo)準(zhǔn) 18
1.3 管理API 格局 19
1.3.1 技術(shù) 20
1.3.2 團(tuán)隊(duì) 21
1.3.3 管治 22
1.4 小結(jié) 23
第2 章 API 管治 25
2.1 API 管治概述 . 26
2.1.1 決策 26
2.1.2 決策的管治 27
2.1.3 管治復(fù)雜的系統(tǒng) . 28
2.2 決策的管治 . 31
2.2.1 集中式與分散式 . 33
2.2.2 決策元素. 39
2.2.3 決策映射. 44
2.3 設(shè)計(jì)管治系統(tǒng) 46
2.3.1 管治模式1:接口監(jiān)督 48
2.3.2 管治模式2:機(jī)器驅(qū)動(dòng)的管治 . 49
2.3.3 管治模式3:協(xié)作式管治 50
2.4 小結(jié) 51
第3 章 API 即產(chǎn)品 53
3.1 設(shè)計(jì)思維 54
3.1.1 滿足用戶的需求 . 55
3.1.2 商業(yè)戰(zhàn)略可行性 . 56
3.1.3 貝索斯命令 56
3.1.4 將設(shè)計(jì)思維應(yīng)用到API 57
3.2 客戶引導(dǎo) 59
3.2.1 驚喜時(shí)刻. 60
3.2.2 API 的客戶引導(dǎo) 62
3.3 開(kāi)發(fā)者體驗(yàn) . 63
3.3.1 了解受眾. 64
3.3.2 安全輕松地使用API 70
3.4 小結(jié) 73
第4 章 API 產(chǎn)品的十大支柱 75
4.1 十大支柱簡(jiǎn)介 76
4.1.1 戰(zhàn)略 77
4.1.2 設(shè)計(jì) 80
4.1.3 文檔 84
4.1.4 開(kāi)發(fā) 87
4.1.5 測(cè)試 91
4.1.6 部署 94
4.1.7 安全 98
4.1.8 監(jiān)控 100
4.1.9 發(fā)現(xiàn)與推廣 . 102
4.1.10 變更管理 104
4.2 小結(jié) . 106
第5 章 API 的持續(xù)改進(jìn) 107
5.1 API 的變更 108
5.1.1 API 發(fā)行的生命周期 109
5.1.2 接口模型的變更 110
5.1.3 實(shí)施的變更 . 113
5.1.4 實(shí)例的變更 . 113
5.1.5 支持資產(chǎn)的變更 114
5.2 持續(xù)變更 115
5.2.1 增量式改進(jìn) . 115
5.2.2 API 變更的速度 117
5.3 提高API 的可變性 119
5.3.1 API 變更的成本 120
5.3.2 機(jī)會(huì)成本 120
5.3.3 耦合成本 121
5.4 小結(jié) . 123
第6 章 API 產(chǎn)品的生命周期 . 124
6.1 度量與里程碑 . 125
6.1.1 OKR 和KPI 126
6.1.2 定義API 的目標(biāo) 127
6.1.3 可度量的結(jié)果 128
6.2 API 的產(chǎn)品生命周期 131
6.2.1 第一個(gè)階段:創(chuàng)建 132
6.2.2 第二個(gè)階段:發(fā)布 133
6.2.3 第三個(gè)階段:實(shí)現(xiàn) 136
6.2.4 第四個(gè)階段:維護(hù) 137
6.2.5 第五個(gè)階段:退役 138
6.3 通過(guò)產(chǎn)品生命周期管理各個(gè)支柱 . 140
6.3.1 創(chuàng)建 141
6.3.2 發(fā)布 144
6.3.3 實(shí)現(xiàn) 148
6.3.4 維護(hù) 150
6.3.5 退役 151
6.4 小結(jié) . 152
第7 章 API 團(tuán)隊(duì) 153
7.1 API 角色 155
7.1.1 業(yè)務(wù)角色 156
7.1.2 技術(shù)角色 158
7.2 API 團(tuán)隊(duì) 160
7.2.1 團(tuán)隊(duì)與API 成熟度 . 161
7.2.2 擴(kuò)展團(tuán)隊(duì) 168
7.2.3 Spotify 的團(tuán)隊(duì)與角色 168
7.2.4 通過(guò)文檔擴(kuò)展團(tuán)隊(duì) 170
7.3 文化與團(tuán)隊(duì) 171
7.3.1 康威定律 172
7.3.2 鄧巴數(shù) 174
7.3.3 亞歷山大的文化馬賽克 175
7.3.4 支持實(shí)驗(yàn) 177
7.4 小結(jié) . 179
第8 章 API 格局 181
8.1 API 考古 183
8.2 大規(guī)模的API 管理 185
8.2.1 平臺(tái)原則 186
8.2.2 原則、協(xié)議與模式 188
8.2.3 API 格局的語(yǔ)言格局 191
8.2.4 API 的API 192
8.3 理解API 格局 . 194
8.4 API 格局的八個(gè)V. 195
8.4.1 多樣性 196
8.4.2 術(shù)語(yǔ) 197
8.4.3 規(guī)模 202
8.4.4 速度 203
8.4.5 脆弱性 204
8.4.6 可見(jiàn)性 205
8.4.7 版本 206
8.4.8 波動(dòng)性 208
8.5 小結(jié) . 209
第9 章 API 格局之旅 210
9.1 構(gòu)建API 格局的指南 211
9.2 API 格局指南的生命周期 . 215
9.3 支持中心 216
9.4 成熟度與八個(gè)V . 220
9.4.1 多樣性 221
9.4.2 術(shù)語(yǔ) 223
9.4.3 規(guī)模 226
9.4.4 速度 229
9.4.5 脆弱性 231
9.4.6 可見(jiàn)性 234
9.4.7 版本 237
9.4.8 波動(dòng)性 239
9.5 小結(jié) . 241
第10 章 持續(xù)發(fā)展格局中的API 生命周期管理 242
10.1 API 產(chǎn)品與生命周期支柱 243
10.1.1 API 格局 243
10.1.2 決策點(diǎn)與成熟度 244
10.2 格局的各個(gè)方面與API 生命周期支柱. 245
10.2.1 戰(zhàn)略 . 246
10.2.2 設(shè)計(jì) . 248
10.2.3 文檔 . 251
10.2.4 開(kāi)發(fā) . 254
10.2.5 測(cè)試 . 258
10.2.6 部署 . 264
10.2.7 安全 . 268
10.2.8 監(jiān)控 . 271
10.2.9 發(fā)現(xiàn) . 274
10.2.10 變更管理 . 278
10.3 小結(jié) 281
第11 章 持續(xù)的旅程 . 283
11.1 為將來(lái)做準(zhǔn)備 284
11.2 從今天開(kāi)始管理 285