提到API,從事技術(shù)的同學(xué)都十分熟悉,無(wú)論是在操作系統上開(kāi)發(fā)軟件,還是打造分布式網(wǎng)絡(luò )服務(wù),都離不開(kāi)對各種API的調用。
提到API,從事技術(shù)的同學(xué)都十分熟悉,無(wú)論是在操作系統上開(kāi)發(fā)軟件,還是打造分布式網(wǎng)絡(luò )服務(wù),都離不開(kāi)對各種API的調用。對應用程序開(kāi)發(fā)人員來(lái)說(shuō),都會(huì )通過(guò)各種編程語(yǔ)言、系統調用和各種類(lèi)庫、編程框架構建系統,為了提升開(kāi)發(fā)效率和統一性,就出現了各種各樣的API標準,例如POSIX。這些標準的實(shí)現保障了應用程序可以不做過(guò)多修改就能運行在各種軟硬件平臺上,大大促進(jìn)了整個(gè)IT生態(tài)的發(fā)展。
然而就云計算的API來(lái)看,當前并沒(méi)有類(lèi)似POSIX這樣的API標準,基本上各大廠(chǎng)商各自為政。當然,有一些業(yè)界主流標準例如OAS獲得多數云廠(chǎng)商的支持,但云廠(chǎng)商本身的API卻往往由于歷史原因、技術(shù)路線(xiàn)原因百花齊放,例如AWS的OpenAPI屬于RPC風(fēng)格,而Azure則是WebService風(fēng)格,GCP則是基于gRPC為主流。技術(shù)方面的論述很多,本文更想從客戶(hù)體驗、研發(fā)效能的角度來(lái)闡述OpenAPI對云計算整體競爭力的重要性。
如果將阿里云飛天操作系統與傳統操作系統類(lèi)比,那么它也是由內核層、接口層、操作界面、業(yè)務(wù)應用組成,計算、存儲、網(wǎng)絡(luò )等核心產(chǎn)品構成了內核,API層承擔內核的管控和數據通信,各式各樣的控制界面則相當于操作系統的Terminal/Windows/mac OS UI,基于云計算的各種行業(yè)應用則是跑在這個(gè)操作系統上的應用。
圖1 飛天操作系統
阿里云不同于傳統操作系統,OpenAPI自然也不同于其他業(yè)態(tài)的API體系,例如淘系、B2B的開(kāi)放平臺。業(yè)務(wù)開(kāi)放平臺輸出的是以業(yè)務(wù)數據為主的服務(wù),目的是為了整合商業(yè)生態(tài),而阿里云開(kāi)放平臺輸出的是云操作系統的管控能力、數據操作能力和其他企業(yè)級能力。前者重心是服務(wù)商業(yè)模型,而后者重心是服務(wù)技術(shù)底座。因此,云計算的OpenAPI體系要以服務(wù)技術(shù)開(kāi)發(fā)者和企業(yè)場(chǎng)景為中心,保障技術(shù)體系的健全穩定,對外緊密對接行業(yè)技術(shù)體系(例如開(kāi)源工具、三方廠(chǎng)商),對內促進(jìn)眾多云服務(wù)協(xié)同管理。
阿里云的OpenAPI有如下特點(diǎn):
上述特點(diǎn)決定了云上的OpenAPI相比于傳統開(kāi)放平臺,要側重技術(shù)能力的建設,同時(shí)又要兼顧客戶(hù)企業(yè)級場(chǎng)景,才能做好體驗工作。
圖2 OpenAPI用戶(hù)需求層次
那么云計算客戶(hù)在OpenAPI領(lǐng)域核心體驗是什么?以阿里云上某實(shí)際案例來(lái)分析,具體要點(diǎn)包括:
總結起來(lái)客戶(hù)的核心訴求是:客戶(hù)業(yè)務(wù)系統要能夠與云平臺高度自動(dòng)化地集成。不僅是客戶(hù),云廠(chǎng)商經(jīng)常強調彈性、自愈等概念,其背后也是高度自動(dòng)化的架構在支撐。
要做到高度自動(dòng)化地集成,對OpenAPI體系是全方位的要求。對比一下POSIX,一套標準的、完備的、質(zhì)量良好的API能夠促進(jìn)各操作系統之間的兼容性,確保上層應用的開(kāi)發(fā)移植成本最低。而對于云計算,這樣的規范應該在哪幾個(gè)方面來(lái)滿(mǎn)足客戶(hù)的需求呢,實(shí)踐中我們總結如下:
除此之外,云計算內部系統也需要通過(guò)API實(shí)現高度自動(dòng)化。一些典型的場(chǎng)景例如專(zhuān)有云部署、新region擴建、單產(chǎn)品擴容,如果不能夠自動(dòng)化部署,對公司整體人效是不利的,更重要的是實(shí)施時(shí)間會(huì )拉長(cháng),客戶(hù)體驗也會(huì )變差。
要解決上述問(wèn)題,主要難點(diǎn)在于如何統一標準、如何建立全面的配套平臺體系、如何衡量服務(wù)質(zhì)量、如何持續推動(dòng)服務(wù)達標以及如何考察客戶(hù)體驗。
Linux/UNIX世界中,有個(gè)著(zhù)名的說(shuō)法: 萬(wàn)物皆可文件化。那么云上的萬(wàn)物能否資源化呢?
阿里云對外的OpenAPI都是基于HTTP協(xié)議,RESTful規范有提出基于資源設計的理念。 而實(shí)際工作中,能堅持這樣的原則的API卻不多。經(jīng)常會(huì )碰到的疑問(wèn)是“什么樣的東西應該定義為資源?”“我的API沒(méi)有資源化設計不也工作的挺好?”“我設計的時(shí)候有資源概念,但是客戶(hù)沒(méi)這需求啊?”。
然而,客戶(hù)的困惑卻是真實(shí)存在的:
面對客戶(hù)的需求,我們需要回答幾個(gè)問(wèn)題:
對于云計算場(chǎng)景,如果沒(méi)有資源模型,內部研發(fā)效率也會(huì )受到影響。原因是企業(yè)客戶(hù)不同于個(gè)人客戶(hù),相對成熟的企業(yè)都對人、財、物、權、法的監管需求強烈,面對內部管理、盈利、監管約束等挑戰,一套成熟的IT治理體系對資源概念的依賴(lài)是極高的,如阿里云的RAM/ActionTrail/Config/RD/ResourceManager等。沒(méi)有資源模型,這些產(chǎn)品就要各自定義資源,分別找云產(chǎn)品溝通,實(shí)施落地進(jìn)度和質(zhì)量也不能保證一致。開(kāi)源軟件也一樣,例如Terraform就是面向資源的。甚至很多平臺服務(wù)如賬單,也需要資源的概念才能更好地管理。
圖3 資源生產(chǎn)者和消費者
如果能夠統一資源模型,就相當于客戶(hù)和阿里云在有一套面向對象的Java類(lèi)或者數據庫表,凡是依賴(lài)該資源模型的產(chǎn)品都將從中受益,理解更容易,溝通上保持一致性,研發(fā)上可以提供統一的技術(shù)方案提高效率。
所以,面向資源編程的API設計,對于客戶(hù)和云平臺自身都是非常重要的,如果前期不考慮,后期會(huì )付出更大的成本,必將影響阿里云整體服務(wù)質(zhì)量。
元數據是關(guān)于數據的數據,它描述的是數據組織、數據域及其關(guān)系的信息。元數據平臺并不是新鮮事物,比如在大數據領(lǐng)域就有很多應用。由于阿里云有數百個(gè)產(chǎn)品,上萬(wàn)個(gè)OpenAPI,所以資源的數量也必定是龐大的,這時(shí)候就有必要有一個(gè)統一的平臺來(lái)管理資源信息。而資源只是一種抽象,背后還需要依賴(lài) OpenAPI的元數據,兩者結合才能對外提供完整的服務(wù)。
那么統一OpenAPI/資源元數據能帶來(lái)哪些價(jià)值呢:
圖4 基于A(yíng)PI元數據無(wú)代碼自動(dòng)化生成
提升業(yè)務(wù)質(zhì)量持續保障:軟件研發(fā)有個(gè)痛點(diǎn)是云產(chǎn)品初次發(fā)布后,如果隨著(zhù)業(yè)務(wù)迭代,如何保障過(guò)往的功能正確性。以阿里云的RAM產(chǎn)品為例,如果我們能夠將資源元數據、API訪(fǎng)問(wèn)日志、RAM的Policy與云產(chǎn)品實(shí)際鑒權日志放在一起,通過(guò)對比元數據聲明內容與實(shí)際發(fā)生的動(dòng)作,就可以檢查云產(chǎn)品的鑒權行為是否符合預期。相比于人治,基于數據和代碼的自動(dòng)化平臺檢查機制會(huì )更高效、更準確。
更多的業(yè)務(wù)場(chǎng)景賦能:Azure有一個(gè)產(chǎn)品叫Resource Graph Explorer,它能夠按照資源維度管理平臺上所有的資源,跨地域也不是問(wèn)題,有點(diǎn)類(lèi)似于Windows的資源管理器。完善的元數據管理,將使得這類(lèi)產(chǎn)品的研發(fā)變得可能??赡苡腥藭?huì )有疑問(wèn):沒(méi)有元數據就不能做嗎?理論上可以,但是一定是事倍功半,因為它需要與各產(chǎn)品反復協(xié)調溝通,成本極高,而不是用一套平臺來(lái)承載著(zhù)標準化的生產(chǎn)流程,且不好復用,不可同日而語(yǔ)。
所以統一的阿里云OpenAPI/資源元數據管理,對內價(jià)值是許多圍繞資源的業(yè)務(wù)開(kāi)發(fā)都將變得更加輕松,甚至無(wú)代碼化,提升業(yè)務(wù)效能,對外客戶(hù)將能得到與內部一致的業(yè)務(wù)模型,提升用戶(hù)體驗,更加方便地集成。
云操作系統想服務(wù)好客戶(hù),經(jīng)過(guò)優(yōu)良設計的API是必需品,否則用戶(hù)很難快速高效地基于A(yíng)PI層來(lái)開(kāi)發(fā)和部署應用服務(wù),會(huì )對商業(yè)競爭力造成嚴重影響,一個(gè)各種理念能力都是頂級但卻難以管理的操作系統誰(shuí)愿意使用呢?
因此,OpenAPI不止是技術(shù)問(wèn)題,也是產(chǎn)品問(wèn)題,是產(chǎn)品體驗的重要組成部分,需要慎重對待。
那么OpenAPI的客戶(hù)體驗能不能被度量?阿里云開(kāi)放平臺剛開(kāi)始發(fā)力OpenAPI時(shí)面臨的最大問(wèn)題是:客戶(hù)和內部都有人吐槽阿里云API不好用,都是點(diǎn)狀問(wèn)題拋出和客戶(hù)需求驅動(dòng),沒(méi)有一個(gè)體系化的方法來(lái)衡量客戶(hù)體驗指標,且不能規?;鉀Q問(wèn)題。
阿里云的 OpenAPI數量1萬(wàn)多個(gè),點(diǎn)狀的、模糊的反饋對解決全局問(wèn)題沒(méi)有幫助,且用戶(hù)其實(shí)是對具體產(chǎn)品有概念,但針對OpenAPI概念性卻不強,調研主觀(guān)偏差更大。
阿里云的OpenAPI體驗是一個(gè)全鏈路問(wèn)題,如下圖:
圖5 典型OpenAPI用戶(hù)使用路徑
長(cháng)長(cháng)的鏈路,任何一個(gè)環(huán)節沒(méi)做好都有可能導致用戶(hù)體驗不好;而且反饋的信息也是五花八門(mén),難以抽取有效信息。因此有幾個(gè)核心問(wèn)題需要依次解決:
我們的做法是這樣的:
1 Step1 量化
通過(guò)上述動(dòng)作,我們能夠自動(dòng)化分析出OpenAPI用戶(hù)的主要痛點(diǎn),并建立數字化趨勢圖去跟蹤。
2 Step 2:治理
上述能力,都沉淀在內部管理平臺上,內部云產(chǎn)品可以一站式管理API及流程化參與API治理過(guò)程。
3 Step3 產(chǎn)品化
目標是收口外部用戶(hù)的產(chǎn)品體驗。以前OpenAPI的各項功能是分散割裂的,后續我們將所有與OpenAPI相關(guān)的功能集成正在一個(gè)產(chǎn)品中,即OpenAPI開(kāi)發(fā)者門(mén)戶(hù) ,除了通過(guò)集中的產(chǎn)品建設提升用戶(hù)體驗外,還針對使用鏈路增加了troubleshooting、搜索、codesample等模塊。
通過(guò)以上三步,我們整體OpenAPI體驗治理大圖如下:
圖6 用戶(hù)體驗管理閉環(huán)示意圖
通過(guò)這套體系運轉中發(fā)現的問(wèn)題,都會(huì )通過(guò)API管理平臺和API開(kāi)發(fā)者門(mén)戶(hù)的功能上不斷的完善,去逐步提升用戶(hù)體驗,從2020年的工單情況看,有比較明顯的下降。
阿里云是個(gè)龐大的分布式操作系統,OpenAPI相當于用戶(hù)層操作內核層的重要通道,保障它的穩定、功能、性能、體驗關(guān)系到客戶(hù)的核心體驗,關(guān)系到公司形象和生態(tài)拓展,也關(guān)系到內部產(chǎn)品質(zhì)量和研發(fā)效率。接入層必須做深、做厚、做強才能讓內外部客戶(hù)被服務(wù)好。從團隊兩年的實(shí)踐來(lái)看,數字化、體系化的做好基礎建設才能做好OpenAPI體驗。本文就云上OpenAPI的幾個(gè)重要概念進(jìn)行論述,希望能拋磚引玉,引起大家對OpenAPI體系價(jià)值的興趣和關(guān)注。
參考文獻:
https://apiacademy.co/2015/04/api-design-202-architectural-layers/
https://www.itread01.com/articles/1475911242.html
https://azure.microsoft.com/zh-cn/features/resource-graph/
https://maryamalshamsi98.wordpress.com/2014/05/21/linux-file-system-2/
原文鏈接:https://zhuanlan.51cto.com/art/202109/683898.htm
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站