《A4-劉昊臻-AI與智能化API治理的探索實踐新.pdf》由會員分享,可在線閱讀,更多相關《A4-劉昊臻-AI與智能化API治理的探索實踐新.pdf(35頁珍藏版)》請在三個皮匠報告上搜索。
1、API 全生命周期治理實踐與 AI 結合的探索劉昊臻Eolink 創始人&CEO,API First 布道師劉昊臻連續技術創業者,API First的堅定支持者,致力于通過通過API發掘數據和服務的潛力。2017年創辦的 Eolink 是目前國內最大的 API 管理 SaaS 平臺。Linux Tars、NextArch 基金會成員廣東工業大學 計算機學院特聘教師TGO鯤鵬會成員Eolink 創始人&CEO目錄CONTENTS01 API 治理為業務帶來的價值02 API 治理的體系介紹03 API 治理的實踐經驗04 首個 API+AI 的產品化探索API 治理為業務帶來的價值API 在企業
2、中扮演的角色越來越重要API 數量DevOps、前后端分離的研發模式帶動 API 數量大幅增長;API 開放微服務架構改造帶來大量 API 管理及開放需求;API 安全數據安全、服務治理等訴求推動 API 管理成為 IT 系統的基礎設施;API 經濟開放式企業、開放銀行等行業領先實踐推動 API 經濟興起。2019年人工智能API開放平臺市場規模達104.1億且正處于高速增長期,預計到2024年市場規模有望達到579.9億。艾瑞咨詢 2020年中國人工智能API經濟白皮書API經濟全球市場規模超過2.2萬億美元。開發API項目的公司數量預計將保持100的同比增長。IBM Unveils Mat
3、chmaking Technology to Navigate API EconomyAPI生命周期管理市場2019年同比增長36,超過17億美元,其成為應用程序基礎結構和中間件市場中增長最快的部分。Gartner Magic Quadrant for Full Life Cycle API Management10%自行開發代碼、API70%開源代碼20%第三方APIAPI DevOps 流程的目的是提高服務的提供效率小規模團隊:提升API研發、測試的效率代碼變更接口調試生成Mock API自動生成用例文檔分享文檔評論生成業務代碼CI觸發器創建接口版本單元測試版本差異對比預測試評估流程編排流
4、量回放編輯自動化測試用例場景管理接口時序捕捉回歸測試報告推送報告推送增量流程測試變更通知開發構建、單元測試場景測試API 文檔大規模團隊:貫穿從開發到上線的 API 治理規范制定數據源同步API倉庫搭建權限管理同步賬號體系模板編輯代碼變更接口調試生成Mock API自動生成用例文檔分享文檔評論生成業務代碼文檔編輯CI觸發器創建接口版本模糊測試版本差異對比預測試評估流程編排流量回放編輯自動化測試用例場景管理接口時序捕捉回歸測試報告推送報告推送增量流程測試CD觸發器環境預測試壓力測試環境測試報告對比配置網關服務發現服務治理負載均衡動態路由安全管控API監控配置接口實時運行監控接口撥測接口安全監控監
5、控告警配置觸發告警消息消息智能分發變更通知報告推送其他消息通知分級推送智能歸納高風險標記設計開發構建、單元測試場景測試發布運維監控協作API 治理的體系介紹API 治理要解決的4大核心問題API 作為一種獨特的資源,是否可以,或如何商業化?API 作為核心的業務中間層,如何提升質量和安全性?API 貫穿開發測試運維等多個環節,如何提升迭代效率?API 作為一種核心的數字資產,如何有效管理并提升可觀測性?從設計到發布,完整的 API 全生命周期治理體系API DevOps 工作流結合自動生成接口文檔快速開發調試前端Mock開發API分享與評論業務代碼生成接口版本管理批量接口測試測試報告迭代計劃自
6、動生成測試用例集成測試回歸測試測試報告接口部署服務監控多環境預測試壓力測試接口規范設計接口模板制定接口倉庫搭建流量控制接口開放接口交易協議轉換服務管理動態路由身份鑒權運行監控資源監控定時撥測變更實時通知每日變更報告監控通知測試報告推送文檔分享把API全生命周期和DevOps進行結合,得到如圖所示的工作流,API每個環節都有對應的工作項,并不斷推動API以更易用、更規范、更安全的方向發展。API 治理的實踐經驗API 治理是一個跨團隊、長流程、深需求的挑戰一般我們會按照API的生命周期劃分成多個階段,找到各個階段中目前存在的問題并通過工具來解決。Eolink 整理的 API 治理成熟度模型我們將
7、過去幾年在客戶中實踐的經驗整理成了一個API治理成熟度的模型,我們可以根據這個模型中的三層次,六階段來分別判斷,目前團隊內部對于API的成熟度處在哪一個級別?以及可能存在什么問題?;谖臋n與測試驅動,并聯動前后端測試團隊,持續管理API資產并且提升API的研發效能。規范管理、測試所有 API無論使用什么語言開發,無論是 HTTPS、Websocket、TCP、UDP 等協議,還是 Restful、SOAP、WebService 等規范,Eolink Apikit 都可以統一規范地管理起來,并提供強大的文檔管理、協作、測試、分享功能。聯動前端、后端與測試人員,構建敏捷團隊在同一平臺內完成 API
8、 的研發管理、對接、測試、自動化測試等工作。API文檔變化后可以直接反映在測試頁面中,并且通過界面操作即可實現 API 自動化測試,真正快速、低成本實現自動化測試。通過與其他系統對接,強化 DevOps 能力提供全面的 Open API 以及 Webhook 接口,能夠快速對接到已有的 DevOps 流程中,或者與企業微信、釘釘等協作工具對接。API的自動化測試逐漸加強并集成到流水線中,實現隨時測試以及持續測試。低代碼,人人皆可做自動化測試Eolink Apikit 提供了易用、強大的 API 自動化測試功能,測試人員無需編寫代碼,在界面上可以直接導入 API 文檔信息生成測試用例、設置 AP
9、I 之間的參數關聯、對參數進行數據處理等,真正實現人人皆可做自動化測試。提高 90%測試效率并提升產品質量通過無人值守的API自動化測試來代替人工進行項目大范圍回歸測試,以往需要一個團隊一周時間完成的回歸測試工作,現在只需要10分鐘即可完成,并且系統還會提供非常詳細的測試報告來排查異常。數據驅動、定時測試、持續測試支持通過數據驅動,在平臺內部管理測試數據以及測試流程。測試用例可以定時觸發或者通過 Open API 觸發,比如每次代碼倉庫更新都能觸發相應系統或者模塊的測試工作并且得到精細的測試報告。打通API開發與上線環節,實現快速發布并通過網關保護API流量,提升API的性能,安全和穩定性通過
10、API網關統一維護對外發布的APIAPI時刻暴露在公網的風險環境中,需要通過網關維護API的接入權限,對所有請求進行身份認證、數據處理,并且降低對后端服務的壓力,對高峰流量進行負載分流等。將研發、測試、運維流程打通,實現API敏捷發布將API管理平臺與API網關打通,方便測試通過的API快速發布到API網關,并且自動配制好各類上下游信息。提高API可觀測性,了解API運行情況與風險由API網關統計所有API的訪問情況,了解熱門、冷門、異常API的運行情況并且及時發現異常告警。結合API監控、鏈路追蹤等,及時發現線上故障并告警,增強API的可觀測性。實時內網訪問監控,自定義告警與通知規則API
11、網關會記錄每一次請求狀態,支持自定義告警與通知規則,當 API 出現異常時即可根據告警規則發送告警信息。并且能夠將訪問日志同步到Prometheus或者Graphite平臺中進行分析。多點網絡監控,模擬真實用戶監控 API 服務狀態自由根據業務部署網絡監控節點,定時模擬真實用戶監控 API 服務狀態,并且自動判斷網絡連通情況、返回數據格式與內容,如果出現局部地區網絡異?;蛘叻誂PI異常,會記錄異常信息便于排查并及時告警。豐富直觀的監控統計報表,動態展現 API 狀態內網 API 監控支持根據服務、API分別統計請求時間、正確率、各狀態碼分布、調用次數、異常次數、異常時長等,外網監控支持統計A
12、PI響應性能、正確率、異常次數、異常時長、異常區域、異常原因分析等。集團接口倉庫A公司B公司標品研發部客制項目部C產品項目D產品項目用戶中心接口營銷中心接口商品中心接口標準規范參考A 團隊規范B 團隊規范C 團隊規范統一公司規范歷史數據可復用資源數據結構 文檔模板 字段描述統一規范制定公共材料整理接口倉庫搭建API倉庫設計和管理 在設計階段,制定接口的文檔規范,并且建立一個層次清晰的接口倉庫,方便后續的管理,測試和發布工作。一般來說,會根據產品應用和服務等級別對API進行分組管理,如果公司更大一些,可能還會在此基礎上有部門子公司等組織結構的層級。然后會制定一系列的API開發規范,比如不同的項目
13、可能存在不一樣的開發規范,但在同一個項目內或者一個服務內的API應該是盡可能保持設計統計,方便后續的對接和維護。同時,為了方便管理,一般也會通過Eolink Apikit將分布在不同工具中的零散的API文檔、測試用例、數據結構等內容管理起來,減少后續溝通過程中的信息不對稱。開發自動生成批量測試用例自動生成Mock APIMOCKTEST在線評論快速調試在線分享接口文檔生成開發階段,一般會基于代碼倉庫來搭建自動化的流程,解決前后端接口開發和調試的問題。比如從代碼注解里面動態生成接口文檔,或者是從接口文檔反向生成代碼。當有了一篇文檔就可以設計或者是生成一系列的單元測試用例和mock api,這個時
14、候,前后端和測試團隊實際上已經開始異步的協作,大家都圍繞著API文檔來工作。因此就會出現API文檔在團隊內部分享的需求,當API的設計有疑問或者在測試過程中發現缺陷等問題時,也可以通過評論等方式對API標注。版本回滾CI 觸發器CI測試前評估批量測試發送測試報告版本差異對比Ver自動構建接口版本構建在構建階段,代碼會上傳到倉庫,然后觸發Apikit平臺,對整個項目進行快照,也就是創建一個版本。版本管理的作用非常大,我們經常需要對比不同版本之間的接口差距,或者是對某個版本的接口進行回歸測試。如果發現接口的設計有問題,還可能需要進行回滾。發送測試報告Auto Case整理自動化測試用例接口時序捕捉
15、流量回放流程編排同步用例Ver識別版本增量接口場景案例整理模糊測試回歸測試測試進入到了自動化測試階段,測試團隊在 Eolink Apikit 中不斷地根據測試場景來設計自動化用例,將多個接口串聯成測試流程,并且在平臺內管理好測試的數據,這樣當版本提交時就可以觸發對應的自動化測試,并且把報告發送到指定的位置,這整個流程下來就把接口的開發與測試給關聯了起來,讓測試可以隨時進行。發布API管理API 網關提供開放API并管理訪問安全穩定性保障通過API商業化推送API配置開發環境開發/測試/灰度/生產環境 通過將API管理和網關進行結合,可以把API配置快速推送到不同環境的網關,減少因為導入導出配置
16、或人工操作失誤等原因帶來的發布問題。實際上一般在網關還會做最終的發布確認,或者是接入內部的開發平臺來進行發布前的審批。后續網關會對API進行線上生命周期管理,比如對API進行負載均衡,用戶鑒權,攻擊防護等工作。Eolink 對 API 治理的需求點總結API 開源生態的積極建設者Postcat+Apinto,覆蓋開發測試與運維場景P面向未來的下一代 API 開發工具:開源、AI、插件架構Postcat定位面向未來的下一代API開發工具,可以通過第三方插件和現有的產品結合或者增強Postcat的功能來實現無限的拓展性。接下來會逐步結合AI的能力,未來期望讓API的設計,開發和測試在postcat
17、上面實現全智能化。A基于Go,全自研的開源、多集群、超高性能 API 網關Apinto的性能非常優秀,在一臺八核8g的普通服務器上,轉發性能接近7W QPS,比Nginx高100%,比kong高70%,并且在高并發的情況下,還擁有更低的延遲和錯誤率。Apinto還自帶了UI的控制臺,讓整個部署使用和維護的門檻都降到最低。采用了和postcat類似的插件架構,這意味著產品里幾乎所有功能都可以通過插件的方式來擴展,無論是進行二次開發,還是集成到公司內部,都會更加方便。首個API+AI的產品化探索自然語言描述需求,AI 生成 API 文檔、API 代碼嘗試結合AI,使用自然語言描述需求并生成對應的
18、API 文檔平臺可二次編輯生成好的API文檔并保存平臺根據生成好的 API文檔,生成上百種語言框架的 API 代碼API+AI 生成單元測試用例嘗試自研的智能算法,結合API+AI,分析API的含義和使用場景,分析API的單元測試用例,并生成對應的測試數據支持批量設置斷言,可自動檢查單元測試的通過情況一鍵回歸測試,并可通過 API 觸發回歸測試API+AI 生成自動化測試流程嘗試自研的智能算法,結合AI,分析API的分組、順序、數據關聯等信息,生成有向圖根據有向圖自動推測可能的測試流程API+AI 目前依然有許多不足,但未來可期不足改進方向AI 單純靠 API 文檔,無法完全理解業務的場景,導致生成出來的API單元測試用例覆蓋不全。同上原因,AI 生成的測試流程與實際想要生成的依然有較大的偏差,正確率目前僅30%左右,依然需要一些人力后期修正。調用在線的大模型會有數據合規的風險,雖然測試用例的數據并不敏感,但不同行業的保密要求不一樣,甚至有些無法連接外網。結合生產環境的用戶流量進行分析,生成更可靠的測試用例。訓練行業級別的,規模小一點的模型,僅用于特定場景。目標預計第四季度正式發布功能會逐步同步到開源產品投資機構Eolink領先的 API 全生命周期解決方案供應商為全球超過 10 萬家企業提供專業 API 相關服務的經驗