Service Mesh的实践分享Istio的设计很美好,但现实总是很残酷 • IPTable性能不总是足够好 • 任何组件都有不可用的时候。客户端无论如何都要有自切换的能力和可 用的备份 • 尽量减少外部组件依赖。业务/运维总会有各种特殊的需求,依赖外部组 件会给自定义需求带来障碍。 • 保持客户端选择proxy的自由度和灵活性,在我们的实践中好处大 于坏处胖客户端 vs. service mesh vs. cluster 胖客户端 不同Pod的流量特征差异很大 • 如何保证每个pod都有足够的Proxy资源,防止被某些Pod吃光? • 根据来源Pod IP进行流量统计 • 超过流量阈值临时切换到remote proxy • 返回的消息带特殊header,SDK感知该header并进行切换 • 被切走的客户端每10s切换回来local proxy,若仍然超限会再被切走 • 默认单IP限流值是2w qps今年计划(Roadmap) 我是作者名称Roadmap0 码力 | 30 页 | 4.80 MB | 6 月前3
蚂蚁金服Service Mesh渐进式迁移方案在k8s未铺开前,先向前迈进一步,避免卡壳 ü 缺点 • 存在少量的投资浪费(不过和拿到的红利相比是值得的) ü 存在变数 • 是Sidecar模式的Service Mesh普及快?还是k8s普及快 ü 结论: • 特殊时期(k8s铺开前)的选择 演进路线4分析 部署在 非k8s上 Service Mesh (Sidecar模式) 部署在K8s上 Service Mesh (Sidecar模式) 4 4 背景3:最近确认k8s将加快普及,启动路线1,会师路线4 第一步:k8s 全面铺开 第三步:接入 (完善后的)Istio, 和社区方案统一 第二步:引入 Sidecar,对接 周边生态 特殊:已经在路 线4上演进的应用, 快速会师到路线11 Service Mesh演进路线 2 2 实现平滑迁移的关键 3 4 5 总结 DNS寻址方案的演进 DNS寻址方案的后续规划保证迁移前后服务间网络互通0 码力 | 40 页 | 11.13 MB | 6 月前3
陌陌Service Mesh架构实践单个Pod升级Agent • 多个Pod发布编排 Agent发布流程19/24 数据平面容灾方式 服务类应用 • 场景:出流量由入流量产生 • 方案:由原有健康检测机制摘除流量 借助原有服务治理能力 特殊应用 • 场景:流式计算、定时任务 • 方案:出流量降级至本应用的其他Agent 出流量容灾20/24 数据平面性能优化 方案整体 • 新增MOA Mesh协议 • 减少decode请求体开销0 码力 | 25 页 | 1.25 MB | 6 月前3
Service Mesh Meetup #3 深圳站Istio 提供一种简单的方式来为已部署的服务建立网络,该网络具有 负载均衡、服务间认证、监控等功能,而不需要对服务的代码做任 何改动。 • 想要让服务支持 Istio,只需要在您的环境中部署一个特殊的 sidecar 代理,使用 Istio 控制平面功能配置和管理代理,拦截微服务之间的 所有网络通信。Istio 的特点 • HTTP、gRPC、WebSocket 和 TCP 流量的自动负载均衡。0 码力 | 45 页 | 18.62 MB | 6 月前3
Service Mesh结合容器云平台的思考和实践置ProxyConfig对象。下面分析几个相对重 要的配置。 role pilot-agent的role类型为model包下的Proxy,决定了pilot-agent的“角色”,role包括以下属性: 1.Type pilot-agent有三种运行模式。根据role.Type变量定义,类型为model.Proxy,定义在context.go文件中,允许的3个取值范围为: i. "sidecar" 命令的对应flag来提供用户自定义值。如果用户不提供,则会在proxy命令执行时,根据istio连接 的服务注册中心(service registry)类型的不同,会采用不同的配置方式。agent当前使用的具体service registry类型保存在 pilot-agent的registry变量里,在init函数中初始化为默认值Kubernetes。当前只处理以下三种情况: • Kubernetes 其中的private ip通过WaitForPrivateNetwork函数获得。 istio需要从服务注册中心(service registry)获取微服务注册的情况。当前版本中istio可以对接的服务注册中心类型包括: 1."Mock" MockRegistry is a service registry that contains 2 hard-coded test services. 2. "Config"0 码力 | 28 页 | 3.09 MB | 6 月前3
大规模微服务架构下的Service Mesh探索之路Registry的adapter,提供 超大规模服务注册和发现的解决方案 3. 增加服务注册的API 2. 增加数据同步 功能,配合edge sidecar实现跨域 和异构的数据交换Edge Sidecar: 东西向服务间通讯的特殊桥梁 服务注册中心 Cluster-2 Service-B Edge Sidecar Service-B Service-B Edge Sidecar Edge Sidecar0 码力 | 37 页 | 7.99 MB | 6 月前3
Service Mesh 微服务架构设计漫谈服务架构的演进史 2 微服务架构设计的现状 3 Service Mesh微服务设计 4 Service Mesh的框架介绍我过往的经历情况 类型:传统互联网 模式:CS/BS模式 类型:互联网 模式:单体模式 类型:游戏 模式:单体模式 类型:互联网金融 模式:微服务模式Java版本演进史 JDK J2ME J2SE J2EE Java SE 2004年 Java SE 5.00 码力 | 36 页 | 26.53 MB | 6 月前3
微博Service Mesh实践Header ➢ 消息类型 ➢ 协议版本 ➢ 序列列化协议(body) Metadata ➢ 服务名 ➢ ⽅方法名 ➢ 系统参数及⽤用户参数 Body ➢ response ➢ RequestService Mesh Meetup · BeiJing Simple 序列列化 �22 微博Service Mesh实践 - WeiboMesh 基础类型 复合类型 type(1b0 码力 | 43 页 | 1007.85 KB | 6 月前3
SOFAMOSN持续演进路径及实践分享并充分优化了性能,目前已经在蚂蚁、UC生产环境进行了验证。落地实践案例蚂蚁落地 – 应用接入 ü 适用于蚂蚁当前的服务发现 体系 ü 通过中间件通道对应用推送 MOSN调用地址 ü 通过扩展cluster类型的方式 动态获取配置中心后端 ü MOSN出向路由基于明确的 服务依赖关系生成 ü 服务通过 id:version 定义 ü 适用于SOA化服务,标准微 服务 ü 适用于跨语言通信的场景蚂蚁落地 复杂路由 ü 基于链式路由机制扩展,使 用router match,subset等 开源能力实现 ü 适配蚂蚁三地五中心机房部 署,LDC/弹性架构 ü 蚂蚁内部划分R/G/C三种 zone类型,每个Zone的能 力不保证对等 ü 适用于单次简单路由无法解 决的复杂架构场景(如非对 等路由,不确定当前zone 是否有该服务的提供方) Service A MOSN 深圳机房 上海机房0 码力 | 29 页 | 7.03 MB | 6 月前3
严选 ServiceMesh 实践架构 • 使用 Consul 作为服务发现组件 • 数据面:cNginx • 控制面:Consul 管理后台5/24 服务治理能力 – 基于严选第一代ServiceMesh(cNginx) 类型 功能 能力提供方 服务调用方(Client) 服务提供方(Server) 服务注册与发现 注册发现:基于 Consul √ 调用控制 协议支持:HTTP 1.X/2.X,可扩展至 TCP √ Service Mesh 解决方案 • 数据面:Envoy • 控制面:Pilot,Mixer,Citadel,Galley10/24 功能视角 - 服务治理能力 – 基于Istio+Envoy 类型 功能 能力提供方 服务调用方(Client) 服务提供方(Server) 服务注册与发现 注册发现:云外基于 Consul,云内基于 K8s 默认的 ETCD √ 调用控制 协议支持:HTTP0 码力 | 25 页 | 2.07 MB | 6 月前3
共 11 条
- 1
- 2













