性能提升一倍!云原生網(wǎng)關(guān)支持 TLS 硬件加速
隨著網(wǎng)絡(luò)環(huán)境的日漸復(fù)雜,傳統(tǒng) HTTP 明文傳輸協(xié)議帶來的傳輸安全風(fēng)險(xiǎn)也日漸升高,因此 HTTPS 的密文傳輸協(xié)議得到了業(yè)界的普遍認(rèn)可與廣泛應(yīng)用;任何事情都有其兩面性,HTTPS 帶來更高傳輸安全性的同時(shí),由于需要做認(rèn)證及數(shù)據(jù)加解密,相比 HTTP 使用 HTTPS 后使得網(wǎng)站訪問速度變“慢”,且導(dǎo)致服務(wù)器 CPU 消耗變高、從而機(jī)器成本變得更“貴”。
業(yè)界在優(yōu)化 HTTPS 的性能上也做了諸多探索,傳統(tǒng)的軟件優(yōu)化方案有 Session 復(fù)用、OCSP Stapling、False Start、dynamic record size、TLS1.3、HSTS 等, 但軟件層面如何優(yōu)化也無法滿足流量日益增長的速度,加上 CPU 摩爾定律已入暮年,使得專用硬件卸載 CPU 密集型運(yùn)算成為業(yè)界一個(gè)通用解決方案。
一、網(wǎng)關(guān)為什么是 HTTPS 優(yōu)化(TLS 卸載優(yōu)化)的最佳路徑?
網(wǎng)關(guān)作為請求流量進(jìn)入業(yè)務(wù)應(yīng)用的橋頭堡,對于 HTTPS 優(yōu)化這種跨業(yè)務(wù)的通用訴求是非常適合的落腳點(diǎn),具體優(yōu)勢如下:
運(yùn)維降本:網(wǎng)關(guān)統(tǒng)一處理 HTTPS 顯然相比各業(yè)務(wù)分散處理運(yùn)維成本更低。
機(jī)器降本:通常網(wǎng)關(guān)采用集群化的規(guī)模部署,統(tǒng)一 HTTPS 優(yōu)化能夠帶來顯著的機(jī)器成本優(yōu)化。
業(yè)務(wù)提效:網(wǎng)關(guān)處理 HTTPS 后,業(yè)務(wù)只需關(guān)注自身邏輯即可,提升業(yè)務(wù)開發(fā)效率。
二、阿里在硬件加速上的探索
阿里統(tǒng)一接入網(wǎng)關(guān) Tengine 承擔(dān)著集團(tuán)所有的入口流量,隨著 HTTPS 化的全面推進(jìn),對于網(wǎng)關(guān)的性能挑戰(zhàn)也非常大。業(yè)務(wù)驅(qū)動了技術(shù)創(chuàng)新,2017 年接入網(wǎng)關(guān)在硬件加速領(lǐng)域也邁出了第一步,開始嘗試 QAT 卡硬件加速方案。
1.基于 QAT 卡的 TLS 硬件加速方案
整體方案由三部分組成:Tengine的ssl_async 指令、OpenSSL + QAT Engine 及 QAT Driver。其中 Tengine 通過適配 OpenSSL-1.1.0 的異步接口,將私鑰操作卸載至硬件的 QAT engine 中,引擎通過 QAT 驅(qū)動調(diào)用硬件完成非對稱算法取回結(jié)果。方案圖示如下:
方案優(yōu)點(diǎn)
- HTTPS 卸載由獨(dú)立硬件 QAT 完成,不額外增加 CPU 消耗,使用不同的加密套件測試,整體上性能非常好。
方案缺點(diǎn)
- 運(yùn)維成本非常高,獨(dú)立的 QAT 卡需要提前獨(dú)立采購,尤其對于電商大促的突發(fā)流量場景無法做到彈性。
- 在目前容器化部署的大背景下,QAT 的使用有很多穩(wěn)定性問題。
2.基于 CPU Multi-Buffer 特性的 TLS 卸載加速方案
在經(jīng)歷 Tengine QAT 的探索實(shí)踐后,阿里云推出了基于開源 Envoy 構(gòu)建的 MSE 云原生網(wǎng)關(guān)產(chǎn)品,讀到這里有的同學(xué)可能會疑惑為什么選擇 Envoy 而不是內(nèi)部的 Tengine。
阿里云 2021 年發(fā)布了 搭載最新至強(qiáng)處理器 Ice Lake 的 ECS 產(chǎn)品,利用 CPU 的硬件特性使得算力大幅提升 50% 以上。其中提供的 Crypto Acceleration 特性,包括 Vector AES ,通過 multi-buffer lib 配合,能夠加速 AES、 RSA、EC 等密碼學(xué)計(jì)算。利用該特性使得 HTTPS 硬件加速得以擺脫專用硬件加速卡的限制,使用 CPU 內(nèi)置指令結(jié)合 SIMD 機(jī)制也可以大幅提升 HTTPS 的性能?;诖嗽圃W(wǎng)關(guān)率先完成了對其適配,將硬件加速的性能優(yōu)勢帶給用戶,在不增加用戶資源成本的同時(shí)大幅度提升 HTTPS 的性能。
從上圖壓測數(shù)據(jù)可以看出使用 TLS 硬件加速后,相比普通 HTTPS 請求 TLS 握手時(shí)延降低一倍,極限 QPS 提升 80% 以上。
方案壓測
(1)壓測基礎(chǔ)環(huán)境
- 云原生網(wǎng)關(guān)規(guī)格: 1C2G * 1
- 壓測工具:Grafana k6
- 請求大小: 1kb
- 證書:RSA2048
- 加密套件:ECDHE-RSA-CHACHA20-POLY1305(TLS1.2) TLS_AES_256_GCM_SHA384(TLS1.3)
(2)壓測結(jié)論
1C2G 情況下,開啟硬件加速后極限 QPS 提高 80% 以上,TLS 握手時(shí)間降低一倍。注:采用 1C2G 規(guī)格是因?yàn)楦菀子^察單核極限性能。
(3)測試數(shù)據(jù)
TLS版本 | 是否開啟硬件加速 | 并發(fā)度 | QPS | TLS握手平均時(shí)間 | TLS握手最長時(shí)間 |
1.2 | 未開啟 | 200 | 1009 | 98.5ms | 177.37ms |
1.2 | 未開啟 | 500 | 1004 | 313.84ms | 457.56ms |
1.3 | 未開啟 | 200 | 995 | 77.81ms | 177.24ms |
1.3 | 開啟 | 200 | 1886 | 48.71ms | 104.04ms |
1.2 | 開啟 | 200 | 1876 | 59.98ms | 113.55ms |
1.2 | 開啟 | 500 | 1873 | 145.81ms | 262.91ms |
500 并發(fā)沒開啟硬件加速時(shí)的數(shù)據(jù)
500 并發(fā),開啟硬件加速時(shí)的數(shù)據(jù)
方案優(yōu)點(diǎn)
- 無需獨(dú)立硬件支持,運(yùn)維成本低且易于彈性擴(kuò)縮容。
- 適用場景更廣泛。
三、寫在最后
目前硬件加速功能已經(jīng)正式上線,相比自建,您無需關(guān)心底層硬件加速機(jī)器的運(yùn)維就能在同規(guī)格下獲取一倍的 HTTPS 性能提升,具體可參考新建云原生網(wǎng)關(guān)進(jìn)行硬件加速機(jī)器的購買。