大促場景下,如何做好閘道器高可用防護
618 大促正在如火如荼進行中。《618大促來襲,淺談如何做好大促備戰》一文介紹了全方位保障大促高可用的方法論和技術手段,本文繼續圍繞閘道器,深入探討大促場景下,如何做好閘道器高可用防護,將從以下幾點逐一展開介紹:
-
閘道器做高可用防護的重要性
-
MSE 雲原生閘道器的“下一代閘道器架構”,在高可用防護上的巨大優勢
-
使用 MSE 雲原生閘道器的高可用防護實戰(影片演示)
閘道器做高可用防護的重要性
大促場景下,使用閘道器做高可用防護為什麼重要?一言以蔽之,閘道器具備將大促的各種不確定性因素轉化為確定性因素的能力,並且這種能力是不可替代的。分別從三個方面來看:
第一點是應對流量峰值的不確定性,必須通過限流規則將不確定的流量變為確定。業務服務模組自己做限流很難實現這一點。因為實現限流防護有個前提,承載這突發流量的服務仍能保持正常的 CPU 負載。業務服務模組即使實現了應用層的 QPS 限流,在瞬時高併發場景下,仍可能因為網路層大量的新建連線導致 CPU 猛漲,限流規則也就形同虛設了。業務模組應該專注在應用層業務邏輯上,若要通過擴容去應對其不擅長的網路層開銷,所需的資源成本是相當高的。而閘道器作為業務流量入口的地位,決定了其必須擅長應對高併發的網路流量,並且這塊效能也是衡量閘道器能力的一個重要指標,應對高併發的效能越強,所需的資源成本就越低,將大促流量從不確定變為確定的能力就越強。
第二點是應對使用者行為的不確定性,需要根據不同的大促場景,模擬使用者行為進行多輪壓測演練,提前發現系統的瓶頸和優化點。閘道器既是使用者訪問的流量入口,也是後端業務應答的最終出口。這決定了閘道器是模擬使用者行為進行流量壓測的必經一站,也決定了是觀測壓測指標評估使用者體驗的必須環節。在閘道器上邊壓測,邊觀察,邊調整限流配置,對大促高可用體系的建設,可以起到事半功倍的效果。
第三點是應對安全攻擊的不確定性。大促期間也通常是黑灰產活躍的時間,異常的刷單流量很可能觸發限流規則,從而影響正常使用者的訪問。基於閘道器的流量安全防護能力,例如 WAF 等功能,通過識別出異常流量提前攔截,以及將異常 IP、cookie 自動加入黑名單等手段,既可以使這部分流量排除在限流閾值之外,也可以保障後端業務邏輯安全。這也是大促高可用防護必不可少的一環。
MSE 雲原生閘道器的優勢
架構優勢
MSE 雲原生閘道器實現了流量閘道器、微服務閘道器、安全閘道器三合一的“下一代閘道器架構”,和常見的多層閘道器架構對比如下所示:
- 常見多層閘道器架構
在這個架構中,用 WAF 閘道器實現安全能力,SLB 實現負載均衡能力,Ingress 閘道器實現叢集入口閘道器能力(非 K8s 場景也會部署一層 Nginx),Zuul 實現微服務閘道器能力。面對大促的突發流量,這樣的架構下,需要對每一層閘道器都進行容量評估,每一層閘道器都是潛在的瓶頸點,都可能需要進行擴容。這樣造成的資源成本和運維人力成本都是巨大的。並且每多一層閘道器,就多一層可用性風險。
- MSE 雲原生閘道器架構
使用 MSE 雲原生閘道器,在保留 SLB 作負載均衡的基礎上,只通過一層閘道器就實現了叢集入口閘道器、WAF 閘道器、微服務閘道器的全部能力。應對大促場景,運維人員只需專注在 MSE 閘道器這一層上,就能做好所有入口流量的管理,實現高可用防護。這就是“下一代閘道器架構”,讓一切迴歸簡單,唯有簡單方可依賴。
效能優勢
如下圖所示,MSE 雲原生閘道器的吞吐效能是 Nginx Ingress Controller 的一倍,具體的效能對比分析可以參考《K8s 閘道器選型初判:Nginx 還是 Envoy?》一文。在大促的洪峰流量面前,閘道器的效能如果不夠好,意味著企業要支付更多的 ECS 資源成本,同時還要為閘道器本身能否扛住流量操心,一旦“門神”失守,對業務造成的損失是不可估量的。
閘道器規格:16 核 32 G * 4 節點
ECS 型號:ecs.c7.8xlarge
高可用能力方面,MSE 雲原生閘道器內建了 Alibaba Sentinel 高可用模組,歷經多年雙十一流量考驗,提供了豐富的限流防護能力,包括流控規則、併發規則、熔斷規則,可以全面保障後端業務高可用;此外,MSE 雲原生閘道器還具備流量預熱能力,通過小流量預熱方法,可以有效解決大促場景下,資源初始化慢所導致的大量請求響應慢、請求阻塞問題,避免剛擴容的節點無法提供正常服務,影響使用者體驗。
壓測便捷性方面,使用阿里雲 PTS 的 MSE 閘道器壓測場景,可以輕鬆發起對指定閘道器例項的壓測。結合 MSE 雲原生閘道器的限流和可觀測能力使用,可以邊壓測,邊觀察,邊調整限流配置,實現一站式的高可用防護體系建設。
安全能力方面,MSE 雲原生閘道器除了集成了 WAF 的功能外,還在外掛市場中提供了多種認證和安全防護外掛。使用者還可以使用多種語言(Golang/JS/Rust/C++等)編寫自己的 Wasm 外掛,實現自己業務場景下特殊的流量認證和防護邏輯,將異常流量在匹配限流規則之前就提前攔截,避免對正常流量訪問產生影響。
MSE 雲原生閘道器高可用防護實戰
點選觀看直播回放:
- 從 VLAN 到 IPVLAN: 聊聊虛擬網路裝置及其在雲原生中的應用
- 企業分賬如何幫助使用者解決成本優化和預算分配的問題
- RocketMQ 訊息整合:多型別業務訊息-普通訊息
- 菜鳥 CPaaS 平臺微服務治理實踐
- 全鏈路灰度在資料庫上我們是怎麼做的?
- 新零售標杆 SKG 全面擁抱 Serverless,實現敏捷交付
- 我們總結了 3 大使用建議,並首次公開 Nacos 3.0 規劃圖 | Nacos 開源 4 週年
- 阿里雲訊息佇列 Kafka-訊息檢索實踐
- 人人可參與開源活動正式上線,誠邀您來體驗!
- 資料庫治理利器:動態讀寫分離
- 生於雲、長於雲,RocketMQ 5.0 再出發
- 阿里云云原生一體化數倉 — 資料治理新能力解讀
- 阿里雲易立:雲原生如何破解企業降本提效難題?
- 雲原生混部最後一道防線:節點水位線設計
- 通過 MSE 實現基於Apache APISIX的全鏈路灰度
- 出專輯啦 ! 從入門實操演示到進階直播答疑,玩轉容器服務 so easy ~
- 阿里雲 Serverless 非同步任務處理系統在資料分析領域的應用
- 全鏈路灰度在資料庫上我們是怎麼做的?
- 深入淺出 eBPF|你要了解的 7 個核心問題
- Kubernetes 問題排查全景圖