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