如何為自己的業(yè)務(wù)選擇API管理平臺
譯文【51CTO.com快譯】眾所周知,API是一種接口。您可以使用此類接口將業(yè)務(wù)功能和業(yè)務(wù)數(shù)據(jù)作為有價值的信息傳遞給客戶。例如:一家零售店可以通過API將其商品出售給足不出戶的客戶。顯然,如果您想發(fā)展自己的業(yè)務(wù),則需要接觸更多的客戶。API恰好就能夠滿足這一點。借助API,您可以與客戶、合作伙伴、甚至其他員工進(jìn)行虛擬的連接,進(jìn)而構(gòu)建出完整的供應(yīng)鏈。
可見,API的基本思想是:構(gòu)建一個向內(nèi)部和外部用戶公開的業(yè)務(wù)功能接口。而通過互聯(lián)網(wǎng)(或內(nèi)網(wǎng))公開服務(wù)的最常見、且廣泛被采用的機(jī)制(或協(xié)議),便是REST over HTTP。您可以將接口定義為客戶與系統(tǒng)之間的協(xié)約。此類協(xié)約可以通過采用Swagger、Open API Specification(OAS)或RAML等標(biāo)準(zhǔn)。一旦使用了標(biāo)準(zhǔn)機(jī)制來定義接口(協(xié)約),用戶就可以據(jù)此來準(zhǔn)備其客戶端應(yīng)用(包括移動和Web應(yīng)用),而不必考慮協(xié)約背后、以及業(yè)務(wù)應(yīng)用內(nèi)部發(fā)生的事情。
那么,承載所有這些接口,以便客戶可以訪問的接口組件,就被稱為API網(wǎng)關(guān)。下面,讓我們來看看API網(wǎng)關(guān)是如何通過API,向用戶交付業(yè)務(wù)功能的。
圖:使用API網(wǎng)關(guān)向用戶公開業(yè)務(wù)功能
如上圖所示,用戶可以通過聯(lián)系A(chǔ)PI網(wǎng)關(guān),來獲取客戶端應(yīng)用所需的業(yè)務(wù)功能。您可以將網(wǎng)關(guān)想象為一個門衛(wèi)或接待員,它通常需要具有以下功能:
- 基于標(biāo)準(zhǔn)格式(例如REST、Swagger、OAS)的托管類API。
- 允許多個用戶同時訪問。
- 使用某種形式的身份驗證,來驗證API用戶。
當(dāng)然,隨著API程序的普及,您可能還會用到或提供許多其他高級的功能。
如何使您的API受歡迎?
現(xiàn)在,讓我們來看兩個通過使用API網(wǎng)關(guān),向內(nèi)、外部用戶開放特定的功能和數(shù)據(jù),以改善業(yè)務(wù)流程的典型示例。
- 一家保險機(jī)構(gòu)向保險經(jīng)紀(jì)人公開了一組API,以注冊新的交易,并為客戶生成報價。據(jù)此,經(jīng)紀(jì)人和組織節(jié)省了大量的時間和精力。
- 某個制造型組織向代理商公開了一組API,以檢查生產(chǎn)線中某些產(chǎn)品的可用性,并根據(jù)該可用性做出訂單和取貨的決策,進(jìn)而協(xié)助經(jīng)銷商計劃其銷售、訂單和運輸?shù)陌才拧?/li>
目前,我們有著多種接觸新客戶的方式。其中較為簡單的一種方法是:開發(fā)并發(fā)布移動應(yīng)用到諸如Google Play商店或Apple應(yīng)用商店中。當(dāng)然,我們需要配合進(jìn)行一系列的營銷工作,促進(jìn)應(yīng)用能夠?qū)崿F(xiàn)流行下載。
不過有了API,我們就可以通過對外發(fā)布,與供人調(diào)用的方式來創(chuàng)造價值。為此,我們需要通過某個API商店或開發(fā)者門戶,來讓自己的API被發(fā)現(xiàn),并與整個架構(gòu)進(jìn)行交互。
圖:通過開發(fā)者門戶擴(kuò)展您的API使用
如上圖所示,開發(fā)者門戶允許外部開發(fā)人員使用您的API,并構(gòu)建出與其當(dāng)前應(yīng)用相集成的更好體驗。例如:汽車銷售公司可以使用保險公司的API,讓汽車購買者直接從其汽車購買的應(yīng)用中獲取對應(yīng)的保險。可見,開發(fā)者門戶可以提供如下基本功能:
- 提供API目錄,以供用戶輕松地搜索和瀏覽到。
- 通過相關(guān)的文檔,來全面介紹API及其用法。
- 提供測試API各項功能的機(jī)制(可選)。
為了提高在與外部開發(fā)人員交互時的整體效率,一些API管理產(chǎn)品還會包括如下高級功能:
- 給每個提供API評分和評論功能。
- 能夠通過社交媒體來共享API。
- API的使用情況分析。
- 細(xì)粒度的API安全配置。
- API的營利狀況。
您可以按需選擇具有上述功能的API管理平臺。
如何在組織內(nèi)部擴(kuò)展您的API策略?
讓我們來考慮這樣的情況:組織內(nèi)部的會計部門準(zhǔn)備“入住”現(xiàn)有的API平臺。他們不僅希望成為API的使用者,也希望托管自己的API,以供內(nèi)部其他部門使用。那么,滿足該要求的最簡單方法是:從會計部門獲取API的具體要求,著手開發(fā),然后在管理API平臺的團(tuán)隊的監(jiān)督下將其發(fā)布出去。不過,此類方法在流程上容易造成各種瓶頸,時下流行的敏捷開發(fā)實踐和交付實踐不太適合。在此,我們就需要引入API Federation的概念了。它的基本思想是:我們應(yīng)該能夠根據(jù)不同部門的需求,來聯(lián)合管理API平臺,而不是由一個單獨的團(tuán)隊說的算。據(jù)此,該平臺應(yīng)能夠能夠為各個部門提供必需的獨立性和敏捷性,并能夠開發(fā)和維護(hù)自己的一套API和安全策略。
當(dāng)然,這并不一定意味著您應(yīng)該為每個部門分別部署一套API平臺。相反,您可以使用“多租戶”的概念,在多個部門之間共享相同的API平臺。此舉的好處包括:更大的靈活性,更低的成本,以及更容易被采用的API平臺。
圖:通過Federation擴(kuò)展組織內(nèi)的API平臺
如上圖所示,一組方便內(nèi)部業(yè)務(wù)部門使用的新API被部署到了API網(wǎng)關(guān)處。它們是由各個業(yè)務(wù)部門的開發(fā)人員所開發(fā)的,因此只有該部門的用戶,才能在開發(fā)者門戶中查看這些API,并在網(wǎng)關(guān)中執(zhí)行它們。
當(dāng)然,我們需要在網(wǎng)關(guān)級別上具有特定的、基于角色、或基于組的訪問控制功能,并且在開發(fā)者門戶級別上,需要有與之相對應(yīng)的可視性控制。目前,大多數(shù)API管理供應(yīng)商都能夠通過“多租戶”功能,來支持此類需求。
如何使您的API平臺成為云原生?
為了能夠讓API平臺設(shè)計面向未來,我們往往需要其具有云原生(cloud-native)特性。也就是說,我們的API平臺需要具有云服務(wù)的四大優(yōu)點:高可用性、彈性伸縮、節(jié)省成本、以及即付即用。
其中,可伸縮性和可維護(hù)性主要得益于模塊化的體系結(jié)構(gòu)。如果您將所有的功能都整合到某個單一的應(yīng)用中,那么可擴(kuò)展性會變得相當(dāng)困難。在此,我們可以借助微服務(wù)架構(gòu)之類的概念來實現(xiàn)。也就是說,在將功能組件分為彼此兼容、但又獨立的模塊之后,我們的部署將變得更加靈活。下面,讓我們來看看如何為API平臺定義云原生的架構(gòu)。
圖:具有微型網(wǎng)關(guān)的模塊化API平臺
在前文中我們討論了:將API網(wǎng)關(guān)、以及API開發(fā)者門戶分別視為一種單獨的組件。那么在上面這張圖中,我們將API網(wǎng)關(guān)的安全性部分也單獨地視為一個的組件,并稱之為API密鑰管理,以便它能夠獨立地處理那些與安全性相關(guān)的需求。
在此,我們還引入了兩個分別用于API分析和API開發(fā)的附加模塊。如果您想根據(jù)不同的參數(shù),分析API的使用情況,并據(jù)此做出決斷的話,那么API分析組件最合適此類需求。而API開發(fā)組件是API開發(fā)人員在構(gòu)建API時需要交互的組件。它既可以基于GUI的接口,又可以與源代碼管理系統(tǒng)、以及Jenkins之類的構(gòu)建管道,綁定到完全自動化的過程中。
上圖中的另一個關(guān)鍵點是:內(nèi)、外部網(wǎng)關(guān)的分離。它保證了不同API在執(zhí)行或運行時(runtime)不會互相影響。此外,圖中灰色六邊形的組件描述了可以在某些用例中被使用的微型網(wǎng)關(guān)。您需要在隔離的運行時中部署一個、或一組可以獨立于其他組件運行的指定API。
最后,圖中所有帶有docker圖標(biāo)的組件,都能夠像docker那邊被部署到云原生的平臺中。您可以根據(jù)自己企業(yè)和項目的實際情況,選取如下基礎(chǔ)架構(gòu)類型:
- 本地(物理/VM)
- IaaS(基于VM)
- 容器式
- Kubernetes
平臺的選擇
有了前文關(guān)于API平臺的基本介紹,您一定想知道有哪些可供選擇的API管理平臺。下面便是我為您羅列五種的常見供應(yīng)商:
- IBM API Connect(https://www.ibm.com/cloud/api-connect)
- Apigee(https://cloud.google.com/apigee)
- WSO2 API Manager(https://wso2.com/api-management/)
- Kong Enterprise(https://konghq.com/products/kong-enterprise/)
- Mulesoft anypoint platform(https://www.mulesoft.com/platform/enterprise-integration)
原標(biāo)題:How to Select an API Management Platform for Your Business
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】