服务网格GRPC协议多种编程语言实践-序言

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 服务网格(ServiceMesh)最有吸引力的地方是什么呢?可以通过简单的配置即时实现流量管理(包括路由、灰度、切流等功能)。然而,由于缺乏足够的文档和实践分享,导致很多同学很快就从入门到放弃了。为此,我花了3段时间准备这个系列,分别对多种编程语言的GRPC服务开发、容器化、网格化进行了实践和梳理,旨在普及基于GRPC协议ServiceMesh实践的基础知识,以指南的形式让走近服务网格的同学能一葫芦画瓢先跑起来,然后再根据自身业务进行升华,从而降低学习和使用的门槛。

目的

服务网格(ServiceMesh)最有吸引力的地方是什么呢?可以通过简单的配置即时实现流量管理(包括路由、灰度、切流等功能)。然而,由于缺乏足够的文档和实践分享,导致很多同学很快就从入门到放弃了。尤其是基于GRPC协议的实践。

对于HTTP协议的服务而言, 接入服务网格还相对容易。一方面是因为大家对HTTP比较熟悉,另一方面是基于HTTP实践的ServiceMesh文档比较全面。相比而言,GRPC协议的服务网格实践相对困难。一方面是GRPC协议的ServiceMesh文档和实践分享比较稀缺,另一方面是大家对GRPC的熟悉程度远没有HTTP那么高。

为此,我花了3段时间准备这个系列,分别对多种编程语言的GRPC服务开发、容器化、网格化进行了实践和梳理,旨在普及基于GRPC协议ServiceMesh实践的基础知识,以指南的形式让走近服务网格的同学能一葫芦画瓢先跑起来,然后再根据自身业务进行升华,从而降低学习和使用的门槛。

价值

第一,这个系列分享出来会让我有的放矢。

虽然阿里云服务网格(ASM)是基于ACK的一种基础设施,但由于ServiceMesh相对Kubernetes更接近业务而不是基础设施,我们一定会遇到指定编程语言和框架下不可用的问题,也会遇到指定GRPC通信类型、数据类型的问题。

因此,在未来的技术交流和答疑的时候,这个系列中覆盖的4种编程语言和框架(Java/Go/NodeJs/Python)、4种通信模型(Unary RPC/Client streaming RPC/Server streaming RPC/Bidirectional streaming RPC)可以作为沟通的基础。如果能直接解决问题最好,大家都节省时间提高效率;如果没能覆盖或者存在疏漏,我可以持续完善和补充。

第二,声明ASM充分支持标准化。

时下的GRPC协议已经是服务间通信的事实标准,是云原生和微服务生态中的"英语"和"普通话"。因此,我们需要充分展示阿里云服务网格对GRPC协议的支持。分享出来的意义不止是让大家有据可循,也是用事实说明ASM对GRPC协议的支持层度。

结构

我准备的过程是按设计、编码、构建、镜像制作、容器部署、网格配置的步骤进行的。

protobuf和grpc接口方法是基础的基础,所以独立一篇。

对应的编码实现独立一篇。这个过程中对我来说比较困难的一个点是如何使用4种编程语言实现行为一致的代码,另一个困难点是如何实现4种编程语言程序的构建和分发,使得在容器部署后,它们看起来是一个服务的不同deployment。这是本篇的主题。

然后是一篇kube实践和一篇mesh实践。kube实践的过程包括了容器的部署和验证。mesh的实践包括网格配置和验证。

  1. GRPC协议示例的设计
  2. GRPC协议示例的实现
  3. GRPC协议示例的容器实践
  4. GRPC协议示例的网格实践
  5. GRPC协议Headers网格实践

本系列的示例代码:https://github.com/feuyeux/hello-servicemesh-grpc,欢迎交流。

目录
相关文章
|
1月前
|
Cloud Native 测试技术 开发者
阿里云服务网格ASM多集群实践(二):高效按需的应用多环境部署与全链路灰度发布
介绍服务网格ASM提出的一种多集群部署下的多环境部署与全链路灰度发布解决方案。
|
3月前
|
监控 负载均衡 数据安全/隐私保护
探索微服务架构下的服务网格(Service Mesh)实践
【5月更文挑战第6天】 在现代软件工程的复杂多变的开发环境中,微服务架构已成为构建、部署和扩展应用的一种流行方式。随着微服务架构的普及,服务网格(Service Mesh)作为一种新兴技术范式,旨在提供一种透明且高效的方式来管理微服务间的通讯。本文将深入探讨服务网格的核心概念、它在微服务架构中的作用以及如何在实际项目中落地实施服务网格。通过剖析服务网格的关键组件及其与现有系统的协同工作方式,我们揭示了服务网格提高系统可观察性、安全性和可操作性的内在机制。此外,文章还将分享一些实践中的挑战和应对策略,为开发者和企业决策者提供实用的参考。
|
3月前
|
运维 监控 负载均衡
探索微服务架构下的服务网格(Service Mesh)实践之路
【4月更文挑战第30天】 在现代云计算的大背景下,微服务架构以其灵活性和可扩展性成为众多企业转型的首选。然而,随着服务的激增和网络交互的复杂化,传统的服务通信模式已无法满足需求,服务网格(Service Mesh)应运而生。本文通过分析服务网格的核心组件、运作机制以及在企业中的实际应用案例,探讨了服务网格在微服务架构中的关键作用及其带来的变革,同时提出了实施过程中面临的挑战和解决策略。
|
3月前
|
运维 监控 Cloud Native
云原生架构下的服务网格演进与实践
【5月更文挑战第23天】 随着云计算技术的不断成熟,云原生架构已成为推动企业数字化转型的关键动力。本文将深入探讨服务网格在云原生环境中的重要性,分析其在微服务管理、流量控制和安全性方面的创新应用。通过对服务网格的技术和实践案例的剖析,揭示其如何优化云原生应用的部署、运行和管理,为企业构建更加动态、可靠和高效的分布式系统提供策略指导。
|
3月前
|
运维 监控 负载均衡
探索微服务架构下的服务网格(Service Mesh)实践
【4月更文挑战第28天】 在现代云原生应用的后端开发领域,微服务架构已成为一种广泛采用的设计模式。随着分布式系统的复杂性增加,服务之间的通信变得愈加关键。本文将深入探讨服务网格这一创新技术,它旨在提供一种透明且高效的方式来管理、监控和保护微服务间的交互。我们将从服务网格的基本概念出发,分析其在实际应用中的优势与挑战,并通过一个案例研究来展示如何在现有的后端系统中集成服务网格。
|
3月前
|
Kubernetes Cloud Native 测试技术
使用ASM流量泳道的全链路灰度发布实践
服务网格ASM实现全链路灰度发布:通过流量泳道隔离不同版本环境,配置虚拟服务实现灰度比例控制。从创建泳道、打标签、部署新版本到灰度切流、最终上线及下线旧版。
|
12月前
|
运维 Kubernetes Cloud Native
服务网格实施周期缩短 50%,丽迅物流基于阿里云 ACK 和 ASM 的云原生应用管理实践
通过本文介绍丽迅物流关于基于阿里云服务网格 ASM 如何加速企业业务云原生化进程的实践经验。
ASM中GRPC/HTTP2流式传输场景的Sidecar资源占用调优
当应用使用GRPC流式传输时,数据经由Sidecar进行转发,由于Sidecar工作于7层,所以Sidecar会对GRPC消息元信息进行解析后在转发,在一些场景下(例如在单连接上建立大规模Stream)可能会造成Sidecar内存占用提升。本文将介绍Sidecar控制GRPC流式传输性能的相关参数和其作用机制,用户可以通过这些参数对Sidecar资源占用进行调整,已取得运行性能和资源消耗的平衡。S
184 0
ASM中GRPC/HTTP2流式传输场景的Sidecar资源占用调优
|
人工智能 自然语言处理 运维
站酷基于服务网格 ASM 的生产实践
随着站酷业务服务的持续改造,将持续基于阿里云服务网格 ASM 产品,获得更加丰富便捷的企业级特性,助力降本增效。
172 0
站酷基于服务网格 ASM 的生产实践
|
安全 测试技术 微服务
站酷基于服务网格 ASM 的生产实践
随着站酷业务服务的持续改造,将持续基于阿里云服务网格ASM产品,获得更加丰富便捷的企业级特性,助力降本增效,包括但不限于:1、提供便捷的网格内服务安全与鉴权方案:ASM现已提供ASM安全策略中心,可帮助快速配置网关与网格内服务安全鉴权方案。2、更加精细化的流量治理能力:随着站酷微服务化改造的不断加深,将会持续挖掘ASM提供的多项企业级流量治理特性,如全链路灰度发布、本地限流、接口级熔断。
170 1
站酷基于服务网格 ASM 的生产实践