03
「一塊區(qū)域、一個平臺、一套規(guī)范」:優(yōu)化數(shù)字化擴展階段的應(yīng)用服務(wù)
前面「數(shù)字化擴展階段應(yīng)用服務(wù)常見問題」部分,我們詳細羅列了云基礎(chǔ)架構(gòu)建設(shè)、應(yīng)用現(xiàn)代化、應(yīng)用上云,以及多云環(huán)境下應(yīng)用移植性能力建設(shè)過程中與應(yīng)用服務(wù)相關(guān)的常見問題,這些問題也是對組織在過去多年實際生產(chǎn)運營中遇到問題的總結(jié)。本部分探討組織應(yīng)如何應(yīng)對這些問題,并探討在數(shù)字化擴展趨勢下如何優(yōu)化應(yīng)用服務(wù),即如何通過了解應(yīng)用變化并落實統(tǒng)一規(guī)范治理,利用自動化、多租戶自服務(wù)、流水線驅(qū)動等新場景技術(shù),提升運維、生產(chǎn)和治理管理的水平,保證在數(shù)字化擴展階段現(xiàn)代化的應(yīng)用平滑上云。解決這些問題并優(yōu)化數(shù)字化擴展階段的應(yīng)用服務(wù)的方法可以總結(jié)為一句話:「一塊區(qū)域、一個平臺和一套規(guī)范」。一塊區(qū)域指的是在多云之前規(guī)劃的多云前置網(wǎng)絡(luò)區(qū)域;一個技術(shù)平臺指的是在多云前置網(wǎng)絡(luò)區(qū)域建設(shè)的多云統(tǒng)一API網(wǎng)關(guān)技術(shù)平臺;一套規(guī)范指的是結(jié)合業(yè)界領(lǐng)先的理念,為新技術(shù)和新方法論的使用制定的規(guī)范模板,并基于規(guī)范模板將新技術(shù)應(yīng)用于統(tǒng)一的多云API網(wǎng)關(guān)平臺。接下來,我們將從這三個方面依次展開詳細說明。
多云前置網(wǎng)絡(luò)區(qū)域
如下圖所示,多云前置網(wǎng)絡(luò)區(qū)域的主要目的是部署多云統(tǒng)一API網(wǎng)關(guān)技術(shù)平臺,該平臺的作用是保證應(yīng)用和工作負載在多云和傳統(tǒng)數(shù)據(jù)中心之間的可移植性及遷移的平滑性。從負載均衡的角度,多云前置網(wǎng)絡(luò)區(qū)域分為三層:第一層是傳統(tǒng)硬件,可選擇F5新一代R系列硬件。該層主要用于多云多區(qū)的調(diào)度,通常采用資源池分布式方式進行部署。業(yè)界常用兩種方式:內(nèi)網(wǎng)DNS和動態(tài)路由。動態(tài)路由的硬件負載需要與云底層SDN網(wǎng)絡(luò)通道緊密互動,實現(xiàn)跨多云和多可用區(qū)的請求接入,跨可用區(qū)的多鏈路冗余訪問,并具備Anycast能力,以在保證業(yè)務(wù)在多云多可用區(qū)冗余的基礎(chǔ)上實現(xiàn)優(yōu)化。
第二層采用業(yè)界領(lǐng)先的軟負載NGINX進行建設(shè)。NGINX是一個輕量級、事件驅(qū)動的七層負載均衡器,具有出色的性能和高并發(fā)處理能力,能夠處理數(shù)千個并發(fā)連接,適用于高負載的網(wǎng)絡(luò)環(huán)境。第二層主要作為七層負載均衡,承擔云上基于域名和請求路徑URL的現(xiàn)代應(yīng)用負載調(diào)度職責。
第三層包括云上租戶內(nèi)的軟負載,例如K8S容器平臺的Ingress控制器。將云上租戶內(nèi)的軟負載統(tǒng)一到多云前置區(qū)域,是為了進行統(tǒng)一的規(guī)劃與治理,確保新技術(shù)和新方法論與組織已有的管理流程規(guī)范以及技術(shù)職能部門有力結(jié)合,使云上新技術(shù)和新場景能夠真正提升組織的運營管理水平,提高云上業(yè)務(wù)的可靠性。
多云多區(qū)流量調(diào)度
下圖展示了基于動態(tài)路由方式實現(xiàn)的多云多區(qū)工作負載調(diào)度示意。位于不同區(qū)域的F5新一代R系列負載均衡器具有相同的地址,例如1.1.1.1:80。在區(qū)域1訪問該地址時,動態(tài)路由調(diào)度會將請求轉(zhuǎn)發(fā)到區(qū)域1;在區(qū)域2訪問該地址時,請求會被轉(zhuǎn)發(fā)到區(qū)域2。當區(qū)域2的應(yīng)用系統(tǒng)發(fā)生故障后,區(qū)域2的客戶端訪問該地址時,請求會被轉(zhuǎn)發(fā)到區(qū)域1。
這種就近Anycast的實現(xiàn)是通過路由協(xié)議BGP和OSPF來通知路由器哪個節(jié)點是‘最近’的。每個節(jié)點向路由器宣告自己的IP地址,路由器維護一個路由表,并選擇離客戶端最近的節(jié)點。從負載均衡的角度,多云多區(qū)雙平面調(diào)度的關(guān)鍵在于通過動態(tài)路由協(xié)議和云區(qū)域的數(shù)據(jù)中心網(wǎng)絡(luò)建立通道。負載均衡的虛擬IP地址是路由器路由表中的一個條目,負載均衡器很好地支持動態(tài)路由,并可根據(jù)自身的健康檢查進行路由條目的宣告與收斂。只有健康檢查成功的虛擬服務(wù)才會被宣告到路由器,當健康檢查失敗時,路由條目會迅速收斂。路由器可以基于ECMP實現(xiàn)四層負載的水平擴展,保證云上按需擴展的能力。
以多云多區(qū)調(diào)度的一個平面為切入點,架構(gòu)也具備高可靠性與高可用性,在交換機層面,采用雙機的架構(gòu),負載均衡資源池化在保證了彈性擴展的同時,也具備高可靠性,四層負載均衡負載7層軟負載同樣資源池化部署,具體彈性水平擴展、高可靠和高可用等特點。
現(xiàn)代應(yīng)用負載調(diào)度
第二層軟負載的主要作用是進行現(xiàn)代應(yīng)用的負載調(diào)度。在數(shù)字化擴展階段,應(yīng)用現(xiàn)代化通常采用微服務(wù)架構(gòu)。在微服務(wù)架構(gòu)下,一個系統(tǒng)被拆分為成千上百個微服務(wù)?,F(xiàn)代應(yīng)用負載調(diào)度基于域名和請求URL進行智能請求路由。具體來說,現(xiàn)代應(yīng)用負載調(diào)度分為以下幾類:
上圖所示的基于比率的灰度路由是現(xiàn)代應(yīng)用負載調(diào)度的典型場景。通常,組織中的業(yè)務(wù)上云、應(yīng)用現(xiàn)代化和微服務(wù)改造不是一蹴而就的,而是逐步完成的。以某個特定的應(yīng)用為例,通常該應(yīng)用最初是在數(shù)據(jù)中心的虛擬化平臺上運行的。隨著應(yīng)用架構(gòu)的改造和上云,應(yīng)用系統(tǒng)的某個特定模板完成了改造并上云,這就需要在云前置進行基于比率的灰度流量調(diào)度。
云租戶內(nèi)負載控制
云租戶內(nèi)負載控制指的是運行在云內(nèi)特定租戶中的軟負載,云內(nèi)負載控制器指的是部署在云內(nèi)的控制平面程序,該控制器主要負責將云內(nèi)和云外網(wǎng)絡(luò)打通,將云內(nèi)應(yīng)用變化或云內(nèi)負載均衡的變化通過API的方式推送到云外。例如overlay網(wǎng)絡(luò)下業(yè)務(wù)請求進入云內(nèi)需要通過隧道技術(shù),隧道技術(shù)下則需要將云內(nèi)的應(yīng)用IP地址等通過API的方式實時更新到云外負載均衡,一邊更好的實現(xiàn)云內(nèi)外的更好的聯(lián)動,真正實現(xiàn)將云自動化自服務(wù)與組織的規(guī)范流程有力的結(jié)合起來。云內(nèi)負載控制器可以很好的實現(xiàn)云內(nèi)的負載的水平擴展,例如外部負載均衡負載云內(nèi)負載均衡的架構(gòu)下,外部負載均衡的Member就是云內(nèi)負載均衡的虛擬服務(wù)地址,當云內(nèi)負載均衡虛擬服務(wù)地址變化后則需要及時更新云外負載均衡的Member,如果業(yè)務(wù)請求流量大,云內(nèi)負載均衡進行了水平擴容,則需要及時更新云外負載均衡虛擬服務(wù),增加新的Member。
多云統(tǒng)一API網(wǎng)關(guān)平臺
多云統(tǒng)一API網(wǎng)關(guān)平臺位于多云之前,提供多云的統(tǒng)一入口,支持現(xiàn)代應(yīng)用服務(wù)的智能調(diào)度與控制。作為組織的多云統(tǒng)一流量調(diào)度平臺,它基于現(xiàn)代多云流量調(diào)度管理方法,實現(xiàn)多云流量的規(guī)范治理。這個平臺是開放、可擴展且可重用的,支持不同部門之間的協(xié)作與創(chuàng)新。它基于流行的開源軟件與商業(yè)負載均衡結(jié)合的方式,構(gòu)建了一個自主可控的API技術(shù)平臺。
如上圖所示,多云統(tǒng)一API網(wǎng)關(guān)平臺分為數(shù)據(jù)面和控制面。數(shù)據(jù)面負責轉(zhuǎn)發(fā)和傳輸應(yīng)用流量及數(shù)據(jù)流量,重點關(guān)注響應(yīng)速度、安全可靠性、水平擴展能力,以及多云多區(qū)應(yīng)用的多活高可用性。控制面則負責管理數(shù)據(jù)面流量轉(zhuǎn)發(fā)的行為,執(zhí)行標準的控制和訪問策略,并提供流量的可觀測性和洞察數(shù)據(jù)。
F5 R系列實現(xiàn)跨多云可用區(qū)應(yīng)用負載轉(zhuǎn)發(fā)
數(shù)據(jù)平臺的三層架構(gòu)核心思想是在云前置區(qū)域規(guī)劃一個邏輯和物理上的網(wǎng)絡(luò)區(qū)域,構(gòu)建三層負載均衡。第一層是硬件資源池,負責多云多區(qū)的調(diào)度;第二層是軟負載資源池,負責云上微服務(wù)應(yīng)用的現(xiàn)代應(yīng)用負載調(diào)度;第三層是租戶內(nèi)的負載均衡,作為云內(nèi)應(yīng)用的入口,負責確保租戶內(nèi)應(yīng)用的高可靠性。
我們堅信,隨著組織在數(shù)字化轉(zhuǎn)型之旅中的不斷前進,對應(yīng)用交付和安全服務(wù)的需求和復(fù)雜性將急劇上升。這種復(fù)雜性挑戰(zhàn)了IT管理應(yīng)用流量、安全基礎(chǔ)設(shè)施以及滿足客戶需求的能力。憑借F5 R系列這一下一代平臺架構(gòu),性能提升高達100%,您可以使應(yīng)用交付基礎(chǔ)設(shè)施具備未來適應(yīng)性,并提升服務(wù)速度以滿足現(xiàn)代化要求。除了性能提升,F(xiàn)5 R系列還應(yīng)對多云多區(qū)趨勢,提供基于租戶的設(shè)計邏輯。租戶是云環(huán)境中的顯著特點,F(xiàn)5 R系列的租戶設(shè)計與云內(nèi)租戶理念類似,租戶獨享計算資源。在多云前置網(wǎng)絡(luò)區(qū)域部署F5 R系列硬件,可在應(yīng)用負載層面構(gòu)建租戶資源池,使應(yīng)用負載層面的租戶與云可用區(qū)內(nèi)的應(yīng)用租戶一一對應(yīng),從而提升治理規(guī)范中的安全性和應(yīng)用彈性擴展能力。
F5 R系列租戶提供嚴格的資源隔離機制,確保不同租戶的數(shù)據(jù)、配置和流量互不干擾。每個租戶可以獨立配置其網(wǎng)絡(luò)、安全策略和應(yīng)用服務(wù),同時支持按需擴展資源,以滿足不同租戶的需求增長。通過集中化的管理控制臺和現(xiàn)代API,管理員可以統(tǒng)一配置和監(jiān)控所有租戶的服務(wù),從而簡化操作并提高效率。下表列出了F5 R系列不同型號所支持的最大租戶數(shù):
NGINX作為流量最繁重的Web服務(wù)器和反向代理已被廣泛知曉。隨著企業(yè)和組織在數(shù)字化擴展、應(yīng)用現(xiàn)代化以及多云多區(qū)流量調(diào)度方面的需求不斷增加,NGINX,特別是在被F5收購之后,已經(jīng)發(fā)展成為一個針對多云現(xiàn)代應(yīng)用的體系化產(chǎn)品平臺。如果您的應(yīng)用部署在全球多個公共云數(shù)據(jù)中心以及傳統(tǒng)數(shù)據(jù)中心,并希望通過一個控制臺監(jiān)控基礎(chǔ)設(shè)施、解決安全漏洞并評估NGINX集群的健康狀況,您可以選擇NGINX ONE。
如果您是開源NGINX的用戶并希望使用一些增強功能,可以選擇NGINX Plus,其主要增加了主動健康檢查、API能力、可觀測健康指標等功能,使其成為構(gòu)建統(tǒng)一API網(wǎng)關(guān)的關(guān)鍵組件。NGINX管理套件提供了一系列企業(yè)級擴展、安全、可觀測和治理工具,您可以依賴此套件進行API網(wǎng)關(guān)構(gòu)建?;贜GINX,NGINX應(yīng)用防護提供輕量級、高性能的七層應(yīng)用和API安全攻擊防護能力,有效保護并緩解針對應(yīng)用程序和API的第七層拒絕服務(wù)攻擊。對于Kubernetes上的業(yè)務(wù)流量管理,您可以選擇NGINX Ingress Controller和NGINX Gateway Fabric。
NGINX API路由能力
API路由是API網(wǎng)關(guān)的核心能力之一,主要指根據(jù)HOST和URL請求進行轉(zhuǎn)發(fā)。在數(shù)字化擴展階段,同一個應(yīng)用可能會有多個版本同時存在,此時灰度路由(灰度發(fā)布)用于在不同版本之間轉(zhuǎn)發(fā)請求,并基于生產(chǎn)流量驗證新版本的性能?;叶嚷酚刹捎弥鸩椒帕康牟呗裕且淮涡詫⑿掳姹净蚬δ苋客扑徒o所有用戶,而是首先選擇一小部分用戶作為試點。
API路由還可以基于HTTP協(xié)議的多種屬性進行轉(zhuǎn)發(fā),例如特定的HTTP頭屬性、Cookie、源地址、和HTTP URL參數(shù)等。NGINX API路由的能力如下表所示:
在數(shù)字化擴展階段,組織的主要任務(wù)包括應(yīng)用的現(xiàn)代化和構(gòu)建跨云與數(shù)據(jù)中心的應(yīng)用及工作負載的可移植性。根據(jù)F5《應(yīng)用策略現(xiàn)狀報告》,從2023年開始,超過一半的組織已通過現(xiàn)代化應(yīng)用替代傳統(tǒng)應(yīng)用。傳統(tǒng)應(yīng)用通常按功能模塊拆分,不同的功能模塊由不同的項目組開發(fā),并通過多個微服務(wù)實現(xiàn)。不同模塊的微服務(wù)通過URL進行區(qū)分,因此API網(wǎng)關(guān)的多路徑路由變得尤為重要。下圖展示了多路徑路由的示意。
多路徑路由可以結(jié)合HOST,通過HOST進一步細化API請求的路由。NGINX不僅支持基于HOST的轉(zhuǎn)發(fā),還支持HTTPS請求。同時,NGINX在根據(jù)HOST和URL轉(zhuǎn)發(fā)時,也具備跨租戶能力。
灰度路由主要應(yīng)用于數(shù)字化擴展階段中,實現(xiàn)跨云可用區(qū)和傳統(tǒng)數(shù)據(jù)中心之間應(yīng)用負載的可移植性。作為API網(wǎng)關(guān)的核心功能之一,灰度路由允許在不同環(huán)境中逐步引入新版本的應(yīng)用,確保負載遷移過程的平穩(wěn)性和可靠性。它在應(yīng)用負載在云可用區(qū)和傳統(tǒng)數(shù)據(jù)中心之間的遷移中扮演著關(guān)鍵角色,與現(xiàn)代應(yīng)用的SRE(Site Reliability Engineering)理論密切相關(guān)。
這種遷移能力或工作負載轉(zhuǎn)移的實現(xiàn),往往涉及到不同的方法和策略。SRE理論強調(diào)通過持續(xù)監(jiān)控和優(yōu)化操作,確保服務(wù)的高可用性和可靠性,灰度路由則是支持這一目標的有效工具之一。通過逐步放量和驗證新版本,灰度路由幫助確保在進行應(yīng)用遷移和負載調(diào)整時,能夠平衡風險,優(yōu)化用戶體驗。
上圖展示了灰度路由在實際業(yè)務(wù)場景中的典型應(yīng)用。例如,在信創(chuàng)改造過程中,遷移并非一蹴而就,而是逐步完成的?;叶嚷酚稍试S模塊逐步遷移,一次只切換一部分流量。信創(chuàng)服務(wù)和非信創(chuàng)服務(wù)可以同時運行,通過灰度路由實現(xiàn)平穩(wěn)過渡。
在這個場景中,您可以利用HTTP請求頭參數(shù)來控制流量路由。例如,您可以通過檢查請求頭中的X_XC屬性來決定流量的去向。如果請求頭中X_XC的值為true,則將請求轉(zhuǎn)發(fā)到信創(chuàng)區(qū)域;否則,流量繼續(xù)在傳統(tǒng)區(qū)域中處理。這種方式使得在遷移過程中,可以有效地管理和控制新舊版本的并行運行,確保改造過程中的平穩(wěn)過渡和服務(wù)的持續(xù)可用性。
NGINX API限流能力
API限流也是API網(wǎng)關(guān)的主要功能,限流用于拒絕過多的API流量,NGINX支持兩種API限流方式,即防止流量激增的影響和允許一段時間內(nèi)發(fā)送特定數(shù)量的請求。NGINX的limit_req和limit_req_zone指令用于限流,首先通過limit_req_zone定義請求限速的共享內(nèi)存區(qū)域。用于限制對某些資源的請求速,limit_req定義請求限速規(guī)則,關(guān)聯(lián)共享內(nèi)存區(qū)域,為保證業(yè)務(wù)連續(xù)性,NGINX API網(wǎng)關(guān)限流對突發(fā)請求數(shù)采取柔和態(tài)度,NGINX可定義特定窗口時間內(nèi),可以允許最多的請求超過速率限制,應(yīng)用現(xiàn)代微服務(wù)應(yīng)用readness Probe等初始化操作,NGINX提供慢啟動能力,提升整體用戶體驗。
API限流是API網(wǎng)關(guān)的核心功能之一,用于控制和管理流量,以防止系統(tǒng)過載。NGINX提供了兩種主要的API限流方式:
-防止流量激增的影響:通過限制請求的速率,防止突發(fā)流量對系統(tǒng)的影響。
-允許在特定時間內(nèi)發(fā)送特定數(shù)量的請求:設(shè)定一個時間窗口,允許在該時間內(nèi)處理一定數(shù)量的請求。
NGINX的limit_req和limit_req_zone指令用于限流,首先通過limit_req_zone定義請求限速的共享內(nèi)存區(qū)域。用于限制對某些資源的請求速,limit_req定義請求限速規(guī)則,關(guān)聯(lián)共享內(nèi)存區(qū)域。NGINX限流特點是:
-柔和限流:NGINX對突發(fā)請求數(shù)采取柔和態(tài)度,可以在短時間內(nèi)允許請求數(shù)量超過常規(guī)速率限制。
-慢啟動能力:為應(yīng)用現(xiàn)代微服務(wù)提供初始化操作,如readiness Probe等,以提升整體用戶體驗。NGINX能夠在應(yīng)用啟動時逐漸增加流量,避免對新服務(wù)的過大沖擊。
通過這些功能,NGINX確保了API的高可用性和穩(wěn)定性,同時能夠在面對突發(fā)流量時維持服務(wù)質(zhì)量。
NGINX API限流也可基于特定源地址、特定HTTP頭屬性、HTTP Cookie、HTTP URL參數(shù)等,下表為NGINX根據(jù)源地址限流的示例,我們定義的限流速率為每秒請求10次,當請求特定源地址的客戶端每秒鐘請求數(shù)超過10次后會觸發(fā)限流。
NGINX API安全防護
根據(jù)過去幾年F5《應(yīng)用策略現(xiàn)狀報告》調(diào)研,租戶越來越多地關(guān)注API安全,過去一年有超過80%的組織部署了一種或多種API安全服務(wù)。在多云統(tǒng)一API網(wǎng)關(guān)上,基于F5 NGINX App Protect,您可以使用軟件安全解決方案保護您的應(yīng)用程序和API。該解決方案作為輕量級Web應(yīng)用程序防火墻(WAF)、第7層拒絕服務(wù)(DoS)保護、機器人保護、API安全和威脅情報服務(wù)無縫集成到DevOps環(huán)境中。F5 NGINX App Protect在分布式架構(gòu)和混合環(huán)境中提供一致的保護。NGINX架構(gòu)為模塊化設(shè)計,這種架構(gòu)可以方便擴展,NGINX App Protect是通過擴展NGINX實現(xiàn)的。NGINX App Protect是非常輕量級的,且不會影響NGINX整體請求的處理速率。與傳統(tǒng)的安全方案相比,NGINX App Protect輕量且基于單個應(yīng)用或單個API的防護,將安全能力與應(yīng)用開發(fā)集成,DevOps和DevSecOps可方便地調(diào)整和掌控安全行為和能力。下表匯總了F5 NGINX App Protect構(gòu)建API安全防護的基本能力。
NGINX App Protect默認策略可以防護常見的OWASP排名前10的攻擊,例如跨站腳本攻擊(XSS)、SQL注入攻擊、訪問路徑越權(quán)攻擊等。事實上,API安全攻擊中常見的攻擊類型占據(jù)了很大比例。啟用默認策略可以有效地減緩這些常見攻擊。
NGINX APP Protect基本功能包括安全情報告警、策略執(zhí)行模式、IP黑白名單、HTTP合規(guī)性驗證、定義允許訪問的HTTP方法、數(shù)據(jù)保護欲脫敏、請求文件限制、自定義攔截頁面、安全策略集中管理等。安全情報告警指的是NGINX可以將攻擊情報實施發(fā)送給現(xiàn)代可觀察可視化技術(shù)棧,并提供對應(yīng)的模塊快速展示攻擊者信息。自定義允許的訪問方法指定義允許HTTP的訪問方法,例如某微服務(wù)提供了GET方法,那么可以在防護策略中定義只允許GET方法被訪問,當攻擊者嘗試發(fā)送POST等方法是,NGINX直接會攔截攻擊請求。為方便管理,以及滿足安全攻擊應(yīng)對的及時性需要自定義攔截頁面,NGINX安全防護攔截頁面可定義攔截的原因,相關(guān)管理人員的聯(lián)系方式等,下圖為NGINX安全防護自定義攔截頁面的示意。
微服務(wù)應(yīng)用防護針對數(shù)字化擴展階段微服務(wù)容器化部署的特點,可以在K8S入口控制器中定義基于應(yīng)用的防護策略。微服務(wù)之間通過API進行通信,傳輸?shù)臄?shù)據(jù)通常為JSON。基于這些特點,NGINX應(yīng)用級API防護支持以下防護能力:根據(jù)內(nèi)容過濾、非法請求方法、非法目錄訪問、特殊的SQL注入、弱類型密碼、弱類型Token等。
此外,NGINX App Protect還支持通過OpenAPI文檔進行安全防護。通過導(dǎo)入OpenAPI文檔,可以生成白名單策略,白名單策略是防護策略中最為有效的一種。下圖展示了一個OpenAPI文檔,該文檔定義了微服務(wù)支持的所有API以及API請求中的URL參數(shù)類型。例如,文檔中定義了API GET參數(shù)ID的類型為整數(shù)型。如果攻擊者傳遞的參數(shù)不是整數(shù)型,NGINX將攔截該攻擊請求。
gRPC遠程調(diào)用可以提升微服務(wù)通信的效率和數(shù)據(jù)傳輸?shù)耐掏铝?。針對這種類型的通信,NGINX也提供了相關(guān)防護功能。具體而言,NGINX可以實現(xiàn)以下防護:
-gRPC二進制流過濾:對gRPC二進制流進行內(nèi)容過濾,以確保數(shù)據(jù)的安全性。
-gRPC HTTP/2應(yīng)用保護:提供對gRPC基于HTTP/2的應(yīng)用的保護,防止各種攻擊和惡意請求。
控制平面作模塊說明
由于負載類技術(shù)棧在組織中通常被網(wǎng)絡(luò)部門建設(shè)管理,控制平面最主要的工作是落實多云統(tǒng)一API網(wǎng)關(guān)的建設(shè),提升自動化能力,靈活部署能力,云原生應(yīng)用支持能力,在應(yīng)用上云及CICD建設(shè)中增加負載網(wǎng)關(guān)服務(wù)能力,以確保應(yīng)用負載在多云可用區(qū)和數(shù)據(jù)中心間的可移植性??刂破矫婺芰ㄔO(shè)主要是將云上應(yīng)用交付所需要的三層負載統(tǒng)一管理,將應(yīng)用發(fā)布的過程建立業(yè)務(wù)視角的菜單欄,以及統(tǒng)一北向的API,通過API可以操作云上三層負載均衡中的任意一層,控制平面基于菜單欄的能力可以作為組織統(tǒng)一云管理平臺的一個子模塊。
控制平面按照功能側(cè)重可分為如下幾個方面:平臺自動化、部署自動化以及網(wǎng)絡(luò)自動化。平臺自動化是指多云統(tǒng)一網(wǎng)關(guān)平臺具備自動化自服務(wù)能力,數(shù)據(jù)平面硬件負載均衡和軟件負載均衡可以自動化地部署和創(chuàng)建。部署自動化主要是指云上業(yè)務(wù)應(yīng)用的發(fā)布自動化,在部署上線業(yè)務(wù)應(yīng)用的同時,能夠自動化實現(xiàn)業(yè)務(wù)應(yīng)用的負載配置,也就是說,控制平面生成的相關(guān)配置可以有效地推送到相關(guān)的負載實例上。網(wǎng)絡(luò)自動化則是將網(wǎng)絡(luò)部門日常通過人員手動操作的工作,如防火墻規(guī)則和負載均衡規(guī)則,通過自動化來實現(xiàn)。
控制平面還具備服務(wù)發(fā)現(xiàn)與服務(wù)注冊的能力,可以基于DNS技術(shù)實現(xiàn)服務(wù)注冊與服務(wù)發(fā)現(xiàn)。當創(chuàng)建服務(wù)時,會相應(yīng)地創(chuàng)建DNS記錄。在服務(wù)發(fā)布過程中,服務(wù)發(fā)布描述文件中的域名通過注冊中心進行指定,控制平面在服務(wù)發(fā)布過程中進行服務(wù)發(fā)現(xiàn),將域名對應(yīng)的IP地址添加為負載均衡的Member。
控制平面還具備可觀測能力??捎^測性指的是在計算系統(tǒng)和應(yīng)用程序中能夠有效地監(jiān)控、測量和理解其狀態(tài)、行為和性能的能力。它是確保系統(tǒng)正常運行和進行故障排除的關(guān)鍵能力,尤其在大規(guī)模、分布式和復(fù)雜的多云應(yīng)用交付環(huán)境中尤為重要。
多云可用區(qū)場景治理規(guī)范
多云場景治理規(guī)范的主要目的是在云技術(shù)的大背景下,高效且高質(zhì)量地應(yīng)用新技術(shù)和方法論,并與組織已有的管理流程和質(zhì)量保證規(guī)范整合,以確保業(yè)務(wù)運營的質(zhì)量。具體來說,這包括現(xiàn)代應(yīng)用下模板化的治理規(guī)范。模板化規(guī)范基于統(tǒng)一的API網(wǎng)關(guān)平臺,在該平臺上通過模板實現(xiàn)多云可用區(qū)的場景治理規(guī)范。
針對多云可用區(qū)架構(gòu)下的軟負載,我們制定了不同的業(yè)務(wù)發(fā)布模板。這些模板基于云原生的YAML格式,可以通過API或界面快速生成。當前平臺支持的業(yè)務(wù)發(fā)布模板包括:
-HTTP反向代理模板
-HTTP負載均衡模板
-gRPC HTTP2請求路由模板
-WebSocket請求路由模板
-TCP反向代理模板
-TCP負載均衡模板
-現(xiàn)代應(yīng)用負載調(diào)度模版
-限流接入控制模板
如下圖所示,以現(xiàn)代應(yīng)用負載調(diào)度模板為例,為滿足信創(chuàng)化建設(shè)的需要,user服務(wù)需要同時支持多個版本。通過HTTP請求頭屬性X-TM-Header來控制流量的轉(zhuǎn)發(fā)行為。當請求中X-TM-Header的值為特定值時,流量將被轉(zhuǎn)發(fā)到信創(chuàng)2.0版本。
在此需求下,流量調(diào)度模板如下圖右側(cè)所示。模板的YAML定義了VirtualServer類,VirtualServer通過在注冊中心注冊的服務(wù)名稱(域名)來管理兩個服務(wù),并在路由轉(zhuǎn)發(fā)策略部分定義了基于HTTP頭屬性的判斷邏輯。
04
多云統(tǒng)一API網(wǎng)關(guān)平臺收益總結(jié)
根據(jù)過去幾年F5《應(yīng)用策略現(xiàn)狀報告》,我們發(fā)現(xiàn)隨著數(shù)字化轉(zhuǎn)型的深入,以及人工智能對業(yè)務(wù)的推動,組織對應(yīng)用服務(wù)和安全服務(wù)的需求越來越多。我們將數(shù)字化轉(zhuǎn)型分為三個階段:任務(wù)自動化、數(shù)字化擴展和人工智能輔助業(yè)務(wù)。本文主要從組織數(shù)字化轉(zhuǎn)型的第二階段切入,說明在數(shù)字化擴展階段組織重點工作——應(yīng)用現(xiàn)代化以及構(gòu)建應(yīng)用多云可用區(qū)和數(shù)據(jù)中心工作負載遷移能力的過程中的問題,并詳細闡述了如何通過「一塊區(qū)域、一個平臺、一套規(guī)范」—即以多云統(tǒng)一API網(wǎng)關(guān)平臺來解決數(shù)字化擴展過程中常見的問題。多云統(tǒng)一API網(wǎng)關(guān)是以F5 R系列硬件及F5 NGINX為核心構(gòu)建的,通過結(jié)合治理規(guī)范,可有效優(yōu)化數(shù)字化擴展階段的應(yīng)用服務(wù)。
根據(jù)2024年F5《應(yīng)用策略現(xiàn)狀報告》,在應(yīng)用現(xiàn)代化方面,95%的組織部署了API網(wǎng)關(guān),以構(gòu)建跨云和數(shù)據(jù)中心的應(yīng)用負載可移植性。應(yīng)用程序及工作負載能夠在多個環(huán)境或多云環(huán)境中運行,使組織能夠在多個環(huán)境下操作,從而提升其數(shù)字化成熟度。在數(shù)字化擴展階段,應(yīng)用架構(gòu)要求系統(tǒng)能夠在面對故障、錯誤或災(zāi)難時,維持正常運作并快速恢復(fù),這種能力被定義為應(yīng)用的彈性。67%的調(diào)查者表示,多云可用區(qū)及跨云和數(shù)據(jù)中心的可移植性確實提供了這種彈性。我們都知道,停機是不可避免的,它們會發(fā)生在每個組織中。即使是最優(yōu)秀、最著名的品牌也會經(jīng)歷停機。無論是由于配置更改、人員錯誤,還是自然災(zāi)害,你都希望擁有這種彈性,以便將應(yīng)用程序遷移到最合適的位置,從而確保業(yè)務(wù)能夠繼續(xù)運行。
多云統(tǒng)一API網(wǎng)關(guān)的核心價值在于為組織提供跨云可用區(qū)和數(shù)據(jù)中心的可移植能力。這種能力能夠協(xié)助組織實現(xiàn)應(yīng)用現(xiàn)代化改造、進行灰度上云、分發(fā)應(yīng)用負載在多云可用區(qū)和數(shù)據(jù)中心之間,甚至支持應(yīng)用從云端回遷。多云統(tǒng)一API網(wǎng)關(guān)為組織帶來的主要收益包括:
-首先,解決了數(shù)字化擴展階段在應(yīng)用現(xiàn)代化及跨云和數(shù)據(jù)中心負載遷移中的實際問題。通過統(tǒng)一規(guī)范和平臺,避免了各項目組各自為政的現(xiàn)象,解決了多云架構(gòu)下現(xiàn)代應(yīng)用負載調(diào)度的可靠性差、流量管理混亂及潛在運營風險等問題。
-其次,引領(lǐng)了技術(shù)體系的變革,保障了組織核心業(yè)務(wù)從傳統(tǒng)主機到分布式架構(gòu)的遷移,并確保核心業(yè)務(wù)在云端的高效可靠運行。這一過程中采用了現(xiàn)代應(yīng)用新方法論,如DevOps和SRE。
第三,構(gòu)建了敏捷的產(chǎn)研體系,通過推動IT敏捷交付和敏捷研發(fā)能力,促進了組織的敏捷轉(zhuǎn)型,支持了端到端的敏-捷業(yè)務(wù)能力。
-第四,推動了平臺化能力建設(shè)。構(gòu)建的多云統(tǒng)一網(wǎng)關(guān)平臺是支持熱點業(yè)務(wù)、新型應(yīng)用、AI和ChatGPT等技術(shù)的驅(qū)動平臺。
-最后,促進了組織的數(shù)字化轉(zhuǎn)型。通過提升用戶的數(shù)字化體驗,構(gòu)建數(shù)字化金融生態(tài),落地開放組織戰(zhàn)略、數(shù)字經(jīng)濟戰(zhàn)略及數(shù)智化戰(zhàn)略,實現(xiàn)了組織的全面數(shù)字化轉(zhuǎn)型。