精准容量、秒级弹性,压测工具 + SAE 方案如何成功突破传统大促难关?
作者 | 代序 阿里云云原生技術(shù)團(tuán)隊(duì)
本文整理自《Serverless 技術(shù)公開(kāi)課》,“Serverless”公眾號(hào)后臺(tái)回復(fù)“入門”,即可獲取系列文章 PPT。
**導(dǎo)讀:**本次課程介紹在 SAE 場(chǎng)景下,如何借助壓測(cè)工具與 SAE 彈性能力來(lái)應(yīng)對(duì)大促的實(shí)踐。主要包含 3 部分要點(diǎn):傳統(tǒng)大促面臨的挑戰(zhàn)、SAE 大促方案以及快速壓測(cè)驗(yàn)證。
傳統(tǒng)大促挑戰(zhàn)
一次常見(jiàn)的大促活動(dòng),技術(shù)人員通常會(huì)從下面幾個(gè)方面著手,進(jìn)行準(zhǔn)備工作:
- **架構(gòu)梳理:**對(duì)參與大促的服務(wù),進(jìn)行系統(tǒng)性的架構(gòu)梳理;
- **容量規(guī)劃:**結(jié)合架構(gòu)梳理,確定系統(tǒng) SLA 指標(biāo),形成容量模型,幫助業(yè)務(wù)進(jìn)行評(píng)估;
- **性能測(cè)試:**核心系統(tǒng)的單機(jī)容量評(píng)估,與核心鏈路全鏈路壓測(cè),可以驗(yàn)證容量模型,發(fā)現(xiàn)系統(tǒng)存在的問(wèn)題;
- **應(yīng)用/數(shù)據(jù)庫(kù)優(yōu)化:**對(duì)發(fā)現(xiàn)的系統(tǒng)問(wèn)題,譬如熱點(diǎn)、死鎖或慢 SQL 等,進(jìn)行優(yōu)化,確保系統(tǒng)可以支撐大促;
- **準(zhǔn)備擴(kuò)容方案:**通過(guò)容量規(guī)劃與性能測(cè)試,可以確定一套滿足活動(dòng)需求的擴(kuò)容方案,既保障業(yè)務(wù),又降低成本;
- **應(yīng)急預(yù)案準(zhǔn)備:**當(dāng)遇到突發(fā)情況如何應(yīng)對(duì),譬如業(yè)務(wù)降級(jí),砍掉非核心邏輯,或者限流降級(jí),保障核心鏈路穩(wěn)定;
- **大促在線應(yīng)急保障:**專人專項(xiàng),對(duì)問(wèn)題進(jìn)行響應(yīng),執(zhí)行應(yīng)急預(yù)案。
要完成上述準(zhǔn)備工作,經(jīng)常會(huì)遇到如下痛點(diǎn):
- **系統(tǒng)核心全鏈路,缺少全局關(guān)系視角。**需要花大量時(shí)間,整理依賴關(guān)系。
- **鏈路上下游問(wèn)題、定位問(wèn)題比較耗時(shí)。**壓測(cè)與在線應(yīng)急保障過(guò)程中,匯總鏈路上下游問(wèn)題,定位問(wèn)題比較耗時(shí),缺少快速定位分析工具。
- **業(yè)務(wù)開(kāi)發(fā)迭代快,需要常態(tài)化壓測(cè)支持。**大量重復(fù)性人力投入,給大家造成很大負(fù)擔(dān)。
- **預(yù)留資源成本高,需要頻繁擴(kuò)縮容。**需要產(chǎn)品化支持自動(dòng)彈性伸縮,降低自建機(jī)房等高成本高閑置的固定投入。
SAE 大促解決方案
首先,SAE 是一款面向應(yīng)用的 Serverless PaaS 平臺(tái),在傳統(tǒng) PaaS 功能之外,提供了完備的全鏈路監(jiān)控、微服務(wù)管理等能力,并借助 Serverless 能力,最大程度進(jìn)行快速擴(kuò)縮容、降低手工運(yùn)維成本。
SAE 提供的解決方案,將從三方面入手:
- **指標(biāo)可視化:**借助應(yīng)用監(jiān)控 ARMS 提供豐富的 JVM、全鏈路 Tracing 、慢 SQL 等功能,便捷地評(píng)估水位、定位問(wèn)題;
- 應(yīng)用高可用:借助 AHAS 限流降級(jí)能力,流量激增時(shí),保護(hù)核心服務(wù),保障可用性不完全跌 0;
- **性能壓測(cè):**借助壓測(cè)工具如 PTS,模擬單機(jī)壓測(cè)或全鏈路壓測(cè),驗(yàn)證容量規(guī)劃、發(fā)現(xiàn)應(yīng)用問(wèn)題。
快速壓測(cè)驗(yàn)證
那么如何通過(guò) SAE ,進(jìn)行一次快速的大促壓測(cè)驗(yàn)證呢?下面將進(jìn)行一次完整的展示:
第一步:觀察應(yīng)用監(jiān)控指標(biāo),大致擬定彈性/壓測(cè)/限流降級(jí)
通過(guò)觀察應(yīng)用監(jiān)控,對(duì)日常業(yè)務(wù)的監(jiān)控指標(biāo),有一個(gè)大致的概念。以一個(gè)典型的電商類應(yīng)用為例。
從監(jiān)控情況看:
- 該應(yīng)用為 HTTP 微服務(wù)應(yīng)用;
- 應(yīng)用依賴大量 HTTP 微服務(wù)調(diào)用,少量使用 Redis / MySQL 服務(wù),適合使用單機(jī) + 分布式壓測(cè)工具,分別進(jìn)行壓測(cè);
- QPS 指標(biāo),相比 CPU、MEM 和 RT 指標(biāo),對(duì)業(yè)務(wù)更敏感,更適合作為彈性策略指標(biāo)。
第二步:選擇合適的壓測(cè)工具
根據(jù)業(yè)務(wù)訴求,可以選擇快速使用的工具,或功能完整的壓測(cè)工具。
- 譬如單機(jī) HTTP 壓測(cè)工具 ab、wrk,可以提供簡(jiǎn)單快速的壓測(cè)方式,但只支持單機(jī)、不支持上下文。
- 如果我們需要支持 WebSocket 、常態(tài)化壓測(cè),云產(chǎn)品 PTS 可以提供較為完整的服務(wù),相比自建成本更低。
第三步:配置 SAE 彈性伸縮策略 + AHAS 限流降級(jí)策略
無(wú)需精準(zhǔn)設(shè)置,選擇一些合適的指標(biāo),配置 SAE 彈性伸縮策略,或額外配置 AHAS 限流策略 / ARMS 告警。
- 對(duì) API 類型,可通過(guò)對(duì) API QPS、SQL QPS 等指標(biāo)進(jìn)行限流,保障超過(guò)系統(tǒng)水位的請(qǐng)求,快速 failover,降低對(duì)容量?jī)?nèi)業(yè)務(wù)的 SLA;并選擇應(yīng)用監(jiān)控指標(biāo) QPS、RT,配置彈性規(guī)則,讓系統(tǒng)進(jìn)行彈性伸縮;
- 對(duì)于計(jì)算型應(yīng)用,則可選擇更敏感的指標(biāo),如 CPU、Memory 對(duì)應(yīng)用進(jìn)行擴(kuò)縮容。
第四步:執(zhí)行壓測(cè) – 觀察結(jié)果 – 優(yōu)化代碼 – 調(diào)整策略配置
1)根據(jù)壓測(cè)與監(jiān)控結(jié)果,看是否有必要優(yōu)化代碼,或調(diào)整 SAE 彈性伸縮策略、AHAS 限流策略。
2)執(zhí)行壓測(cè),查看壓測(cè)結(jié)果,發(fā)現(xiàn)存在失敗請(qǐng)求。
3)查看監(jiān)控異常,發(fā)現(xiàn)存在 GC 異常。通過(guò) SAE 控制臺(tái),優(yōu)化 JVM 參數(shù)解決。
4)再次壓測(cè),驗(yàn)證問(wèn)題是否解決。
5)如此重復(fù)一兩輪,解決其中發(fā)現(xiàn)的主要問(wèn)題,可以更從容地面對(duì)大促。
詳細(xì)演示過(guò)程請(qǐng)點(diǎn)擊【視頻課鏈接】進(jìn)行觀看。
課程推薦
為了更多開(kāi)發(fā)者能夠享受到 Serverless 帶來(lái)的紅利,這一次,我們集結(jié)了 10+ 位阿里巴巴 Serverless 領(lǐng)域技術(shù)專家,打造出最適合開(kāi)發(fā)者入門的 Serverless 公開(kāi)課,讓你即學(xué)即用,輕松擁抱云計(jì)算的新范式——Serverless。點(diǎn)擊即可免費(fèi)觀看課程:https://developer.aliyun.com/learning/roadmap/serverless
Serverless 公眾號(hào),發(fā)布 Serverless 技術(shù)最新資訊,匯集 Serverless 技術(shù)最全內(nèi)容,關(guān)注 Serverless 趨勢(shì),更關(guān)注你落地實(shí)踐中的遇到的困惑和問(wèn)題。
總結(jié)
以上是生活随笔為你收集整理的精准容量、秒级弹性,压测工具 + SAE 方案如何成功突破传统大促难关?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何提升微服务的幸福感?
- 下一篇: Fluid 0.3 新版本正式发布:实现