一篇文章帶給你DevOps如何管理API?
引言
隨著DevOps理念在中國企業當中的普及和發展,中國企業DevOps落地成熟度不斷提升,根據中國信通院的數據已有近6成企業向全生命周期管理邁進。而在研發全生命周期管理之中,API管理的地位愈發顯得重要。隨著API數量的大幅增長,也帶來了新的API管理需求。如何在DevOps工作流中進行API全生命周期管理,對項目研發來說具有重大意義。
一、DevOps中API管理困境
在實際的DevOps工作流中,API管理面臨著以下6大方面的困境:規范、協作、自動化質量、迭代、自動化。
困境一:規范落地執行難
因為團隊中的API文檔質量參差不齊,導致規范很難落地執行。原因在于公司有很多的研發項目和團隊,不同的團隊有不同的API管理習慣,尤其是常用的Swagger方式的管理,很難進行統一的平臺化管理。針對這個困境,可以通過統一的API管理平臺規范文檔的模板,引導編寫流程和習慣,也可以通過自動化文檔管理工具來簡化流程,提高管理效率。
困境二:崗位協作難、信息溝通效率低
在DevOps工具鏈中,每一個工具都會有不同的通知消息,導致重要信息淹沒在繁雜的通知中。其次是工作流程環節多、流程長,各崗位角色處理工作節奏不一,導致任務鏈上下游溝通效率低。針對這個困境,可以縮短流程環節,多啟用自動化流程。同時制定精細化通知規則,根據優先級提供差異化通知樣式。最后,再通過每日推送復盤消息,梳理當日工作項和消息通知,防止遺漏。
困境三:自動化測試體系搭建門檻高
傳統的自動化接口測試腳本需要用Python來編寫,門檻高,成本高。又因純手工編寫,開發變動后還須對照文檔二次調整接口的所有腳本。另外,自動化測試前期投入時間多,準備工作繁雜。針對這個困境,可以使用界面化的自動化測試工具,降低腳本編寫門檻。還可以通過一站式API全生命周期管理平臺,免去大量前期工作,提高自動化測試效率。
困境四:API生產質量和在線異常的發現、跟蹤、解決流程過長
當下,在后端的接口自測、前段的MOCK測試、冒煙測試、集成測試、異常監控這5個環節中都會使用到不同的工具,于是產生了跨工具之間對接復雜、數據隔離,導致API生產質量薄弱,以及大量重復工作。可以通過一體化的API管理工具來打通不同環節的工作流,提高研發質量和效能。
困境五:接口文檔無法跟蹤迭代版本,回溯排查難度大
傳統的接口管理工具如Swagger沒有接口修改記錄,缺少版本管理,無法通過日志定位問題,無法進行回滾和歷史對比。另外團隊也缺少接口迭代計劃,導致開發量和影響面分析都難以評估。接口文檔作為研發項目的重要資產,應該對其變更進行盤點,包括提供接口文檔的歷史記錄。可以通過一站式API全生命周期管理工具,提供項目級的接口版本管理和接口迭代計劃,輸出更加優質的接口文檔,推進DevOps工作流的效率提升。
困境六:DevOps工作流使用工具多
DevOps作為宏觀層面的研發管理思路,目前并沒有大而全的工具,因此帶來企業內部工具越積越多,數據流通阻滯,另外,傳統接口管理工具功能也很單一。針對這個問題,可以使用一體化的API全生命周期管理工具來實現與接口相關的所有問題,減少對接的工具數量。
二、DevOps中API管理需要什么
基于前文對DevOps中API管理存在的問題,可以梳理出企業R&D需要以下六個方面:
- 規范化:一個可配置規范、可自動根據規范生成 API 文檔的 API 規范工具
- 高協作:一個接口相關狀態自動流轉、精準通知信息的 API 協作工具
- 自動化:一個低門檻、智能錄入數據的 API 自動化測試工具
- 高質量:一個一站式接口全流程質量管理的 API 測試工具
- 迭代快:一個提供從項目級迭代計劃,版本管控,到接口級歷史記錄的 API 管理工具
- 工具鏈:一個接口全生命周期且多種對外集成方式的 DevOps 工具
對于滿足這些條件的工具,我們定義為API全生命周期智能協作平臺。在這個一體化平臺上,可以從API的開發態到發布態到運營態,對API進行全生命周期管理。
平臺地址:https://www.eolink.com/apikit?utm_source=mo04sssjsh。
三、API全生命周期管理如何接入DevOps
根據經典的DevOps流程圖,我們從計劃、開發、構建、測試、部署、發布、運維跟監控環節,探討API管理工具對接。
1、計劃:制定API文檔規范,搭建層次清晰的API倉庫
- 根據公司組織架構和系統服務的分布,組成一個層次清晰的接口倉庫。
- 統一規范制定,把不同團隊的規范統一制定成公司的規范。
- 整理公共材料,把歷史文檔快捷地導入到 API 倉庫里,以及把一些可復用的材料例如經常用的數據結構,API 文檔的模板、常用字段描述,都可以存儲到 API 倉庫,以便于在開發階段創建新的 API 文檔。
2、開發:基于代碼倉庫搭建自動化流程,解決前后端調試和溝通問題
基于代碼倉庫或swagger或本地研發工具,快速自動生成API文檔并快速調試,調試沒問題后再自動生成 MOCK API和批量接口用例,可以在線分享給前端和測試,文檔支持在線評論。最終還可以基于這個 API 文檔生成業務代碼,協助開發。
3、構建:自動打接口版本及自動冒煙測試,支持回滾和減輕測試工程師壓力
構建階段可以基于 CI 觸發器自動構建接口版本,方便后續版本回滾,還可基于接口版本做批量測試,以及做版本差異化的對比。
這兩個步驟可以讓測試對任務進行評估,更好地去減輕測試的壓力。目前接口上自動化能測出來的問題,可預先通過API測試出來。
4、測試:推進自動化測試,降低用例編寫成本
在測試階段我們推薦自動化測試,一體化API全生命周期管理工具可以去快速同步前面開發階段生成的測試用例,然后對這些測試用例進行流程編排,組成自動化測試用例。也可以基于 API 網關的監控日志做流量回放,自動生成自動化測試用例,識別增量接口并跑模糊測試。可以組成場景案例,做回歸測試。模糊測試跟回測試的測試結果發送測試報告,給到對應的測試人員。
5、部署:快速測試核心流程,排除環境差異問題
部署之后可以通過 CD 觸發器對環境進行預測,試跑核心的測試場景,生成對應的測試報告。可以通過多環境的測試結果進行對比,排查環境差異的問題,也可以在部署好之后進行壓力測試。(注:目前Eolink Apikit壓力測試功能將在年中上線,敬請期待)
6、發布:確保對外訪問暢通和安全
在發布階段,主要對接 API 網關,讓系統可以正常對外訪問,開放接口能力。
7、運維:保障服務持續穩定和安全
在運維階段依然是使用 API 網關,做流量控制、負載均衡或服務治理。在接口開放上可以去做Open API 調用管控,在線試用跟鑒權。在接口交易上可以去做接口托管、轉發跟計算計費以及訂單管理。
8、監控:實時觀察接口運行情況,及時異常告警
可以設置標準的接口監控指標,做更加靈活的監控配置,并對告警進行規則配置預設,當滿足這些告警的預設條件時就會發送消息通知,包括手機短信、主流的 IM 工具,以及webhook。
在消息通知方面,我們認為不僅僅需要DevOps主流程的對接,而是要保證整個DevOps信息流的有效和及時傳遞,因此需要對 API 文檔的變更、測試報告、監控告警,進行智能分發。例如進行分級推送、智能歸納、高風險標記等。
【重磅】DevOps工作流對接API全生命周期管理全流程圖
四、不同規模團隊如何落地實施
1、大規模團隊:全DevOps周期的接口自動化
對于大規模團隊來說,推薦基于DevOps全周期的接口自動化方案,需部署Eolink Apikit私有云版本。在這個方案中,可以把Swagger的URL自動同步到Eolink Apikit,自動生成文檔,進一步基于文檔生成業務代碼,然后發送到代碼倉庫,再去觸發CI流水線,給文檔打版本,做模糊測試,并把報告發送給對應的人員。接下來在CD環節部署好服務之后,可以對環境進行預測試,并根據需求做壓力測試,并把測試報告發送給對應的相關人員。除了CICD,還可以集成Eolink的網關產品,對API進行運維管理。
2、小規模團隊:高性價比的接口自動化
對于小規模團隊來說,性價比更高的SaaS企業版,可以使用插件生成API文檔上傳Eolink Apikit,并進行測試,自動生成測試用例。
目前該高性價比解決方案,已覆蓋從設計、開發到構建、發布、部署的環節,對運維、監控、壓力測試等環節尚且缺失,對于核心的API全自動化的管理流程已完全足夠。
總結
本文提出使用一體化的API管理平臺在DevOps工作流中對API進行全生命周期管理,解決過去多個工具之間數據隔離、流程阻滯的問題。
API全生命周期管理平臺Eolink Apikit是結合 API 設計、文檔管理、自動化測試、監控、研發管理和團隊協作的一站式 API 研發協作平臺,是API研發管理最佳實踐產品,可以幫助個人開發者到跨國企業用戶,快速、規范地對API進行全生命周期管理,提高研發效能。
平臺地址:https://www.eolink.com/apikit?utm_source=mo04sssjsh。