天天看點

精準容量、秒級彈性,壓測工具 + SAE 方案如何成功突破傳統大促難關?

本次課程介紹在 SAE 場景下,如何借助壓測工具與 SAE 彈性能力來應對大促的實踐。主要包含 3 部分要點:傳統大促面臨的挑戰、SAE 大促方案以及快速壓測驗證。

精準容量、秒級彈性,壓測工具 + SAE 方案如何成功突破傳統大促難關?

作者 | 代序 阿裡雲雲原生技術團隊

本文整理自《Serverless 技術公開課》,“Serverless”公衆号背景回複“入門”,即可擷取系列文章 PPT。

導讀:本次課程介紹在 SAE 場景下,如何借助壓測工具與 SAE 彈性能力來應對大促的實踐。主要包含 3 部分要點:傳統大促面臨的挑戰、SAE 大促方案以及快速壓測驗證。

傳統大促挑戰

精準容量、秒級彈性,壓測工具 + SAE 方案如何成功突破傳統大促難關?

一次常見的大促活動,技術人員通常會從下面幾個方面着手,進行準備工作:

  • 架構梳理:對參與大促的服務,進行系統性的架構梳理;
  • 容量規劃:結合架構梳理,确定系統 SLA 名額,形成容量模型,幫助業務進行評估;
  • 性能測試:核心系統的單機容量評估,與核心鍊路全鍊路壓測,可以驗證容量模型,發現系統存在的問題;
  • 應用/資料庫優化:對發現的系統問題,譬如熱點、死鎖或慢 SQL 等,進行優化,確定系統可以支撐大促;
  • 準備擴容方案:通過容量規劃與性能測試,可以确定一套滿足活動需求的擴容方案,既保障業務,又降低成本;
  • 應急預案準備:當遇到突發情況如何應對,譬如業務降級,砍掉非核心邏輯,或者限流降級,保障核心鍊路穩定;
  • 大促線上應急保障:專人專項,對問題進行響應,執行應急預案。

要完成上述準備工作,經常會遇到如下痛點:

  • 系統核心全鍊路,缺少全局關系視角。需要花大量時間,整理依賴關系。
  • 鍊路上下遊問題、定位問題比較耗時。壓測與線上應急保障過程中,彙總鍊路上下遊問題,定位問題比較耗時,缺少快速定位分析工具。
  • 業務開發疊代快,需要常态化壓測支援。大量重複性人力投入,給大家造成很大負擔。
  • 預留資源成本高,需要頻繁擴縮容。需要産品化支援自動彈性伸縮,降低自建機房等高成本高閑置的固定投入。

SAE 大促解決方案

精準容量、秒級彈性,壓測工具 + SAE 方案如何成功突破傳統大促難關?

首先,SAE 是一款面向應用的 Serverless PaaS 平台,在傳統 PaaS 功能之外,提供了完備的全鍊路監控、微服務管理等能力,并借助 Serverless 能力,最大程度進行快速擴縮容、降低手工運維成本。

精準容量、秒級彈性,壓測工具 + SAE 方案如何成功突破傳統大促難關?

SAE 提供的解決方案,将從三方面入手:

  • 名額可視化:借助應用監控 ARMS 提供豐富的 JVM、全鍊路 Tracing 、慢 SQL 等功能,便捷地評估水位、定位問題;
  • 應用高可用:借助 AHAS 限流降級能力,流量激增時,保護核心服務,保障可用性不完全跌 0;
  • 性能壓測:借助壓測工具如 PTS,模拟單機壓測或全鍊路壓測,驗證容量規劃、發現應用問題。

快速壓測驗證

那麼如何通過 SAE ,進行一次快速的大促壓測驗證呢?下面将進行一次完整的展示:

第一步:觀察應用監控名額,大緻拟定彈性/壓測/限流降級

精準容量、秒級彈性,壓測工具 + SAE 方案如何成功突破傳統大促難關?

通過觀察應用監控,對日常業務的監控名額,有一個大緻的概念。以一個典型的電商類應用為例。

從監控情況看:

  • 該應用為 HTTP 微服務應用;
  • 應用依賴大量 HTTP 微服務調用,少量使用 Redis / MySQL 服務,适合使用單機 + 分布式壓測工具,分别進行壓測;
  • QPS 名額,相比 CPU、MEM 和 RT 名額,對業務更敏感,更适合作為彈性政策名額。

第二步:選擇合适的壓測工具

精準容量、秒級彈性,壓測工具 + SAE 方案如何成功突破傳統大促難關?

根據業務訴求,可以選擇快速使用的工具,或功能完整的壓測工具。

  • 譬如單機 HTTP 壓測工具 ab、wrk,可以提供簡單快速的壓測方式,但隻支援單機、不支援上下文。
  • 如果我們需要支援 WebSocket 、常态化壓測,雲産品 PTS 可以提供較為完整的服務,相比自建成本更低。

第三步:配置 SAE 彈性伸縮政策 + AHAS 限流降級政策

精準容量、秒級彈性,壓測工具 + SAE 方案如何成功突破傳統大促難關?

無需精準設定,選擇一些合适的名額,配置 SAE 彈性伸縮政策,或額外配置 AHAS 限流政策 / ARMS 告警。

  • 對 API 類型,可通過對 API QPS、SQL QPS 等名額進行限流,保障超過系統水位的請求,快速 failover,降低對容量内業務的 SLA;并選擇應用監控名額 QPS、RT,配置彈性規則,讓系統進行彈性伸縮;
  • 對于計算型應用,則可選擇更敏感的名額,如 CPU、Memory 對應用進行擴縮容。

第四步:執行壓測 – 觀察結果 – 優化代碼 – 調整政策配置

精準容量、秒級彈性,壓測工具 + SAE 方案如何成功突破傳統大促難關?

1)根據壓測與監控結果,看是否有必要優化代碼,或調整 SAE 彈性伸縮政策、AHAS 限流政策。

2)執行壓測,檢視壓測結果,發現存在失敗請求。

3)檢視監控異常,發現存在 GC 異常。通過 SAE 控制台,優化 JVM 參數解決。

4)再次壓測,驗證問題是否解決。

5)如此重複一兩輪,解決其中發現的主要問題,可以更從容地面對大促。

詳細示範過程請點選【視訊課連結】進行觀看。

課程推薦

為了更多開發者能夠享受到 Serverless 帶來的紅利,這一次,我們集結了 10+ 位阿裡巴巴 Serverless 領域技術專家,打造出最适合開發者入門的 Serverless 公開課,讓你即學即用,輕松擁抱雲計算的新範式——Serverless。點選即可免費觀看課程:https://developer.aliyun.com/learning/roadmap/serverless

Serverless 公衆号,釋出 Serverless 技術最新資訊,彙集 Serverless 技術最全内容,關注 Serverless 趨勢,更關注你落地實踐中的遇到的困惑和問題。