Google服务网格控制平面Traffic Director,现可简单配置gRPC服务间的安全通信

Google更新gRPC无代理服务,解决微服务间通信的安全痛点,开发者通过Traffic Director控制平面,就够简单配置gRPC服务,以TLS/mTLS创建服务之间的安全通信。

gRPC(General-purpose Remote Procedure Calls)是一个由Google发起的开源远程程序调用框架,创建在HTTP/2协议之上,并且使用protobuf作为串行化和反串行化机制,支持各种使用案例和部署模型,能够用于后端服务间的通信,或是不同客户端访问GCP服务的通信,由于gRPC支持多语言环境,因此能够让像是Java客户端,跟由Go语言编写的服务器沟通。

gRPC在现今的微服务架构中,扮演重要的角色,当大型单体应用程序分解成较小的微服务时,单体应用程序组件之间的程序内调用,便需要转变成微服务之间的网络调用,而gRPC让这件事变简单。在去年的时候,Google更新gRPC无代理服务,让用户可以让gRPC客户端能够处理和实例流量管理和负载均衡策略,并且还正式支持Traffic Director作为控制平面。

但是要让gRPC网络调用和程序内调用一样安全是个挑战,而TLS/mTLS便能派上用场,最新版本的gRPC让开发者可以配置政策,以加密服务到服务的通信。Google新提出的解决方案,克服了服务之间的安全性痛点,包括在客户端和服务器上管理和安装证书,或是从可信的CA绑定身份和发布证书,甚至是轮替证书等。

Google提到,在基础设施中提供工作负载身份、CA和证书管理等功能,同时工作负载函数库也在服务网格通信中,利用这些设施来提供服务到服务的TLS/mTLS和身份验证,这将能大幅节省开发人员和管理员的时间。现在用户可以使用Traffic Director配置gRPC服务,在服务之间以自动化的方式,创建安全性功能,只需要在客户端和服务器配置安全策略,Traffic Director就能够将其发布到服务中。

使用这项Google新提供的安全功能,用户就可以替网格中所有服务,快速提供密钥和证书,而密钥和证书也会自动轮替,因此增加了整体安全性,同时还与GKE集成,并且能和以Envoy为基础的服务网格无缝互通,像是服务可以位于Envoy代理之后,但是客户端却使用gRPC无代理服务网格。

Google还会继续更新gRPC无代理服务,增加服务到服务间通信的身份验证功能,并且支持其他部署模型,让gRPC除了在GKE运行,还能在Compute Engine等服务上执行。