使用阿里云服务网格 ASM 和 Intel Multi-Buffer 技术实现更快的应用服务间加密通信|学习笔记

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 快速学习使用阿里云服务网格 ASM 和 Intel Multi-Buffer 技术实现更快的应用服务间加密通信

开发者学堂课程【使用阿里云服务网格 ASM 和 Intel Multi-Buffer 技术实现更快的应用服务间加密通信:使用阿里云服务网格 ASM 和 Intel Multi-Buffer 技术实现更快的应用服务间加密通信】学习笔记,与课程紧密联系,让用户快速学习知识。  

课程地址:https://developer.aliyun.com/learning/course/976/detail/14897


使用阿里云服务网络 ASM 和 Intel Mul ti-Buffer 技术实现更快的应用服务间加密通信

内容介绍

一、启用服务网格技术带来的优势和性能挑战

二、使用阿里云 ASM 和 Intel Mul ti-Buffer 技术实现两全其美

三、客户案例即 Demo 演示

一、启用服务网格技术带来的优势和性能挑战

1.启用服务网格

服务网格作为云延伸应用通信的基础设施层,已经成为客户应用、服务透明通信之间首选通信架构。

服务网格的架构模式目的:抽象微服务的标准非方面性功能力,将能力作为外部组件,以Macchine/pad方式存在。

服务网格模式通过两层定义,包括控制平面与数据平面,其中数据平面与业务应用层接口。

控制平面管理与微服务之间通信的策略,数据层面负责具体实施和执行控制层面所描述的策略。

数据层面由一系列的sidecar组成,通过服务sidecar代理,可以有效的控制流量管理,通信安全,以及可观性能力。

由此可见控制平面作为服务网格的大脑,为开发人员、业务人员或SRE人员提供统一方式解决应用服务管理问题。

图片1.png

2.安全数据传输和零信任安全

在服务网格传输过度过程,零信任安全十分重要 。零信任安全可以使用双向的TLS为每个服务发出的请求提供加密能力,安全的数据传输也会贯通整个数据链路当中,包括流量管理,比如从外部的应用请求到入口网端的证书加载,以及涉及东西向服务之间的调用过程中涉及的TLS认证等,包括从网格内访问外部服务请求等。

三、安全数据传输角度,handshake主要负责实现零信任安全问题,确保通信之间使用TLS进行加密,但在使用双向TLS和TLS的握手环节,一定会增加任务与任务之间的调用延迟,所以在使用服务网格的优势同时,性能问题使得服务网格并不完美。


二、使用阿里云 ASM 和 Intel Mul ti-Buffer 技术实现两全其美

1.Intel 讲解

Intel认为网络通信安全对于未来互联网业务具有十分重要的意义,其中设计的加减密操作,通常消耗大量cpu资源,如作为网络安全基石的TLS企业技术的实现,在大规模微服务场景下可能成为瓶颈。

intel在最新的第三代至强可扩展处理器引入了Crypto Acceleration技术和架构创新,大幅度提高了一些加解密操作的性能指标。

这些技术包括

Public-Key Cryptography 、Symmetric Encryption 、Hashing 、FUnction stitching 、Multi-Buffer技术。

图片2.png

Multi-Buffer使用AVX-512指令同时处理多个独立的缓冲区,既可以在一个执行周期内同时执行多个加解密操作,加解密的执行效率便会得到成倍的提升。

如图所示

图片3.png

为使用Multi-Buffer技术,intel提供intel integrated performance primitives (Intel ipp)cryptograthy软件库,其中crypto-mb字库专门针对RSA  ECDSA算法做了Multi-Buffer的算法实现

2.Envoy TLS

在云原生领域中ENVOY是专门为微服务架构设计的高性能网络代理。Envory在微服务器或数据链中需要处理大量TLS请求,

其中Envory通过boringSSL进行相关操作实现。

其中boringssl提供Private key provider的特性使用户可以使用外部加解密功能。原理是boringSLL将签名和加密操作通过自定义轨道函数交由外部组件执行,完成后再由boringSLL完成其他处理过程。

MUlti-Buffer extensin的实现,已经集成到envoy社区,目前做istio项目的集成工作。

第三代英特尔至强处理器和MUlti-Buffer技术使用ax512制定级,阿里云第七代云服务器中同样提供若干不同识别类型。基于指令集以及MB技术的envoy上游社区能力,阿里云ASM控制台提供一键启用基于MUlti-Buffer的TLS加解密性能优化的配置选项。

图片4.png

3.异步下的 TLS 握手增强

首先,同步的TLS处理,握手调用会被阻塞,直到完成为止。

异步的TLS处理,握手的操作不受阻塞因为握手操作会立即返回。 基于AVX的指令操作机制,提交后无需返回,即可进行下一个,一旦完成后,便基于每一个请求调用callback完成整个技术处理,基于整个multi-buffer加解密处理的能力可并行处理八个异步操作,并且使用AVX-512指令集的并行操作,可幅度提升性能。

图片5.png

4.阿里云支持 multi-buffer

阿里云支持multi-buffer具体操作,可分为三个点

(1)在服务网格控制面板,可通过扩展Meshconflg支持全局的multi-buffer的配置,或者通过ProxyConflg支持work6级别的相关配置,在未启用multi-buffer时TLS的配置仅需要包含private_key,一旦启用multi-buffer,TLS角色改变则需要private_key_provider即cryptomb,相应provider处理消息有其固定类型,包括两个字段即private key 以及poll-delay。 用来设置每个线程处理队列应当执行的等待时间,目的控制延迟和吞吐量之间的off

(2)控制链的配置可以通过TLS协议,下发到Envoy数据代理,涉及到ENVOY UPstream包含boringSSL的异步处理能力并结合intel 开源的IPP Crypto Library、cryptomb private key provider 等组件,结合intel AVX-512加解密功能以及的上游代码库,服务网格ASM产品可有效的去提升TLS握手的处理效益从而处理更多链接降低延迟,用于其余活动之中

(3)工作负载POD调度通过per cpuid Flags或者机器的型号,ASM可以将启用了multi-buffer功能的pod调度到Ice Lake处理器机型上。

五、图片6.png


三、客户案例即Demo展示

1.案例展示

在案例中为500多个提供查询的子域名,每个字域名服务于不同的业务单元来接受不同的请求。

通过应用multi-buffer技术后,请求处理效率提升2倍,此外特定的业务处理板块需要启用一定的策略,启用服务网格的策略后TLS握手相关性能同样提升两倍之多。

图片7.png

2.Demo 展示

在阿里云服务网格ASM中结合intel multi-buffer技术进行TLS过程的加速实验

创建专业版ASM对应实例,选择对应版本,暴露API Sever。演示开启前,未开启加速,等待创建完成。

图片8.png

初始化完成后,对数据链集成进行添加,选择业务集群,在ASM管控中,部署测试使用资源

图片9.png

打开ASM网关,正在创建ASM实例

此时处理字数为1024字数每秒。开启multiBuffer功能,在ASM功能设置界面,开启multiBuffer功能优化,此时测试开启后性能。

输入sh perf .sh enable

开启后处理请求为2396次请求每秒,和之前相比由80%左右提升。

相关文章
|
2月前
|
网络协议 安全 网络安全
中间人攻击之未加密的通信
【8月更文挑战第12天】
42 2
|
5月前
|
安全 数据安全/隐私保护 Python
【计算巢】端到端加密通信:保障即时通讯的安全性
【5月更文挑战第31天】端到端加密通信确保了信息在传输过程中的安全,防止他人窥探和篡改。只有通信双方能解密消息,类似使用只有两人才能打开的锁。通过一个简单的Python加密代码示例展示了加密原理。理解并掌握端到端加密对于保护个人及企业信息安全至关重要。在信息时代,注重隐私和安全,利用加密技术保障通信安全。
66 1
|
20天前
|
存储 NoSQL Java
|
3月前
|
存储 网络安全 数据安全/隐私保护
[flask]使用mTLS双向加密认证http通信
【7月更文挑战第16天】在Flask应用中实现mTLS双向TLS加密认证可增强HTTP通信安全性。步骤包括: 1. 使用OpenSSL为服务器和客户端生成证书和密钥。 2. 配置Flask服务器使用这些证书: - 安装`flask`和`pyopenssl`. - 设置SSL上下文并启用mTLS验证: 注意事项: - 保持证书有效期并及时更新. - 确保证书链信任. - 充分测试mTLS配置.
|
2月前
|
安全 网络安全 数据安全/隐私保护
[flask]使用mTLS双向加密认证http通信
[flask]使用mTLS双向加密认证http通信
|
2月前
|
网络协议 应用服务中间件 Go
[golang]使用mTLS双向加密认证http通信
[golang]使用mTLS双向加密认证http通信
|
3月前
|
NoSQL 数据库 Redis
|
3月前
|
安全 网络协议 网络安全
SSL(Secure Sockets Layer)是一种安全协议,用于在客户端和服务器之间建立加密的通信通道。
SSL(Secure Sockets Layer)是一种安全协议,用于在客户端和服务器之间建立加密的通信通道。
|
4月前
|
人工智能 安全 Go
使用阿里云服务网格 ASM LLMProxy 插件保障大模型用户数据安全
本文介绍如何使用ASM LLMProxy动态为LLM请求添加API_KEY、使用模式匹配以及私有大模型判别请求敏感信息并根据判别结果拒绝请求等功能,帮助用户提升LLM场景下的安全水位。
|
4月前
|
负载均衡 Kubernetes 算法
服务网格 ASM 负载均衡算法全面解析
在本文中,笔者将解析服务网格的多种负载均衡算法的实现原理和使用场景,为服务网格负载均衡算法的选择提供参考。
下一篇
无影云桌面