开发者学堂课程【使用阿里云服务网格 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人员提供统一方式解决应用服务管理问题。
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技术。
Multi-Buffer使用AVX-512指令同时处理多个独立的缓冲区,既可以在一个执行周期内同时执行多个加解密操作,加解密的执行效率便会得到成倍的提升。
如图所示
为使用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加解密性能优化的配置选项。
3.异步下的 TLS 握手增强
首先,同步的TLS处理,握手调用会被阻塞,直到完成为止。
异步的TLS处理,握手的操作不受阻塞因为握手操作会立即返回。 基于AVX的指令操作机制,提交后无需返回,即可进行下一个,一旦完成后,便基于每一个请求调用callback完成整个技术处理,基于整个multi-buffer加解密处理的能力可并行处理八个异步操作,并且使用AVX-512指令集的并行操作,可幅度提升性能。
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处理器机型上。
五、
三、客户案例即Demo展示
1.案例展示
在案例中为500多个提供查询的子域名,每个字域名服务于不同的业务单元来接受不同的请求。
通过应用multi-buffer技术后,请求处理效率提升2倍,此外特定的业务处理板块需要启用一定的策略,启用服务网格的策略后TLS握手相关性能同样提升两倍之多。
2.Demo 展示
在阿里云服务网格ASM中结合intel multi-buffer技术进行TLS过程的加速实验
创建专业版ASM对应实例,选择对应版本,暴露API Sever。演示开启前,未开启加速,等待创建完成。
初始化完成后,对数据链集成进行添加,选择业务集群,在ASM管控中,部署测试使用资源
打开ASM网关,正在创建ASM实例
此时处理字数为1024字数每秒。开启multiBuffer功能,在ASM功能设置界面,开启multiBuffer功能优化,此时测试开启后性能。
输入sh perf .sh enable
开启后处理请求为2396次请求每秒,和之前相比由80%左右提升。