圖 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久久,又粗又大又黄又硬又爽毛片
午夜影院在线观看欧美| 精品久久国产字幕高潮| 91亚洲精品久久久蜜桃| 精品国产一区久久| 激情丁香综合五月| 精品国精品国产尤物美女| 秋霞电影网一区二区| 欧美日韩精品一区二区| 丝袜诱惑制服诱惑色一区在线观看| 色综合一个色综合亚洲| 亚洲夂夂婷婷色拍ww47| 欧美猛男gaygay网站| 人妖欧美一区二区| 久久伊人蜜桃av一区二区| 成人av在线网| 亚洲国产毛片aaaaa无费看| 91麻豆精品国产91久久久资源速度| 日本vs亚洲vs韩国一区三区二区| 久久99精品久久久| 伊人夜夜躁av伊人久久| 日韩欧美亚洲一区二区| 91麻豆123| 国产精品一区二区x88av| 亚洲综合成人网| 精品国产髙清在线看国产毛片| 国产99精品国产| 亚洲制服欧美中文字幕中文字幕| 日韩欧美电影一区| 色婷婷狠狠综合| 精品一区二区三区久久久| 亚洲在线观看免费| 亚洲丝袜另类动漫二区| 久久夜色精品国产噜噜av| 欧美日韩精品一区二区天天拍小说 | 亚洲成av人综合在线观看| 日韩欧美一二区| 成人黄色a**站在线观看| 在线精品视频小说1| 成人午夜大片免费观看| 亚洲午夜三级在线| 国产精品色噜噜| 欧美成人乱码一区二区三区| 国产一区二区福利| 亚洲高清免费视频| 中日韩免费视频中文字幕| 精品成人在线观看| 欧美日韩国产欧美日美国产精品| a级精品国产片在线观看| 免费亚洲电影在线| 性做久久久久久| 亚洲国产aⅴ天堂久久| 中文字幕在线一区免费| 国产午夜精品福利| 国产亚洲欧美中文| 欧美国产精品v| 国产精品国产三级国产有无不卡| 日本一区二区在线不卡| 国产日本一区二区| 国产日韩av一区二区| 久久免费视频色| 久久久电影一区二区三区| 欧美成人精精品一区二区频| 欧美一区三区四区| 欧美成人精品二区三区99精品| 日韩欧美亚洲另类制服综合在线| 欧美一区二区久久久| 欧美大片在线观看一区| 久久人人爽爽爽人久久久| 久久精品男人的天堂| 亚洲欧洲99久久| 欧美一卡二卡三卡四卡| 中文成人综合网| 免费不卡在线视频| 国内外成人在线视频| 91亚洲精品久久久蜜桃| 精品国产伦一区二区三区观看体验 | 91精品国产综合久久久久久漫画 | 久久久久久久久久久电影| 国产亚洲精品7777| 亚洲精品va在线观看| 日韩精品一二三四| 成人av在线资源网站| 欧美男人的天堂一二区| 久久久高清一区二区三区| 一区二区免费看| 久久99精品久久只有精品| va亚洲va日韩不卡在线观看| 欧美精品成人一区二区三区四区| 久久久噜噜噜久久人人看 | 亚洲第一搞黄网站| 国产在线精品一区二区不卡了| 97成人超碰视| 久久综合九色综合97婷婷| 成人avav影音| 国产激情视频一区二区在线观看| 日本韩国欧美三级| 国产亚洲美州欧州综合国| 日韩精品久久理论片| 日韩精品中文字幕在线一区| 亚洲三级电影网站| 亚洲视频免费观看| 欧美高清精品3d| 日韩女优毛片在线| 日韩一级黄色片| 韩国女主播一区| 国产99精品视频| 爽好多水快深点欧美视频| 一区二区欧美在线观看| 欧美一区二区三区小说| 香蕉成人伊视频在线观看| 毛片av一区二区| 欧美电影免费观看高清完整版在 | 黑人巨大精品欧美一区| fc2成人免费人成在线观看播放| 精品国产乱码久久久久久蜜臀| 日韩精品久久久久久| 欧美视频三区在线播放| 一区二区视频免费在线观看| 国产日韩欧美精品电影三级在线| 国产99久久久国产精品免费看| 国产一区二区三区免费| 日本中文字幕一区二区视频| 国产米奇在线777精品观看| 久久se精品一区精品二区| 成人一区在线观看| 91丨九色丨蝌蚪丨老版| 韩国欧美一区二区| av毛片久久久久**hd| 色久优优欧美色久优优| 亚洲女同ⅹxx女同tv| 伊人一区二区三区| 中文字幕不卡在线观看| 欧美三级在线视频| 久久综合中文字幕| 亚洲欧洲99久久| 国产美女视频91| 一区二区三区在线免费| 久久综合久久综合九色| 综合欧美亚洲日本| 精品一区免费av| 欧美高清激情brazzers| 91精品福利视频| 久久精品国产第一区二区三区| 高清日韩电视剧大全免费| 久久久久亚洲蜜桃| 久久精品欧美日韩精品| 91色|porny| 久久99久久99| 亚洲国产你懂的| 精品剧情在线观看| 国产一区二区中文字幕| 91精品国产综合久久精品app| 亚洲综合激情网| 欧美日本在线视频| 精品一区二区影视| 精品国产在天天线2019| 伊人开心综合网| 91丨九色丨蝌蚪丨老版| 18欧美乱大交hd1984| 欧美一卡2卡3卡4卡| 欧美午夜寂寞影院| 亚洲成人免费观看| 欧美成人一区二区三区| 欧美精彩视频一区二区三区| 中文字幕一区二区在线观看| 中文无字幕一区二区三区| 国产亚洲欧美激情| 男人操女人的视频在线观看欧美| 一区二区三区精品久久久| 亚洲成av人片一区二区三区| 亚洲免费伊人电影| 最新中文字幕一区二区三区| 99久久国产综合精品色伊| 欧美国产日产图区| 免费成人在线观看视频| 国产乱妇无码大片在线观看| 久久美女艺术照精彩视频福利播放| 日本韩国欧美一区二区三区| 欧美另类videos死尸| 成人性色生活片免费看爆迷你毛片| 亚洲国产wwwccc36天堂| 亚洲猫色日本管| 亚洲一区二区美女| 午夜不卡av免费| 免费的国产精品| 国产精品一区三区| av一区二区三区| 欧美三日本三级三级在线播放| 色婷婷一区二区三区四区| 99国产精品久久久久| 色综合久久久久| 宅男噜噜噜66一区二区66| 欧美videofree性高清杂交| 91精品国产手机| 精品欧美黑人一区二区三区| 国产精品一区二区无线| 欧美婷婷六月丁香综合色| 91国偷自产一区二区开放时间 | gogo大胆日本视频一区| 美女看a上一区|