基于龙蜥操作系统指令加速,降低云原生网关的构建成本

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 微服务引擎MSE面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持Nacos/ZooKeeper/Eureka)、云原生网关(原生支持Ingress/Envoy)、微服务治理(原生支持Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。

技术背景

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

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


CPU新特性

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


ISA 指令集

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

1 Ice Lake 新增Intel AVX512指令集

image.png

Multi-buffer

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

2 Multi-buffer配合SIMD加速

image.png


龙蜥操作系统

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

3 系统OpenSSL基础性能

image.png

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

image.png


加速软件栈

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

5 Intel SSL/TLS加速软件栈

image.png


Tengine加速方案

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

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



云原生网关演进

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


传统网关

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

6 传统网关

image.png


MSE云原生网关

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

7 下一代网关的产品画像

image.png

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

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

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

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

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

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

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

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

8 云原生网关

image.png

MSE云原生网关优势:

1.    网关直连业务Pod IP,不经过传统Cluster IPRT更低。

2.    支持HTTPS硬件加速,QPS提升80%

3.    支持Wasm插件市场,插件热加载,满足用户多语言自定义插件诉求。

4.    自研Multi-Ingress Controller组件支持多集群Ingress复用同一个网关实例。

5.    原生兼容原生K8s Ingress规范,且支持Nginx Ingress核心功能注解的无缝转换。

 

9 云原生网关技术架构

image.png


客户案例分析

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

10 费芮客户迁移云原生网关

image.png

业务配置

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


11 云原生网关开启硬件加速

image.png


加速效果

加速前:

image.png

加速后:

1C2G压测HTTPS QPS1004提升到1873,提升约86%

TLS握手RT313.84ms降到145.81ms,下降一倍。

image.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-281884

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

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

10.  crypto-acceleration-enabling-path-future-computing

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
23天前
|
安全 Anolis
龙蜥社区落地开源生态发展合作倡议,构建开放兼容的操作系统生态
通过共同努力,三个社区基于服务器操作系统场景,在操作系统内核等关键共性技术链统一方面达成了一致。
|
5天前
|
存储 人工智能 调度
容器服务:智算时代云原生操作系统及月之暗面Kimi、深势科技实践分享
容器技术已经发展成为云计算操作系统的关键组成部分,向下高效调度多样化异构算力,向上提供统一编程接口,支持多样化工作负载。阿里云容器服务在2024年巴黎奥运会中提供了稳定高效的云上支持,实现了子弹时间特效等创新应用。此外,容器技术还带来了弹性、普惠的计算能力升级,如每分钟创建1万Pod和秒级CPU资源热变配,以及针对大数据与AI应用的弹性临时盘和跨可用区云盘等高性能存储解决方案。智能运维方面,推出了即时弹性节点池、智能应用弹性策略和可信赖集群托管运维等功能,进一步简化了集群管理和优化了资源利用率。
|
25天前
|
人工智能 缓存 异构计算
云原生AI加速生成式人工智能应用的部署构建
本文探讨了云原生技术背景下,尤其是Kubernetes和容器技术的发展,对模型推理服务带来的挑战与优化策略。文中详细介绍了Knative的弹性扩展机制,包括HPA和CronHPA,以及针对传统弹性扩展“滞后”问题提出的AHPA(高级弹性预测)。此外,文章重点介绍了Fluid项目,它通过分布式缓存优化了模型加载的I/O操作,显著缩短了推理服务的冷启动时间,特别是在处理大规模并发请求时表现出色。通过实际案例,展示了Fluid在vLLM和Qwen模型推理中的应用效果,证明了其在提高模型推理效率和响应速度方面的优势。
云原生AI加速生成式人工智能应用的部署构建
|
5天前
|
人工智能 Cloud Native 大数据
DataWorks深度技术解读:构建开放的云原生数据开发平台
Dateworks是一款阿里云推出的云原生数据处理产品,旨在解决数据治理和数仓管理中的挑战。它强调数据的准确性与一致性,确保商业决策的有效性。然而,严格的治理模式限制了开发者的灵活性,尤其是在面对多模态数据和AI应用时。为应对这些挑战,Dateworks进行了重大革新,包括云原生化、开放性增强及面向开发者的改进。通过Kubernetes作为资源底座,Dateworks实现了更灵活的任务调度和容器化支持,连接更多云产品,并提供开源Flowspec和Open API,提升用户体验。
|
19天前
|
Cloud Native
邀您参加云原生高可用技术沙龙丨云上高可用体系构建:从理论到实践
云原生高可用技术专场,邀您从理论到实践一起交流,探索云上高可用体系构建!
|
25天前
|
供应链 安全 Cloud Native
阿里云容器服务助力企业构建云原生软件供应链安全
本文基于2024云栖大会演讲,探讨了软件供应链攻击的快速增长趋势及对企业安全的挑战。文中介绍了如何利用阿里云容器服务ACK、ACR和ASM构建云原生软件供应链安全,涵盖容器镜像的可信生产、管理和分发,以及服务网格ASM实现应用无感的零信任安全,确保企业在软件开发和部署过程中的安全性。
|
25天前
|
人工智能 Kubernetes Cloud Native
阿里云容器服务,智算时代云原生操作系统
2024云栖大会,阿里巴巴研究员易立分享了阿里云容器服务的最新进展。容器技术已成为云原生操作系统的基石,支持多样化的应用场景,如自动驾驶、AI训练等。阿里云容器服务覆盖公共云、边缘云、IDC,提供统一的基础设施,助力客户实现数字化转型和技术创新。今年,阿里云在弹性计算、网络优化、存储解决方案等方面进行了多项重要升级,进一步提升了性能和可靠性。
|
30天前
|
Cloud Native JavaScript Docker
云原生技术:构建现代应用的基石
在数字化转型的浪潮中,云原生技术如同一艘承载梦想的航船,引领企业驶向创新与效率的新海域。本文将深入探索云原生技术的核心价值,揭示其如何重塑软件开发、部署和运维模式,同时通过一个简易代码示例,展现云原生应用的构建过程,让读者领略到云原生技术的魅力所在。