性能提升一倍!云原生网关支持 TLS 硬件加速

云计算 云原生
目前硬件加速功能已经正式上线,相比自建,您无需关心底层硬件加速机器的运维就能在同规格下获取一倍的 HTTPS 性能提升,具体可参考新建云原生网关进行硬件加速机器的购买。

随着网络环境的日渐复杂,传统 HTTP 明文传输协议带来的传输安全风险也日渐升高,因此 HTTPS 的密文传输协议得到了业界的普遍认可与广泛应用;任何事情都有其两面性,HTTPS 带来更高传输安全性的同时,由于需要做认证及数据加解密,相比 HTTP 使用 HTTPS 后使得网站访问速度变“慢”,且导致服务器 CPU 消耗变高、从而机器成本变得更“贵”。

业界在优化 HTTPS 的性能上也做了诸多探索,传统的软件优化方案有 Session 复用、OCSP Stapling、False Start、dynamic record size、TLS1.3、HSTS 等, 但软件层面如何优化也无法满足流量日益增长的速度,加上 CPU 摩尔定律已入暮年,使得专用硬件卸载 CPU 密集型运算成为业界一个通用解决方案。

一、网关为什么是 HTTPS 优化(TLS 卸载优化)的最佳路径?

网关作为请求流量进入业务应用的桥头堡,对于 HTTPS 优化这种跨业务的通用诉求是非常适合的落脚点,具体优势如下:

运维降本:网关统一处理 HTTPS 显然相比各业务分散处理运维成本更低。

机器降本:通常网关采用集群化的规模部署,统一 HTTPS 优化能够带来显著的机器成本优化。

业务提效:网关处理 HTTPS 后,业务只需关注自身逻辑即可,提升业务开发效率。

二、阿里在硬件加速上的探索

阿里统一接入网关 Tengine 承担着集团所有的入口流量,随着 HTTPS 化的全面推进,对于网关的性能挑战也非常大。业务驱动了技术创新,2017 年接入网关在硬件加速领域也迈出了第一步,开始尝试 QAT 卡硬件加速方案。

1.基于 QAT 卡的 TLS 硬件加速方案

整体方案由三部分组成:Tengine的ssl_async 指令、OpenSSL + QAT Engine 及 QAT Driver。其中 Tengine 通过适配 OpenSSL-1.1.0 的异步接口,将私钥操作卸载至硬件的 QAT engine 中,引擎通过 QAT 驱动调用硬件完成非对称算法取回结果。方案图示如下:

方案优点

  • HTTPS 卸载由独立硬件 QAT 完成,不额外增加 CPU 消耗,使用不同的加密套件测试,整体上性能非常好。

方案缺点

  • 运维成本非常高,独立的 QAT 卡需要提前独立采购,尤其对于电商大促的突发流量场景无法做到弹性。
  • 在目前容器化部署的大背景下,QAT 的使用有很多稳定性问题。

2.基于 CPU Multi-Buffer 特性的 TLS 卸载加速方案

在经历 Tengine QAT 的探索实践后,阿里云推出了基于开源 Envoy 构建的 MSE 云原生网关产品,读到这里有的同学可能会疑惑为什么选择 Envoy 而不是内部的 Tengine。

阿里云 2021 年发布了 搭载最新至强处理器 Ice Lake 的 ECS 产品,利用 CPU 的硬件特性使得算力大幅提升 50% 以上。其中提供的 Crypto Acceleration 特性,包括 Vector AES ,通过 multi-buffer lib 配合,能够加速 AES、 RSA、EC 等密码学计算。利用该特性使得 HTTPS 硬件加速得以摆脱专用硬件加速卡的限制,使用 CPU 内置指令结合 SIMD 机制也可以大幅提升 HTTPS 的性能。基于此云原生网关率先完成了对其适配,将硬件加速的性能优势带给用户,在不增加用户资源成本的同时大幅度提升 HTTPS 的性能。

从上图压测数据可以看出使用 TLS 硬件加速后,相比普通 HTTPS 请求 TLS 握手时延降低一倍,极限 QPS 提升 80% 以上。

方案压测

(1)压测基础环境

  • 云原生网关规格: 1C2G * 1
  • 压测工具:Grafana k6
  • 请求大小: 1kb
  • 证书:RSA2048
  • 加密套件:ECDHE-RSA-CHACHA20-POLY1305(TLS1.2) TLS_AES_256_GCM_SHA384(TLS1.3)

(2)压测结论

1C2G 情况下,开启硬件加速后极限 QPS 提高 80% 以上,TLS 握手时间降低一倍。注:采用 1C2G 规格是因为更容易观察单核极限性能。

(3)测试数据

TLS版本

是否开启硬件加速

并发度

QPS

TLS握手平均时间

TLS握手最长时间

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 并发没开启硬件加速时的数据

500 并发,开启硬件加速时的数据

方案优点

  • 无需独立硬件支持,运维成本低且易于弹性扩缩容。
  • 适用场景更广泛。

三、写在最后

目前硬件加速功能已经正式上线,相比自建,您无需关心底层硬件加速机器的运维就能在同规格下获取一倍的 HTTPS 性能提升,具体可参考新建云原生网关进行硬件加速机器的购买。

责任编辑:武晓燕 来源: 阿里巴巴中间件
相关推荐

2020-09-20 21:46:00

量子芯片网络

2010-10-08 09:18:06

Ubuntu 10.1GPU硬件加速

2010-01-27 09:17:43

Office 2010GUP加速

2020-11-12 14:58:53

双11云原生阿里云

2021-01-12 09:00:17

FirefoxLinux开发者

2010-09-16 11:09:34

IE 9 Beta评测

2009-12-23 13:55:44

WPF硬件加速

2020-11-16 07:56:45

Windows10

2009-02-02 08:50:42

SilverlightRIA3D图像

2009-02-20 11:09:31

英特尔Nehalem

2010-07-20 16:01:44

GPU硬件加速浏览器

2022-03-23 09:42:01

AP1Firefox浏览器

2020-07-22 14:27:26

腾讯云北京银行APP

2017-12-25 14:29:31

NFV硬加速运营商

2010-06-24 10:59:11

Bzip2算法

2017-02-07 10:56:59

Android硬件加速App

2020-06-10 11:39:52

阿里云计费平台

2017-08-07 18:20:14

Windows 7WindowsCPU

2021-12-02 22:27:49

电脑硬件设置

2009-11-26 11:29:46

Silverlight
点赞
收藏

51CTO技术栈公众号