性能提升1倍,成本直降50%!基于龙蜥指令加速的下一代云原生网关

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 什么是下一代网关?

vcg_918124550348079104_RF.jpeg

文 / Intel Arch SIG

技术背景

网络信息传输的可靠性、机密性和完整性要求日渐提升,HTTPS 协议已经广泛应用。HTTPS 的 SSL/TLS 协议涉及加解密、校验、签名等密码学计算,消耗较多 CPU 计算资源。因此 CPU 硬件厂商推出过多种加速卸载方案,如 AES-NI、QAT、KAE、ARMv8 安全扩展等。


业界软件生态在优化 HTTPS 的性能上也做了诸多探索(参考[1]),传统的软件优化方案有 Session 复用、OCSP Stapling、False Start、dynamic record size、TLS1.3、HSTS 等, 但软件层面的优化无法满足流量日益增长的速度,CPU 硬件加速成为业界一个通用的解决方案。

CPU 新特性

不久前发布的第三代英特尔®至强®可扩展处理器(代号 Ice Lake),单核性能提升 30%,整机算力提升 50% 以上(参考[9])


ISA 指令集

在传统的 AES-NI 加速指令基础上,Ice Lake 新增了基于 Intel® Advanced Vector Extensions 512Intel® AVX-512)的 Intel® Crypto Acceleration 特性,包括 Vector AES(VAES)、Integer Fused Multiply Add(IFMA 大数计算)、Galois Field New Instructions(GFNI)等(参考[2])。同时也补充支持了 SHA extension(SHA-NI),补足了上一代的 SHA256 性能短板。

640 (24).png

(图 1/ Ice Lake 新增 Intel AVX512 指令集)

Multi-buffer

Multi-buffer 是一种集中批量请求进行并发处理的技术(参考[10])。应用软件通过异步 SSL 配合 multi-buffer library 使用 SIMD 向量指令(AVX/AVX2/AVX512)加速密码学计算。OpenSSL (BabaSSL,BoringSSL)、Nginx (Tengine)、DPDK Cryptodev、dm-crypt、ISA-L 等开源软件生态已部分支持。

640 (25).png

(图 2/ Multi-buffer 配合 SIMD 加速)


龙蜥操作系统(Anolis OS)

阿里云操作系统通过龙蜥社区和 Intel 工程师合作(参考[2]),率先支持云上 Ice Lake CPU,输出了最新的指令加速特性(参考[10])。Ice Lake 单核 AES 性能加速 2.2 倍,达到上一代 Cascade Lake 的 3.4 倍。RSA 单核加速 4.9 倍,达到上一代的 5.1 倍。Tengine (Nginx)单核 SSL/TLS 握手性能相应地加速 3.1 倍,达到上一代的 3.2 倍

640 (26).png

(图 3/系统 OpenSSL 基础性能)

640 (27).png

(图 4/端到端应用HTTPS TLS短连接性能(左图 Tengine、右图 Nginx))

加速软件栈

受益于以往的 QAT 方案,OpenSSL、Nginx (Tengine)、DPDK、Envoy 等主流软件已经支持 SSL/TLS 加速。Intel®Crypto Acceleration 方案沿用和扩展了 QAT 的软件框架 QAT Engine(参考[2]),使之从专用的硬件加速卡场景扩展到了通用的 CPU 指令加速场景,极大扩展了适用范围。

640 (28).png

(图 5/ Intel SSL/TLS 加速软件栈)

Tengine 加速方案

阿里统一接入网关 Tengine 承担着集团所有的入口流量(参考[1]),随着 HTTPS 化的全面推进,对于网关的性能挑战也非常大。业务驱动了技术创新,2017 年接入网关在硬件加速领域也迈出了第一步,开始尝试 QAT 卡硬件加速方案。在经历 Tengine QAT 的探索实践后,阿里云推出了基于开源 Envoy 构建的 MSE 云原生网关产品(参考[5])

Tengine 从 2.2.2 版本开始支持 async SSL,支持 QAT 加速 SSL/TLS(参考[3]),支持的底层 lib 版本为:OpenSSL-1.1.0f 和 QAT_Engine-0.5.30(参考[4])。龙蜥 OS 引入 CPU 加速后升级到:OpenSSL-1.1.1g 和 QAT_Engine-0.6.6,不需要 QAT 驱动和 qatlib。

云原生网关演进

阿里巴巴在 2018 年,开启了云原生上云的序幕,将容器、服务网格作为核心技术点进行演进,并尝试阿里巴巴和蚂蚁通过这次技术演进,来统一双方的中间件技术栈,让业务更聚焦业务开发,屏蔽底层分布式复杂度。作为服务网格一个重要方向,我们开启了下一代网关的探索之路。

传统网关

传统网关通过流量网关与业务网关两层网关来构建(参考[1]),流量网关提供全局性的、与后端业务无关的策略配置,例如 Tengine 就是典型的流量网关;业务网关提供独立业务域级别的、与后端业务紧耦合策略配置,随着应用架构模式从单体演进到现在的分布式微服务,业务网关也有了新的叫法 - 微服务网关。

640 (29).png

(图 6/传统网关)

MSE 云原生网关

在容器技术与 K8s 主导的云原生时代,下一代的网关模式仍然会是传统的流量网关与微服务网关的两层架构吗?带着这个问题,并结合阿里巴巴内部沉淀的网关技术与运维经验,我们尝试来回答下,什么是下一代网关。

640 (30).png

(图 7/下一代网关的产品画像)

我们对其中几个非常核心的要素展开说明下:

云原生:要支持标准 K8s Ingress、K8s Gateway API 以及 K8s 服务发现,在云原生时代,K8s 已经成为云 OS,而 K8s 原生集群内外部的网络是隔离的,负责外部流量进入,K8s 集群的规范定义就是 K8s Ingress,K8s Gateway API 是 K8s Ingress 的进一步演化,基于此,作为下一代网关,势必要支持这种特性。

拥抱开源:要基于开源生态构建网关,借助开源并助力开源,相信这点大家应该都不陌生。

高扩展:任何一个网关的能力都不可能覆盖所有的用户诉求,要具备可扩展能力,例如 K8s 的蓬勃发展其开放的扩展能力功不可没。

服务治理:随着应用架构演进到分布式微服务,网关本身就是为后端业务提供流量调度能力,其支持基本的服务治理能力也就顺其自然了。

丰富的可观测性:分布式微服务架构带来协同效率提升等益处的同时,对于问题排查及运维带来了更大的挑战,作为流量桥头堡的网关需要具备丰富的可观测数据,帮助用户来定位问题。

基于以上的分析和实践,我们认为在容器和 K8s 主导的云原生时代,Ingress 成为 K8s 生态的网关标准,赋予了网关新的使命,使得流量网关 + 微服务网关合二为一成为可能。

MSE 云原生网关将流量网关与微服务网关(Ingress)二合一,通过硬件加速、内核调优等手段在性能不打折的情况下,用户部署网关的资源成本直降 50%。

640 (31).png

(图 8/云原生网关)

MSE 云原生网关优势:

  • 网关直连业务 Pod IP,不经过传统 Cluster IP,RT 更低。
  • 支持 HTTPS 硬件加速,QPS 提升 80%。
  • 支持 Wasm 插件市场,插件热加载,满足用户多语言自定义插件诉求。
  • 自研 Multi-Ingress Controller 组件支持多集群 Ingress 复用同一个网关实例。
  • 原生兼容原生 K8s Ingress 规范,且支持 Nginx Ingress 核心功能注解的无缝转换。

640 (32).png

(图 9/云原生网关技术架构 )

客户案例分享

上海费芮网络科技有限公司之前一直使用 Nginx Ingress,使用过程中遇到运维成本高、安全差、原生功能弱等痛点,期望能够找到一款替代产品;在接触 MSE 云原生网关后,在上线前的测试过程中对于 HTTPS 硬件加速功能非常认可,测试验证开启后的加速效果非常明显;结合网关提供的 Nginx Ingress 注解兼容功能 + HTTPS 硬件加速两个差异功能,用户最终选择使用 MSE 云原生网关来替代 Nginx Ingress 网关。

640 (33).png

(图 10/费芮客户迁移云原生网关)

业务配置

MSE 云原生网关已经将 HTTPS 硬件加速功能产品化,只需要在购买时开启即可,开启后的示意图如下:

640 (34).png

(图 11/云原生网关开启硬件加速)

加速效果

加速前:

640 (35).png

加速后:

  • 1C2G 压测 HTTPS QPS 从 1004 提升到 1873,提升约 86%。
  • TLS 握手 RT 从 313.84ms 降到 145.81ms,下降一倍。

640 (36).png

方案优点:

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

参考链接:

[1] https://developer.aliyun.com/article/870630

[2] https://openanolis.cn/sig/crypto/doc/390714951012679780

[3]https://tengine.taobao.org/changelog_cn.html

[4]http://tengine.taobao.org/document_cn/tengine_qat_ssl_cn.html

[5]https://www.aliyun.com/product/aliware/mse

[6] https://developer.aliyun.com/article/941940

[7] 3rd-Gen-Intel-Xeon-Scalable-Platform-Press-Presentation:

https://newsroom.intel.com/wp-content/uploads/sites/11/2021/04/3rd-Gen-Intel-Xeon-Scalable-Platform-Press-Presentation-281884.pdf

[8] https://01.org/kubernetes/solutions/QAT-envoy-solution

[9]https://developer.aliyun.com/article/783678

[10] crypto-acceleration-enabling-path-future-computing:

https://newsroom.intel.com/articles/crypto-acceleration-enabling-path-future-computing

[11] Intel arch SIG链接地址:

https://openanolis.cn/sig/Intel-Kernel

[12] 商密软件栈 SIG 地址: https://openanolis.cn/sig/crypto

—— 完 ——

加入龙蜥社群

加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。欢迎开发者/用户加入龙蜥社区(OpenAnolis)交流,共同推进龙蜥社区的发展,一起打造一个活跃的、健康的开源操作系统生态!

9BDB98E1-D326-4418-B8F8-6F04E9352300.png

关于龙蜥社区

龙蜥社区(OpenAnolis)是由企业单位、事业单位、社会团体、个人等在共建、共治、共享的基础上组成的非营利性开源社区。龙蜥社区成立于 2020 年 9 月,旨在构建一个开放、平等、协作、创新的 Linux 上游发行版社区及创新平台。


龙蜥社区成立的短期目标是开发龙蜥操作系统(Anolis OS)作为 CentOS 停服后的应对方案,构建一个兼容国际 Linux 主流厂商的社区发行版。中长期目标是探索打造一个面向未来的操作系统,建立统一的开源操作系统生态,孵化创新开源项目,繁荣开源生态。


目前,Anolis OS 8.6 已发布,更多龙蜥自研特性,支持 X86_64 、RISC-V、Arm64、LoongArch 架构,完善适配 Intel、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密和机密计算支持。


欢迎下载:

https://openanolis.cn/download

加入我们,一起打造面向未来的开源操作系统!

https://openanolis.cn

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
3月前
|
存储 缓存 Cloud Native
MPP架构数据仓库使用问题之ADB PG云原生版本的扩缩容性能怎么样
MPP架构数据仓库使用问题之ADB PG云原生版本的扩缩容性能怎么样
MPP架构数据仓库使用问题之ADB PG云原生版本的扩缩容性能怎么样
|
14天前
|
Cloud Native API
微服务引擎 MSE 及云原生 API 网关 2024 年 9 月产品动态
微服务引擎 MSE 及云原生 API 网关 2024 年 9 月产品动态。
|
3月前
|
Kubernetes Cloud Native Java
云原生之旅:从容器到微服务的演进之路Java 内存管理:垃圾收集器与性能调优
【8月更文挑战第30天】在数字化时代的浪潮中,企业如何乘风破浪?云原生技术提供了一个强有力的桨。本文将带你从容器技术的基石出发,探索微服务架构的奥秘,最终实现在云端自由翱翔的梦想。我们将一起见证代码如何转化为业务的翅膀,让你的应用在云海中高飞。
|
3月前
|
人工智能 缓存 Cloud Native
用 Higress AI 网关降低 AI 调用成本 - 阿里云天池云原生编程挑战赛参赛攻略
《Higress AI 网关挑战赛》正在火热进行中,Higress 社区邀请了目前位于排行榜 top5 的选手杨贝宁同学分享他的心得。本文是他整理的参赛攻略。
529 72
|
18天前
|
人工智能 Cloud Native 安全
从云原生到 AI 原生,网关的发展趋势和最佳实践
本文整理自阿里云智能集团资深技术专家,云原生产品线中间件负责人谢吉宝(唐三)在云栖大会的精彩分享。讲师深入浅出的分享了软件架构演进过程中,网关所扮演的各类角色,AI 应用的流量新特征对软件架构和网关所提出的新诉求,以及基于阿里自身实践所带来的开源贡献和商业能力。
|
19天前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 09 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
2月前
|
Cloud Native API
微服务引擎 MSE 及云原生 API 网关 2024 年 8 月产品动态
微服务引擎 MSE 及云原生 API 网关 2024 年 8 月产品动态。
|
2月前
|
Cloud Native 关系型数据库 Serverless
基于阿里云函数计算(FC)x 云原生 API 网关构建生产级别 LLM Chat 应用方案最佳实践
本文带大家了解一下如何使用阿里云Serverless计算产品函数计算构建生产级别的LLM Chat应用。该最佳实践会指导大家基于开源WebChat组件LobeChat和阿里云函数计算(FC)构建企业生产级别LLM Chat应用。实现同一个WebChat中既可以支持自定义的Agent,也支持基于Ollama部署的开源模型场景。
291 12
|
2月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 08 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
3月前
|
运维 Cloud Native 容灾
核心系统转型问题之云原生分布式核心运维成本如何降低
核心系统转型问题之云原生分布式核心运维成本如何降低

热门文章

最新文章