如何在DevOps中進行API生命周期管理?
引言
隨著DevOps理念在中國企業(yè)當(dāng)中的普及和發(fā)展,中國企業(yè)DevOps落地成熟度不斷提升,根據(jù)中國信通院的數(shù)據(jù)已有近6成企業(yè)向全生命周期管理邁進。而在研發(fā)全生命周期管理之中,API管理的地位愈發(fā)顯得重要。隨著API數(shù)量的大幅增長,也帶來了新的API管理需求。如何在DevOps工作流中進行API全生命周期管理,對項目研發(fā)來說具有重大意義。
一、DevOps中API管理困境
在實際的DevOps工作流中,API管理面臨著以下6大方面的困境:規(guī)范、協(xié)作、自動化質(zhì)量、迭代、自動化。

困境一:規(guī)范落地執(zhí)行難
因為團隊中的API文檔質(zhì)量參差不齊,導(dǎo)致規(guī)范很難落地執(zhí)行。原因在于公司有很多的研發(fā)項目和團隊,不同的團隊有不同的API管理習(xí)慣,尤其是常用的Swagger方式的管理,很難進行統(tǒng)一的平臺化管理。針對這個困境,可以通過統(tǒng)一的API管理平臺規(guī)范文檔的模板,引導(dǎo)編寫流程和習(xí)慣,也可以通過自動化文檔管理工具來簡化流程,提高管理效率。
困境二:崗位協(xié)作難、信息溝通效率低
在DevOps工具鏈中,每一個工具都會有不同的通知消息,導(dǎo)致重要信息淹沒在繁雜的通知中。其次是工作流程環(huán)節(jié)多、流程長,各崗位角色處理工作節(jié)奏不一,導(dǎo)致任務(wù)鏈上下游溝通效率低。針對這個困境,可以縮短流程環(huán)節(jié),多啟用自動化流程。同時制定精細(xì)化通知規(guī)則,根據(jù)優(yōu)先級提供差異化通知樣式。最后,再通過每日推送復(fù)盤消息,梳理當(dāng)日工作項和消息通知,防止遺漏。
困境三:自動化測試體系搭建門檻高
傳統(tǒng)的自動化接口測試腳本需要用Python來編寫,門檻高,成本高。又因純手工編寫,開發(fā)變動后還須對照文檔二次調(diào)整接口的所有腳本。另外,自動化測試前期投入時間多,準(zhǔn)備工作繁雜。針對這個困境,可以使用界面化的自動化測試工具,降低腳本編寫門檻。還可以通過一站式API全生命周期管理平臺,免去大量前期工作,提高自動化測試效率。
困境四:API生產(chǎn)質(zhì)量和在線異常的發(fā)現(xiàn)、跟蹤、解決流程過長
當(dāng)下,在后端的接口自測、前段的MOCK測試、冒煙測試、集成測試、異常監(jiān)控這5個環(huán)節(jié)中都會使用到不同的工具,于是產(chǎn)生了跨工具之間對接復(fù)雜、數(shù)據(jù)隔離,導(dǎo)致API生產(chǎn)質(zhì)量薄弱,以及大量重復(fù)工作。可以通過一體化的API管理工具來打通不同環(huán)節(jié)的工作流,提高研發(fā)質(zhì)量和效能。
困境五:接口文檔無法跟蹤迭代版本,回溯排查難度大
傳統(tǒng)的接口管理工具如Swagger沒有接口修改記錄,缺少版本管理,無法通過日志定位問題,無法進行回滾和歷史對比。另外團隊也缺少接口迭代計劃,導(dǎo)致開發(fā)量和影響面分析都難以評估。接口文檔作為研發(fā)項目的重要資產(chǎn),應(yīng)該對其變更進行盤點,包括提供接口文檔的歷史記錄。可以通過一站式API全生命周期管理工具,提供項目級的接口版本管理和接口迭代計劃,輸出更加優(yōu)質(zhì)的接口文檔,推進DevOps工作流的效率提升。
困境六:DevOps工作流使用工具多

DevOps作為宏觀層面的研發(fā)管理思路,目前并沒有大而全的工具,因此帶來企業(yè)內(nèi)部工具越積越多,數(shù)據(jù)流通阻滯,另外,傳統(tǒng)接口管理工具功能也很單一。針對這個問題,可以使用一體化的API全生命周期管理工具來實現(xiàn)與接口相關(guān)的所有問題,減少對接的工具數(shù)量。
二、DevOps中API管理需要什么
基于前文對DevOps中API管理存在的問題,可以梳理出企業(yè)R&D需要以下六個方面:
規(guī)范化:一個可配置規(guī)范、可自動根據(jù)規(guī)范生成 API 文檔的 API 規(guī)范工具
高協(xié)作:一個接口相關(guān)狀態(tài)自動流轉(zhuǎn)、精準(zhǔn)通知信息的 API 協(xié)作工具
自動化:一個低門檻、智能錄入數(shù)據(jù)的 API 自動化測試工具
高質(zhì)量:一個一站式接口全流程質(zhì)量管理的 API 測試工具
迭代快:一個提供從項目級迭代計劃,版本管控,到接口級歷史記錄的 API 管理工具
工具鏈:一個接口全生命周期且多種對外集成方式的 DevOps 工具

對于滿足這些條件的工具,我們定義為API全生命周期智能協(xié)作平臺。在這個一體化平臺上,可以從API的開發(fā)態(tài)到發(fā)布態(tài)到運營態(tài),對API進行全生命周期管理。
平臺地址:https://www.eolink.com/apikit?utm_source=mo04sssjsh
支持微信掃碼登陸?

Eolink
API 全生命周期管理協(xié)作平臺
公眾號
三、API全生命周期管理如何接入DevOps
根據(jù)經(jīng)典的DevOps流程圖,我們從計劃、開發(fā)、構(gòu)建、測試、部署、發(fā)布、運維跟監(jiān)控環(huán)節(jié),探討API管理工具對接。

3.1 計劃:制定API文檔規(guī)范,搭建層次清晰的API倉庫
根據(jù)公司組織架構(gòu)和系統(tǒng)服務(wù)的分布,組成一個層次清晰的接口倉庫。
統(tǒng)一規(guī)范制定,把不同團隊的規(guī)范統(tǒng)一制定成公司的規(guī)范。
整理公共材料,把歷史文檔快捷地導(dǎo)入到 API 倉庫里,以及把一些可復(fù)用的材料例如經(jīng)常用的數(shù)據(jù)結(jié)構(gòu),API 文檔的模板、常用字段描述,都可以存儲到 API 倉庫,以便于在開發(fā)階段創(chuàng)建新的 API 文檔。

3.2 開發(fā):基于代碼倉庫搭建自動化流程,解決前后端調(diào)試和溝通問題
基于代碼倉庫或swagger或本地研發(fā)工具,快速自動生成API文檔并快速調(diào)試,調(diào)試沒問題后再自動生成 MOCK API和批量接口用例,可以在線分享給前端和測試,文檔支持在線評論。最終還可以基于這個 API 文檔生成業(yè)務(wù)代碼,協(xié)助開發(fā)。

3.3 構(gòu)建:自動打接口版本及自動冒煙測試,支持回滾和減輕測試工程師壓力
構(gòu)建階段可以基于 CI 觸發(fā)器自動構(gòu)建接口版本,方便后續(xù)版本回滾,還可基于接口版本做批量測試,以及做版本差異化的對比。
這兩個步驟可以讓測試對任務(wù)進行評估,更好地去減輕測試的壓力。目前接口上自動化能測出來的問題,可預(yù)先通過API測試出來。

3.4 測試:推進自動化測試,降低用例編寫成本
在測試階段我們推薦自動化測試,一體化API全生命周期管理工具可以去快速同步前面開發(fā)階段生成的測試用例,然后對這些測試用例進行流程編排,組成自動化測試用例。也可以基于 API 網(wǎng)關(guān)的監(jiān)控日志做流量回放,自動生成自動化測試用例,識別增量接口并跑模糊測試??梢越M成場景案例,做回歸測試。模糊測試跟回測試的測試結(jié)果發(fā)送測試報告,給到對應(yīng)的測試人員。

3.5 部署:快速測試核心流程,排除環(huán)境差異問題
部署之后可以通過 CD 觸發(fā)器對環(huán)境進行預(yù)測,試跑核心的測試場景,生成對應(yīng)的測試報告。可以通過多環(huán)境的測試結(jié)果進行對比,排查環(huán)境差異的問題,也可以在部署好之后進行壓力測試。(注:目前Eolink Apikit壓力測試功能將在年中上線,敬請期待)

3.6 發(fā)布:確保對外訪問暢通和安全
在發(fā)布階段,主要對接 API 網(wǎng)關(guān),讓系統(tǒng)可以正常對外訪問,開放接口能力。

3.7 運維:保障服務(wù)持續(xù)穩(wěn)定和安全
在運維階段依然是使用 API 網(wǎng)關(guān),做流量控制、負(fù)載均衡或服務(wù)治理。在接口開放上可以去做Open API 調(diào)用管控,在線試用跟鑒權(quán)。在接口交易上可以去做接口托管、轉(zhuǎn)發(fā)跟計算計費以及訂單管理。

3.8 監(jiān)控:實時觀察接口運行情況,及時異常告警
可以設(shè)置標(biāo)準(zhǔn)的接口監(jiān)控指標(biāo),做更加靈活的監(jiān)控配置,并對告警進行規(guī)則配置預(yù)設(shè),當(dāng)滿足這些告警的預(yù)設(shè)條件時就會發(fā)送消息通知,包括手機短信、主流的 IM 工具,以及webhook。

在消息通知方面,我們認(rèn)為不僅僅需要DevOps主流程的對接,而是要保證整個DevOps信息流的有效和及時傳遞,因此需要對 API 文檔的變更、測試報告、監(jiān)控告警,進行智能分發(fā)。例如進行分級推送、智能歸納、高風(fēng)險標(biāo)記等。

【重磅】DevOps工作流對接API全生命周期管理全流程圖
關(guān)注Eolink官方公眾號獲取該流程圖高清版和解決方案
Eolink
API 全生命周期管理協(xié)作平臺
公眾號
四、不同規(guī)模團隊如何落地實施
4.1 大規(guī)模團隊:全DevOps周期的接口自動化
對于大規(guī)模團隊來說,推薦基于DevOps全周期的接口自動化方案,需部署Eolink Apikit私有云版本。在這個方案中,可以把Swagger的URL自動同步到Eolink Apikit,自動生成文檔,進一步基于文檔生成業(yè)務(wù)代碼,然后發(fā)送到代碼倉庫,再去觸發(fā)CI流水線,給文檔打版本,做模糊測試,并把報告發(fā)送給對應(yīng)的人員。接下來在CD環(huán)節(jié)部署好服務(wù)之后,可以對環(huán)境進行預(yù)測試,并根據(jù)需求做壓力測試,并把測試報告發(fā)送給對應(yīng)的相關(guān)人員。除了CICD,還可以集成Eolink的網(wǎng)關(guān)產(chǎn)品,對API進行運維管理。
4.2 小規(guī)模團隊:高性價比的接口自動化
對于小規(guī)模團隊來說,性價比更高的SaaS企業(yè)版,可以使用插件生成API文檔上傳Eolink Apikit,并進行測試,自動生成測試用例。
目前該高性價比解決方案,已覆蓋從設(shè)計、開發(fā)到構(gòu)建、發(fā)布、部署的環(huán)節(jié),對運維、監(jiān)控、壓力測試等環(huán)節(jié)尚且缺失,對于核心的API全自動化的管理流程已完全足夠。
總結(jié)
本文提出使用一體化的API管理平臺在DevOps工作流中對API進行全生命周期管理,解決過去多個工具之間數(shù)據(jù)隔離、流程阻滯的問題。
API全生命周期管理平臺Eolink Apikit是結(jié)合 API 設(shè)計、文檔管理、自動化測試、監(jiān)控、研發(fā)管理和團隊協(xié)作的一站式 API 研發(fā)協(xié)作平臺,是API研發(fā)管理最佳實踐產(chǎn)品,可以幫助個人開發(fā)者到跨國企業(yè)用戶,快速、規(guī)范地對API進行全生命周期管理,提高研發(fā)效能。
平臺地址:https://www.eolink.com/apikit?utm_source=mo04sssjsh
?支持微信掃碼登陸