圖 1:微服務架構中的模擬 API

API 模擬案例學習

一家 InsurTech 初創公司使用 Golang 和 Python 開發微服務,并部署在 Kubernetes 的 Docker 中。他們使用基于 gRPC 的 API 實現微服務之間的通信。一個開發團隊必須等待其他團隊先完成 gRPC API 才能開始自己的開發工作,導致團隊之間發生時間線堵塞,初創公司無法以客戶需要的節奏交付產品。工程副總裁很清楚,他們需要找到一個解決方案,能夠讓團隊實現獨立開發。

通過使用模擬 gRPC API,他們消除了團隊之間的時間線阻塞。與開源替代方案不同,它提供了復雜的消息模式特性以及最新的協議特性支持。

開發團隊使用模擬 API 并行開發他們的 gRPC API,不需要等待服務器端代碼就緒就可以測試客戶端代碼。他們在 CI 構建代理上運行自動化測試套件,模擬 API 就運行在代理上的 Docker 容器中。

回報率計算模型

我們基于上述的例子創建了一個電子表格,你可以用它計算出采用 API 模擬所獲得的回報率。

請單擊鏈接下載這個表格。

圖 2:兩個團隊使用 API 模擬之前和之后的對比
圖 3:用模型計算不使用 API 模擬的成本延遲

在圖 3 中,用戶輸入是藍色的,計算結果是黃色的。

圖 3 的用戶輸入包括:

在關鍵路徑上使用 API 模擬

我們已經看到 API 模擬適用于有兩個開發團隊相互依賴的場景,對于需要多個團隊一起開發新產品或新功能的項目,也同樣適用。

通過 API 模擬來并行化開發工作——以簡單的兩個團隊為例

團隊 A 的新功能在發布到生產環境之前需要依賴團隊 B 的東西。

圖 2 給出了一個描述此種情況的甘特圖。團隊 B 在開發新功能,他們的 API 在第 20 天才能提供,團隊 A 開發的新功能在第 35 天就緒,然后開始做集成測試。最后,新功能在第 37 天部署到生產環境。

假設這兩個團隊決定采用 API 優先的開發模式,開始定義團隊之間的業務契約。他們定義系統之間的 API,并使用了 API 模擬,新功能在第 26 天部署到生產環境。對于這種場景,在團隊 B 的部分成員已經開始開發新功能的同時,其他成員和團隊 A 的部分成員在幾天內定義好系統的 API。通常,團隊 A 可以開始培訓如何使用 API 模擬,并在大概 4 天的時間里創建好模擬 API。團隊 A 有了模擬 API 就可以開發他們的新功能,并在開發完成之后與團隊 B 集成,這可能比使用真實 API 要多花一天時間,畢竟模擬 API 不可能完全精確地模擬真實系統,要與真實 API 順暢集成,需要做一些細小的改動。

要想加快速度,還有另一種選項,就是將模擬 API 外包給第三方供應商。如果模擬 API 外包出去,那么新功能就可以在第 20 天完成。

因為采用了 API 模擬和 API 優先的開發模式,我們加快了發版速度,可以在第 20 天發版,而不是第 37 天。

通過 API 模擬來并行化開發工作——以多團隊合作為例

我們對上面的例子做一個擴展,將兩個團隊擴展到四個團隊。在這個例子中,我們有團隊 A、B、C 和 D,它們一起為公司開發一個復雜的功能。

團隊 A 負責開發手機號轉移功能,他們依賴了手機號客戶服務 API,該 API 由團隊 B 負責。團隊 B 的 API 依賴了手機號查詢功能,該功能由團隊 C 負責。團隊 C 依賴了團隊 D,團隊 D 負責手機號的第三方服務集成。

團隊 A 要等到第 70 天交付他們負責的部分,但他們感到壓力很大,他們要等到第 61 天才能開始他們的開發工作,因為團隊 B 的功能要在那天才能完成。見圖 4。

圖 4:四個團隊串行開發,共同完成一個大功能

在看了項目計劃之后,團隊 A 決定提早開始開發工作。他們找到團隊 B,與他們一起定義 API。他們創建了模擬 API,在第 43 天就開始開發,而不是第 61 天。見圖 5。

圖 5:團隊 A 和團隊 B 并行開發

這樣團隊 A 就有了更多的喘息時間,因為他們在第 66 天就完成了開發工作,而不是第 70 天。如果其他團隊出了什么差錯,他們有更多的糾錯余地。

在看了更新過的項目計劃之后,團隊 B 意識到自己是離交付截止日期最近的。他們本來有 10 天時間(距離第 70 天),但現在只有 6 天(距離第 66 天)。他們決定開始與團隊 C 并行開發。在與團隊 B 溝通過后,團隊 C 意識到他們也可以與團隊 D 并行開發。這么看來,這個功能應該可以在第 30 天交付,而不是第 70 天。見圖 6。

圖 6:所有團隊都并行開發

值得一提的是,如果有必要,各個團隊使用模擬 API 的順序是可以調換的。例如,如果團隊 C 率先使用了模擬 API 并提前幾天交付功能,這樣就可以降低團隊 B 和團隊 A 的風險,為后續 API 定義的變動騰出了一些緩沖時間。

由于不可預見的復雜性,計劃的時間越長,里程碑延后的風險就越大——你可以盡早使用 API 模擬開始開發工作,將里程碑向左移,并盡早識別出關鍵風險。

盡管這個模型做了一些關鍵性的假設,但它所傳達的要點在于在采用 API 優先開發模式時如何通過 API 模擬來并行化團隊的開發工作。

并行開發的回報率計算

正如上面的甘特圖表所示,這個功能現在可以提前 40 天交付。我們可以在“RESULTS”部分看到這個。

這對那些為初創公司工作的高管來說很重要,因為他們已經向股東或投資者承諾某個功能將在指定日期前準備好。這個模型可以降低交付時間方面的風險,并幫他們實現承諾。

這個電子表格計算出了在 12 個月內沒有采用并行開發所造成的延遲成本。

圖 7:延遲成本電子表格的 RESULTS 部分

這也可以估算出延遲在企業中采用 API 模擬所造成的價值損失。對于圖 7 所示的情況,我們假設當新功能對客戶可用時,公司每天應該多賺 5000 美元。我們把 40 天乘以 5000 美元,也就是說,如果他們不采用 API 模擬,公司將損失 20 萬美元。假設該公司決定每年花 1 萬美元購買付費解決方案,延遲成本也只下降到 19 萬美元。在本例中,我們假設公司不只開發這一個功能,相反,在未來 12 個月內將開發三個功能。在這種情況下,由于沒有采用 API 模擬和 API 優先的開發模式來交付這些功能,他們可能會損失 59 萬美元。

如何開始采用 API 模擬

采用 API 優先的開發模式和 API 模擬可以先從一個團隊開始。讓整個組織都采用這種方法確實是有好處的,但這并不妨礙你先從其中的一個團隊開始,設定一個容易實現的目標。

在選擇第一個采用 API 優先開發模式和 API 模擬的團隊時,可以先確定業務關鍵特性,在甘特圖上列出所有涉及的團隊,并選擇在進行并行開發時對項目截止日期影響最大的那個團隊。

或者,如果你是團隊負責人,面臨著交付截止日期的壓力,就像上述例子中的團隊 A,你可以主動讓團隊采用 API 優先的開發模式和 API 模擬,以此來減輕團隊正在承受的壓力。

這個Wiki頁提供了一個對團隊十分有用的 API 模擬工具清單。

作者簡介:

Wojciech Bulaty專攻企業軟件開發和測試架構。他在寫作中融入了十多年的親身編程和領導經驗。他現在是 Traffic Parrot 團隊的一員,通過提供 API 模擬和服務虛擬化工具幫助微服務開發團隊加速交付、提高質量并縮短發布時間。你可以在推特上關注 Wojciech,也可以在LinkedIn上聯系他。

原文鏈接

Using API-First Development and API Mocking to Break Critical Path Dependencies

本文轉載自 《用 API 優先和 API 模擬打破軟件交付關鍵路徑上的依賴》,譯者:屠靈

熱門推薦
一個賬號試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊
3000+提示詞助力AI大模型
和專業工程師共享工作效率翻倍的秘密
返回頂部
上一篇
OpenAPI GPT4 版本推出后會帶來怎樣的行業變革?
下一篇
基于 API 的 SaaS:定義、優勢和挑戰
国内精品久久久久影院日本,日本中文字幕视频,99久久精品99999久久,又粗又大又黄又硬又爽毛片
欧美日韩免费高清一区色橹橹| 免费久久精品视频| 欧美精品一区二区精品网| 久久久美女艺术照精彩视频福利播放| 亚洲成人黄色影院| 欧美最猛性xxxxx直播| 日韩理论在线观看| 欧美性猛交一区二区三区精品| 国产欧美一区二区三区鸳鸯浴 | 韩日av一区二区| 欧美电影免费观看高清完整版在| 蓝色福利精品导航| 激情伊人五月天久久综合| 亚洲天堂a在线| 99精品视频免费在线观看| 亚洲制服欧美中文字幕中文字幕| 欧美日韩黄色一区二区| 成人在线视频首页| 免费在线视频一区| 欧美国产精品专区| 久久精品国产在热久久| 欧美高清在线一区二区| 91极品视觉盛宴| 欧美性大战久久久久久久蜜臀| 一本大道av伊人久久综合| 在线成人av影院| 一区二区三区精密机械公司| 1区2区3区欧美| 久久精品视频在线免费观看| 亚洲图片你懂的| 精久久久久久久久久久| 91小视频免费看| 国产欧美日韩精品一区| 日韩中文字幕亚洲一区二区va在线 | 亚洲日本在线看| 久久99国内精品| 欧美精品日韩精品| 亚洲女人****多毛耸耸8| 国产毛片精品视频| 日韩欧美在线一区二区三区| 亚洲影院理伦片| av中文字幕亚洲| 欧美一区二区三区在线视频| 欧美日韩一区中文字幕| 欧美亚洲免费在线一区| 国产91精品一区二区| 91精品国产一区二区三区蜜臀 | 在线观看区一区二| 日韩成人午夜精品| 一区二区三区四区在线免费观看| 欧美成人性战久久| 亚洲欧美另类久久久精品2019| 日韩三级av在线播放| 日本免费新一区视频| 国产在线乱码一区二区三区| 免费成人av在线| 国产精品18久久久久久久久 | 麻豆精品精品国产自在97香蕉| 亚洲免费伊人电影| 中文字幕日韩一区二区| 亚洲国产综合视频在线观看| 亚洲综合另类小说| 最新欧美精品一区二区三区| 欧美一卡二卡在线观看| 精品国产露脸精彩对白 | 国产在线一区二区| 日韩三级免费观看| 欧美成人精品3d动漫h| 中文字幕欧美区| 一区二区在线免费| 麻豆精品在线看| 国产高清不卡一区二区| av电影在线不卡| 欧美在线看片a免费观看| 在线成人小视频| 欧美一区二区三区免费在线看| 精品国产乱码久久久久久1区2区 | 亚洲精品中文在线观看| 亚洲免费观看高清完整版在线| 国产在线日韩欧美| 欧美福利视频导航| 国产精品麻豆一区二区| 一区二区三区四区av| 久草这里只有精品视频| 97精品电影院| 日韩欧美123| 午夜在线电影亚洲一区| 高清日韩电视剧大全免费| 在线综合+亚洲+欧美中文字幕| 亚洲国产高清在线观看视频| 亚洲国产一二三| 色婷婷综合久久| 亚洲欧美一区二区三区极速播放 | 欧美日韩视频专区在线播放| 国产精品视频第一区| 男女男精品视频| 日韩欧美视频在线| 国产欧美日韩视频在线观看| 久久66热re国产| 97久久超碰国产精品| 欧美理论在线播放| 欧美大胆一级视频| 日韩精品国产欧美| 欧美一级精品大片| 国产一区二区精品久久| 久久色在线观看| a在线播放不卡| 久久午夜色播影院免费高清| 日韩专区一卡二卡| 久久久久高清精品| 成人avav影音| 性做久久久久久免费观看欧美| 在线亚洲高清视频| 亚洲国产欧美一区二区三区丁香婷| 91日韩一区二区三区| 视频一区二区三区入口| 欧美一级理论片| 国产精品一区二区x88av| 欧美激情在线看| 99九九99九九九视频精品| 亚洲bt欧美bt精品777| 91精品国产综合久久久蜜臀粉嫩| 国产主播一区二区| 亚洲综合免费观看高清在线观看| 久草这里只有精品视频| 国产三级久久久| 色爱区综合激月婷婷| 亚洲综合色在线| 色婷婷精品大视频在线蜜桃视频| 久久午夜羞羞影院免费观看| 国产综合色精品一区二区三区| 国产精品无码永久免费888| 91在线观看成人| 成人手机电影网| 美女一区二区视频| 一区二区三区小说| 1024成人网色www| 欧美一区二区精品| 欧美日韩国产中文| 在线观看视频欧美| 成人黄色777网| 极品美女销魂一区二区三区| 一区二区免费看| 亚洲自拍欧美精品| 国产精品嫩草99a| 中文在线资源观看网站视频免费不卡| 欧美高清一级片在线| 99精品国产91久久久久久| 国产成人aaa| 岛国精品在线播放| 成人免费不卡视频| 91香蕉视频污在线| 日韩午夜av电影| 91啪亚洲精品| 日韩欧美的一区二区| 日韩一区二区在线观看视频 | 婷婷成人综合网| 亚洲一级二级在线| 视频一区二区欧美| 免费欧美在线视频| 久久成人免费电影| 国产一区日韩二区欧美三区| 久久精品国产精品亚洲综合| 蜜臀a∨国产成人精品| 奇米影视7777精品一区二区| 蜜臀99久久精品久久久久久软件| 日本中文字幕一区二区有限公司| 日韩国产欧美视频| 成人黄色小视频| 日韩美女久久久| 精品成人一区二区三区四区| 精品国产一区二区在线观看| 亚洲欧洲国产日韩| 国产精品你懂的在线欣赏| 91激情五月电影| 日韩亚洲欧美在线| 亚洲男人的天堂av| 国产精品888| 欧美午夜理伦三级在线观看| 欧美第一区第二区| 亚洲国产你懂的| 亚洲精品一区二区三区影院 | 欧美日韩国产另类一区| 亚洲永久精品大片| 久久综合五月天婷婷伊人| 亚洲一区二区三区四区五区中文| 麻豆精品在线播放| 欧美一级片在线| 性做久久久久久免费观看欧美| av在线不卡免费看| 日本一区二区三区四区在线视频| 免费看日韩a级影片| 精品久久国产老人久久综合| 自拍av一区二区三区| 欧美日韩在线播放| 92精品国产成人观看免费| 国产乱码精品一区二区三区忘忧草 | 久久久亚洲精华液精华液精华液| 欧美日韩激情在线| 欧美色欧美亚洲另类二区|