近期阿里云重磅發(fā)布了BizWorks一體化的云原生應(yīng)用的開發(fā)和運營平臺,內(nèi)置阿里巴巴業(yè)務(wù)中臺構(gòu)建的最佳技術(shù)實踐。BizWorks提供的產(chǎn)品能力,普遍適用于企業(yè)云原生應(yīng)用高效開發(fā)以及企業(yè)業(yè)務(wù)能力沉淀和復用的場景。BizWorks提供業(yè)務(wù)架構(gòu)師一整套的可視化業(yè)務(wù)建模工具,極大提升設(shè)計效率;同時,基于這套建模產(chǎn)出,形成代碼框架,讓業(yè)務(wù)中臺復雜的變成過程簡化為填空題,減低開發(fā)難度、提升研發(fā)效率,并在部署環(huán)節(jié)完成設(shè)計與實現(xiàn)的一致性校驗,保證實現(xiàn)質(zhì)量。BizWorks已經(jīng)將API網(wǎng)關(guān)作為關(guān)鍵組件融入其中,并且基于API網(wǎng)關(guān)為用戶提供能力開放平臺。那么API網(wǎng)關(guān)是如何在BizWorks中起到作用?API網(wǎng)關(guān)在實際業(yè)務(wù)中又起到怎樣幫助?本文就此展開詳細說明。
阿里云API網(wǎng)關(guān)是阿里云自研的一款高性能網(wǎng)關(guān),主要面向公有云用戶提供API托管服務(wù)、流控、認證、安全等能標準的API網(wǎng)關(guān)能力。阿里云的API網(wǎng)關(guān)原生對接了阿里云的非常多的標準云產(chǎn)品,能夠?qū)⒗镌频亩嗫町a(chǎn)品聚合起來為用戶提供一套整體解決方案,提供業(yè)務(wù)數(shù)據(jù)完全打通的能力強大的整套基礎(chǔ)設(shè)施。本文詳細描述了以API網(wǎng)關(guān)作為中樞的應(yīng)用體系架構(gòu),用戶可以參考本文快捷地搭建一套服務(wù)于大型應(yīng)用的功能全面的服務(wù)器側(cè)架構(gòu)。
1、應(yīng)用體系架構(gòu)的主要訴求
我們運營一個成熟的APP,對服務(wù)器端大致有五種類型的主要訴求:
- 處理業(yè)務(wù)類請求:處理用戶自己業(yè)務(wù)系統(tǒng)的業(yè)務(wù),比如客戶端向服務(wù)器端發(fā)送的用戶注冊、登錄、獲取用戶資料等請求,Web客戶端向服務(wù)器端發(fā)送獲取商品描述等請求;
- 處理文件類請求:這個比較好理解,就是客戶端向服務(wù)器端發(fā)送上傳、下載文件的請求,比如圖片,語音等多媒體文件;
- 處理數(shù)據(jù)統(tǒng)計類請求:運營平臺需要統(tǒng)計一些運營數(shù)據(jù),業(yè)務(wù)大屏需要展示一些統(tǒng)計數(shù)據(jù)等,需要服務(wù)器端將業(yè)務(wù)數(shù)據(jù)經(jīng)過聚合等處理后通過接口形式提供給Web客戶端;
- 調(diào)用三方接口處理特定請求:比如調(diào)用三方的人臉識別接口,三方的天氣查詢接口等專業(yè)接口;
- 業(yè)務(wù)可監(jiān)控,遇到異常情況可以自動報警對業(yè)務(wù)運行情況的監(jiān)控和報警是一個服務(wù)器端架構(gòu)必須要考慮的方面,
這五類主要訴求都能通過API網(wǎng)關(guān)原生集成阿里云的其他標準產(chǎn)品來統(tǒng)一完成,下面我們來講講具體如何實現(xiàn)。
2、API網(wǎng)關(guān)作為中樞的應(yīng)用體系架構(gòu)
2.1、整體架構(gòu)
上圖是利用API網(wǎng)關(guān)構(gòu)建一個標準的APP服務(wù)器端架構(gòu)圖,我們可以看到API網(wǎng)關(guān)處于業(yè)務(wù)流量入口,原生集成了多款阿里云的標準產(chǎn)品。所有客戶端的請求先發(fā)送到API網(wǎng)關(guān),由API網(wǎng)關(guān)根據(jù)用戶配置的API元數(shù)據(jù)將請求路由到不同的類型的后端實現(xiàn)不同類型的業(yè)務(wù)分發(fā),API網(wǎng)關(guān)和這些后端類型產(chǎn)品是原生集成,默認內(nèi)網(wǎng)通信,大幅降低用戶配置難度的同時也提高了通訊效率。同時經(jīng)過API網(wǎng)關(guān)的API調(diào)用日志都會被API網(wǎng)關(guān)實時同步到用戶的SLS日志、云監(jiān)控和ARMS業(yè)務(wù)監(jiān)控中,大幅增強用戶的業(yè)務(wù)監(jiān)控與報警能力。
2.2、統(tǒng)一的域名接入與業(yè)務(wù)分發(fā)
API網(wǎng)關(guān)提供實用的域名與證書托管能力,用戶可以將自有的域名和對應(yīng)的證書托管到API網(wǎng)關(guān)上,所有的API均可以通過統(tǒng)一的自有域名對外提供基于HTTPS的服務(wù),包括業(yè)務(wù)類請求,文件類請求和數(shù)據(jù)類型請求,由API網(wǎng)關(guān)將不同類型的API請求分發(fā)到不同的后端服務(wù)中去。API網(wǎng)關(guān)的域名與證書托管在業(yè)務(wù)接入方面為用戶提供了一系列增強能力:
- API網(wǎng)關(guān)提供基于標準的跨域插件配置能力,用戶可以在自有域名上為不同API配置不同的跨域策略,便于將自己的API提供給第三方或者自有的其他域名在瀏覽器上進行調(diào)用;
- API網(wǎng)關(guān)除了可以托管用戶的單域名,還支持托管泛域名及其對應(yīng)的SSL證書,適配利用泛域名提供業(yè)務(wù)的平臺型業(yè)務(wù),比如阿里的個人網(wǎng)盤業(yè)務(wù)就是使用的API網(wǎng)關(guān)進行的接入,API網(wǎng)關(guān)可以將泛域名的自定義部分作為參數(shù)傳遞給后端服務(wù);
- API網(wǎng)關(guān)支持HTTP2的接入,可以大幅提高和客戶端之間的通訊效率;
- API網(wǎng)關(guān)基于用戶的不通需求提供三套不通的SSL接入算法選項,用戶可以根據(jù)自己的業(yè)務(wù)安全級別來選擇不通的安全策略;
- API網(wǎng)關(guān)同時支持HTTPS雙向認證(Mutual TLS authentication),在API網(wǎng)關(guān)驗證客戶端發(fā)送的SSL證書是否由用戶的根證書頒發(fā)的。
3、融合多款標準產(chǎn)品提供整套基礎(chǔ)設(shè)施
API網(wǎng)關(guān)除了可以對接用戶自己的后端服務(wù),還可以原生對接多款標準云產(chǎn)品,包括函數(shù)計算,OSS,及一系列數(shù)據(jù)類型的產(chǎn)品,用戶可以輕易在控制臺進行后端服務(wù)進行配置后就能完成對接,提供多款產(chǎn)品融合的強大綜合服務(wù)能力。API網(wǎng)關(guān)與這些后端產(chǎn)品默認使用高效的內(nèi)網(wǎng)通信。
3.1、函數(shù)計算集成
使用API網(wǎng)關(guān)與函數(shù)計算提供服務(wù)是業(yè)內(nèi)標準的Serverless實現(xiàn),可以充分利用API網(wǎng)關(guān)強大的接入能力和函數(shù)計算的代碼托管能力和彈性收縮能力搭建大規(guī)模業(yè)務(wù)的Serverless服務(wù)器側(cè)架構(gòu)。Serverless架構(gòu)大幅降低了用戶的運維成本,將更多精力聚焦到業(yè)務(wù)邏輯的開發(fā)整合上,大大縮短開發(fā)周期。2019 年 雙11 過后,世紀聯(lián)華快速上云,將線上核心業(yè)務(wù)改造為全 Serverless 架構(gòu)的中臺模式,采用“函數(shù)計算 API 網(wǎng)關(guān) OTS”作為計算網(wǎng)絡(luò)存儲核心,彈性支撐日常和大促峰谷所需資源,輕松支撐 618 / 雙11 / 雙12 大促。
用戶可以在API網(wǎng)關(guān)上直接配置已經(jīng)在函數(shù)計算中定義的函數(shù),直接選擇對應(yīng)的服務(wù)和其中的函數(shù)即可,配置非常簡便:
3.2、OSS集成
去年API網(wǎng)關(guān)原生集成了OSS產(chǎn)品,用戶可以使用API網(wǎng)關(guān)對其客戶端提供文件管理API。OSS產(chǎn)品本身就對用戶提供了文件管理API,為什么還要通過API網(wǎng)關(guān)去暴露用戶的文件管理API呢,主要有以下幾條原因:
- 用戶可以在API網(wǎng)關(guān)為每個文件、文件夾設(shè)置跨域策略,在Web類場景非常實用;
- 用戶可以通過API網(wǎng)關(guān)為每個文件、文件夾設(shè)置訪問控制策略,可以規(guī)定某些文件只能通過鑒權(quán)后才能訪問,API網(wǎng)關(guān)提供的鑒權(quán)方式比較豐富,除了AK簽名方式,還提供了JWT方式和BasicAuth方式,能適應(yīng)更多的實際使用場景;同時也可以為每個文件設(shè)置IP黑白名單策略;
- API網(wǎng)關(guān)提供了后端文件緩存功能,用戶可以通過這個功能將熱點文件緩存起來,大幅提升文件訪問效率;
- 統(tǒng)一的日志、監(jiān)控、報警管理;
用戶可以在API網(wǎng)關(guān)上直接選擇已經(jīng)在OSS中創(chuàng)建的Bucket,API網(wǎng)關(guān)允許將整個Bucket配置成一個API,配置方式非常簡便:
3.3、數(shù)據(jù)類型產(chǎn)品集成
用戶通過自建的應(yīng)用或者在函數(shù)計算上托管的服務(wù)對客戶端提供業(yè)務(wù)類請求API,業(yè)務(wù)數(shù)據(jù)存儲在阿里云的云數(shù)據(jù)庫內(nèi)。API網(wǎng)關(guān)目前已經(jīng)與Dataworks,Quick BI等大數(shù)據(jù)分析平臺進行原生集成,同時也和數(shù)據(jù)管理服務(wù)DMS進行了集成。用戶可以將自己的業(yè)務(wù)數(shù)據(jù)通過大數(shù)據(jù)分析平臺得到分析后的數(shù)據(jù),然后通過API網(wǎng)關(guān)將這些數(shù)據(jù)能力通過API的形式開放給自己的運營平臺或者開放給第三方。Dataworks直接將API網(wǎng)關(guān)嵌入到自己的產(chǎn)品中,用戶在DataWorks生成數(shù)據(jù)API默認通過API網(wǎng)關(guān)對外開放能力。用戶可以在API網(wǎng)關(guān)控制臺看到這些API,并對其進行精細化管理,比如綁定流控、訪問控制等插件來適配不同的業(yè)務(wù)場景。
3.3、云市場API類商品集成
API網(wǎng)關(guān)與阿里云的云市場做了深度集成,云市場的API類商品都是通過API網(wǎng)關(guān)對其消費者提供服務(wù)。用戶可以將自己的能力、數(shù)據(jù)通過云市場的API類商品形式上架到阿里云的云市場來獲取收益,也可以在云市場上購買三方API類商品,將這些三方公司開發(fā)的特定的能力集成到自己的APP中去,比如非常實用的人臉識別API,身份證識別和認證API,天氣類API,IP識別API等等,這些通用能力有專業(yè)的公司去開發(fā),直接借力這些三方公司的專業(yè)能力可以節(jié)省自己的研發(fā)成本而獲得專業(yè)的服務(wù)。
API網(wǎng)關(guān)在為用戶生成調(diào)用API的SDK的時候,將用戶自己API和在云市場上購買的所有API聚合在一起后生成一個統(tǒng)一的SDK供用戶下載使用。
3.4、SLS日志同步與監(jiān)控報警
用戶可以通過配置,將所有經(jīng)過API網(wǎng)關(guān)的調(diào)用日志同步到用戶自己的SLS日志服務(wù)中去,通過SLS日志服務(wù)您可以進行實時日志查詢、下載、多維度統(tǒng)計分析等,您也可以將日志投遞到OSS或者MaxCompute進行遠期備份或深度分析。用戶還可以使用這些日志作為日志審計的數(shù)據(jù)源,日志審計是法律剛性需求,是客戶安全合規(guī)依賴的基礎(chǔ),是一些項目的必選項,可以輕松通過配置實現(xiàn)。用戶除了可以在日志中看到調(diào)用的基本信息,包括域名、調(diào)用者身份、調(diào)用耗時,應(yīng)答狀態(tài)碼等基本信息外,還可以配置記錄整個請求和應(yīng)答,便于排查問題。
用戶將API網(wǎng)關(guān)的調(diào)用日志同步到SLS后,就可以在SLS中配置監(jiān)控報警項了,配置內(nèi)容比較簡單:
3.5、集成云監(jiān)控
API會自動將調(diào)用日志同步給阿里云云監(jiān)控產(chǎn)品,用戶可以在云監(jiān)控產(chǎn)品上直接配置報警規(guī)則,監(jiān)控報警的指標包括:Http應(yīng)答碼,API響應(yīng)時間,請求次數(shù),流入流量,流出流量。如果需要對該API分組下的所有API應(yīng)用相同的報警規(guī)則,進入API分組詳情頁,點擊詳情頁右上角的開啟云監(jiān)控:
云監(jiān)控報警可設(shè)置多級報警,閾值處于不同區(qū)間時,對應(yīng)Critical 、Warning、Info三個不同級別,不同級別通過不同渠道發(fā)送報警通知。
3.6、全鏈路追蹤平臺
用戶可以配置將調(diào)用日志上傳到阿里云鏈路追蹤平臺,分析全鏈路調(diào)用情況。鏈路追蹤 Tracing Analysis 提供了完整的調(diào)用鏈路還原、調(diào)用請求量統(tǒng)計、鏈路拓撲、應(yīng)用依賴分析等工具,可以幫助用戶提高開發(fā)診斷效率。
配置好之后,就可以在全鏈路追蹤平臺上看到整個調(diào)用鏈每個節(jié)點的耗時情況了:
4、API網(wǎng)關(guān)自身核心能力
API網(wǎng)關(guān)除了提供API元數(shù)據(jù)和API生命周期管理能力外,在API調(diào)用環(huán)節(jié)貢獻了一些主流架構(gòu)中不可缺少的能力,以下任何一項能力要想做好都非常麻煩。API網(wǎng)關(guān)在線上為數(shù)萬公有云用戶提供服務(wù)的同時,也將自己的基本功打磨到好用的程度。
4.1、流控
流控是標準網(wǎng)關(guān)的基本能力,保護后端服務(wù)避免遭受過載請求的情況。API網(wǎng)關(guān)使用標準的令牌桶算法為用戶提供多維度流控能力,下面是API網(wǎng)關(guān)提供的流控能力細項:
- 支持API級別流量控制
- 支持秒、分鐘、小時、天等時間維度流量控制
- 支持基于APP/用戶維度流量控制
- 根據(jù)請求參數(shù)(UserId等)、系統(tǒng)參數(shù)(IP等)設(shè)置流控策略
- 使用標準漏斗算法,可以選擇被流控請求緩存模式或立即返回模式
4.2、鑒權(quán)
API網(wǎng)關(guān)為用戶提供多種形式的鑒權(quán)能力:
- 通過托管用戶的Public JWK實現(xiàn)對請求進行JWT認證,并將JWT解密出來的claim作為參數(shù)傳給后端;
- 在API網(wǎng)關(guān)生成AK/SK并且與API建立授權(quán)關(guān)系,客戶端使用AK/SK對請求進行簽名后才能調(diào)用授權(quán)后的API
- 支持BasicAuth認證方式
4.3、緩存
用戶將后端返回的應(yīng)答緩存在API網(wǎng)關(guān)服務(wù)層面,有效降低后端的負荷,增加平滑度:
- 支持根據(jù)請求參數(shù)、Header等維度來生成、獲取緩存
- 允許客戶端通過Cache-Control頭來影響緩存策略
- 遵守后端應(yīng)答中的Cache-Control頭的約定來處理緩存
4.4、安全
API網(wǎng)關(guān)為用戶的API調(diào)用提供多項安全保障:
- 支持API級別IP黑名單和白名單
- 支持前后端支持簽名驗證來確保請求在鏈路上不被篡改
- 具備防重放能力,拒絕重放請求
- 根據(jù)請求參數(shù)或上下文,來執(zhí)行條件判斷,用于過濾不希望傳遞到后端的請求
- 支持讀取JWT解密出來的claim中的參數(shù)作為判斷條件來過濾請求
4.5、性能
- API網(wǎng)關(guān)連接數(shù)和RPS支持無限制擴容
- 專享實例中,請求在API網(wǎng)關(guān)的平均耗時為1ms
5、API網(wǎng)關(guān)融入BizWorks成為能力開放平臺
API網(wǎng)關(guān)嵌入到DataWorks中,同時承接了BizWorks南北向流量和東西向流量的治理工作。商業(yè)能力上架的時候,商業(yè)能力下的所有API的元數(shù)據(jù)會自動注冊到API網(wǎng)關(guān),由API網(wǎng)關(guān)向外部開放其能力。開發(fā)者登錄到運營平臺的開發(fā)者門戶去瀏覽搜索所有商業(yè)能力,查看商業(yè)能力的API定義,下載商業(yè)能力下所有API對應(yīng)的SDK。API的調(diào)用數(shù)據(jù)也會同步到SLS中,BizWorks的能力運營數(shù)據(jù)平臺會去分析調(diào)用數(shù)據(jù),將調(diào)用數(shù)據(jù)中的價值挖掘出來,供決策人員參考。
6、總結(jié)
API網(wǎng)關(guān)是阿里云的一款在線上平穩(wěn)運行六年多的成熟云產(chǎn)品,為廣大用戶提供標準的高性能網(wǎng)關(guān)服務(wù),它除了能提供API托管服務(wù),覆蓋設(shè)計、開發(fā)、測試、發(fā)布、售賣、運維監(jiān)測、安全管控、下線等API各個生命周期階段,還集成了阿里云的眾多標準云產(chǎn)品,能夠?qū)⒈姸嘣飘a(chǎn)品連接起來搭建成一個功能強大的、省心的服務(wù)器側(cè)架構(gòu)。API網(wǎng)關(guān)后端原生集成了OSS、函數(shù)計算、Dataworks等數(shù)據(jù)分析類產(chǎn)品,滿足用戶業(yè)務(wù)處理,文件處理,數(shù)據(jù)分析等基本訴求。API網(wǎng)關(guān)將調(diào)用日志同步給了SLS,云監(jiān)控,全鏈路追蹤平臺,滿足用戶多維度業(yè)務(wù)監(jiān)控報警的需求。API網(wǎng)關(guān)同時融入了阿里云最新發(fā)布的強大的云原生應(yīng)用的開發(fā)和運營平臺BizWorks,成為BizWorks的能力開發(fā)平臺的核心組件。
原文鏈接:http://click.aliyun.com/m/1000348115/
本文為阿里云原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。