Service Mesh结合容器云平台的思考和实践易于访问的外围(负载均衡) • 服务注册和发现 致富问题 • 认证和授权 • 智能路由 • 流量管理 • 服务降级 • … • 微服务拆分原则 • 业务API设计 • 数据一致性保证 • 可扩展性考虑 • …Kubernetes对于微服务的支撑 功能列表 详情 快速资源分配 容器编排和调度 服务部署&弹性伸缩 Deployment 服务注册&服务发现 Service概念和分布式DNS 载服务发现、负载均衡、TLS终止、HTTP/2 & gRPC流量代理、熔断、健康检查等功能。 • Mixer 翻译过来是混音器,Mixer负责在整个Service Mesh中实施访问控制和使用策略。Mixer是一个可扩展组 件,内部提供了多个模块化的适配器(adapter)。 • Pilot 翻译过来是领航员,Pliot对Envoy的生命周期进行管理,同时提供了智能路由(如A/B测试、金丝雀部 署)、流量 置ProxyConfig对象。下面分析几个相对重 要的配置。 role pilot-agent的role类型为model包下的Proxy,决定了pilot-agent的“角色”,role包括以下属性: 1.Type pilot-agent有三种运行模式。根据role.Type变量定义,类型为model.Proxy,定义在context.go文件中,允许的3个取值范围为: i. "sidecar"0 码力 | 28 页 | 3.09 MB | 6 月前3
Service Mesh 微服务架构设计Mesh 微服务架构设计 杨彪 美团点评高级架构师 2019.10.26 Service Mesh Meetup #7 成都站原蚂蚁金服专家,著有《分布式服务架构:原理、 设计与实战》和《可伸缩服务架构:框架与中间件》 两本书。有近10年互联网、游戏和支付相关的工作 经验,目前从事产业互联网。 杨彪,美团高级架构师1 漫谈服务架构的演进史 2 微服务架构设计的现状 3 Service 漫谈服务架构的演进史 2 微服务架构设计的现状 3 Service Mesh微服务设计 4 Service Mesh的框架介绍我过往的经历情况 类型:传统互联网 模式:CS/BS模式 类型:互联网 模式:单体模式 类型:游戏 模式:单体模式 类型:互联网金融 模式:微服务模式Java版本演进史 JDK J2ME J2SE J2EE Java SE 2004年 Java SE 5.0 微服务架构由一组小型的、独立自治的服务组成, 并且实现了业务中单个的完整业务功能。 • 服务和服务之间是独立的、低耦合的; • 每个服务都尽量小,小到一个小团队能够很好的维护它; • 服务可独立部署,每次部署不会影响其他服务; • 每个服务都各自负责自己的数据和状态的存储,独立数据库; • 服务和服务之间通过设计良好的API接口通信,不暴露具体的实 现细节; • 各服务不需要统一0 码力 | 36 页 | 26.53 MB | 6 月前3
微博Service Mesh实践· BeiJing 趋势 �6 微博Service Mesh实践 - WeiboMesh 微服务 1 容器器化 2 DevOps 3 云原⽣生 4 服务治理理与业务逻辑解耦,可持续交付跨语⾔言服务化⾯面临的问题 • 改造成本 • 服务治理理Service Mesh Meetup · BeiJing 改造成本 �8 微博Service Mesh实践 - WeiboMesh e Mesh Meetup · BeiJing 跨语⾔言服务化的本质 �10 微博Service Mesh实践 - WeiboMesh • 协议中⽴立/跨语⾔言 数据交互 • 全⾯面/灵活可扩展 服务治理理Service Mesh Meetup · BeiJing 跨语⾔言服务化⽅方式对⽐比 �11 微博Service Mesh实践 - WeiboMesh Http代理理 RPC模块 BeiJing Weibo Mesh 数据⾯面 �17 微博Service Mesh实践 - WeiboMesh ➢ Cluster(发现集群管理理,group + path) ➢ HA(⾼高可⽤用策略略) ➢ LB(负载均衡) ➢ Endpoint(服务节点的抽象) ➢ Protocol(Motan2/传输协议+Simple/序列列化协议)Service Mesh Meetup · BeiJing0 码力 | 43 页 | 1007.85 KB | 6 月前3
SOFAMOSN持续演进路径及实践分享场景 • Rust实现 • CNCF项目,最早的 Service Mesh数据平面 • 开发活跃,最新版为 18.9.1 • Golang实现 • 新生项目,初期旨在搭建 RPC亲和,高度可扩展性 的Golang转发系统 • 开发活跃,最新版为0.4.0 • 蚂蚁+UC主导,重点搭载 SOFAMesh使用,目标服 务通用场景,金融场景SOFAMOSNSOFAMOSN内部模块设计SOF 并充分优化了性能,目前已经在蚂蚁、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 管理后台5/24 服务治理能力 – 基于严选第一代ServiceMesh(cNginx) 类型 功能 能力提供方 服务调用方(Client) 服务提供方(Server) 服务注册与发现 注册发现:基于 Consul √ 调用控制 协议支持:HTTP 1.X/2.X,可扩展至 TCP √ 路由控制:提供简单的路由能力 √ 负载均衡:支持 RR、权重、一致性 Hash 等 √ Service Mesh 解决方案 • 数据面:Envoy • 控制面:Pilot,Mixer,Citadel,Galley10/24 功能视角 - 服务治理能力 – 基于Istio+Envoy 类型 功能 能力提供方 服务调用方(Client) 服务提供方(Server) 服务注册与发现 注册发现:云外基于 Consul,云内基于 K8s 默认的 ETCD √ 调用控制 协议支持:HTTP0 码力 | 25 页 | 2.07 MB | 6 月前3
金融级云原生 PaaS 探索与实践机房|地域5/20 业务背景 业务架构 单元化 • 高可用 • 一致性 • 可扩展 • 高性能6/20 业务背景 业务诉求 • 运维成本 突发流量应用 | 机房 生命周期 • 运维效率 大规模下基础设施稳定性 • 业务 Mesh 化 精细化流量控制 基础组件升级 • 业务可复制 业务敏捷 SaaS 面向站点级别输出7/20 PaaS 能力 • 容灾切换和恢复 应急预案管理 … 分钟级容灾切换和恢复 全面变更风险管理 无限弹性可扩展 业务架构 产品层 云原生 PaaS 产品架构方案 7/209/20 二、多集群管控 多集群管控10/20 为什么要有集群联邦 • 异构屏蔽: 底层集群变化; • 统一管控: 业务弹性建站管控统一; • 可扩展: 多租硬隔离; 体量(单集群内节点数 1w+,Pod 10w+),集群数量多; Upgrade 机房A – 单元A • 精准分组,自定义拓扑 • IP不变,无损升级 • 可适配多种工作负载 • InPlaceSet • ReplicaSet • StatefulSet 可灰度: • 应用发布进程可控,允许灰度、 分组和 Beta 验证; 可回滚: • 随时暂停、回滚,任何变更有 据可查; 可监控: • 接入监控告警体系,全程保证 可观测性 partition:3 partition:50 码力 | 20 页 | 1.71 MB | 6 月前3
蚂蚁金服ServiceMesh数据平面 SOFAMosn深层揭秘构架SOFAMesh 1SOFAMosn 2SOFAMosn内数据流 3NET/IO 4 Ø屏蔽IO处理细节 Ø定义网络链接生命周期,事件机制 Ø定义可编程的网络模型,核心方法,监控指标 Ø定义可扩展的插件机制PROTOCOL 5 Ø定义编解码核心数据结构 üMesh处理三段式:Headers + Data + Trailers Ø定义协议Codec核心接口 ü编码:对请求数据进行编码并根据控制指令发送数据 Ø定义Stream层编/解码核心接口 ü 核心数据结构复用Protocol层 Ø定义可扩展的插件机制 Ø对于满足请求Stream池化的需求 Ø需处理上层传入的状态事件PROXY 7 Ø基于Stream抽象提供多协议转发能力 Ø执行Stream扩展Filters Ø提供可扩展的路由寻址能力 Ø提供可扩展的后端管理,负载均衡,健康检查能力 Ø维护上/下游核心指标转发流程 8 IO Read r data Log Writer Pool send encode Q u e u e C模块划分 11要点总结 12 Ø模块化,分层解耦 Ø统一的编程模型接口 Ø可扩展的事件驱动模型 Ø可扩展的路由/后端管理机制 Ø更好的吞吐量3 能力核心能力 1 网络处理 •网络编程接口 •链接管理 •事件机制 •Metrics 收集 •TCP 代理 •TLS 支持 •TProxy0 码力 | 44 页 | 4.51 MB | 6 月前3
大规模微服务架构下的Service Mesh探索之路回馈社区,反哺开源 维持版本更新,同步升级 未来肯定会开源 可扩展和可定制化是必备的 可 控 性 社 区 支 持 技术输出 内部落地 如何让开源产品接受我们的改动? 如何让社区和客户认可我们的产品?开源方案选择之第一代Service Mesh Linkerd • 无控制平面 • Scala编写,基于JVM资源消耗大 • 可扩展性有限,dtab不易理解和使用 • 功能不能满足蚂蚁的需求,没法做到0 码力 | 37 页 | 7.99 MB | 6 月前3
Service Mesh 发展趋势(续) 蚂蚁金服 | 骑士到中盘路向何方?读取配置 -> 连接k8s/Galley • Adapter的运行时资源开销 • 不受Adapter增减/更新/升级影响 • 保持Proxy代码简单 • 保持Proxy代码简单 • 数据平面可替换原则 Kubernete s API Server Adapters ConfigurationsOut-of-process Adapter 7/39 Istio的新回答:架构继续优先,性能继续放一边 • 数据平面可替换原则 • 集中式服务: • 提高基础设施后端的可用性 • 为前提条件检查结果提供集群级别的全局2级缓存 • 灵活的适配器模型,使其以下操作变得简 单: • 运维添加、使用和删除适配器 • 开发人员创建新的适配器(超过20个适配器)合并没问题,如何合并才是问题 Part 2:ServiceMesh灵魂拷问二:性能有了,架构怎么办?Envoy在设计上是可扩展的 Part 上运行服务网格的规 范。它定义了由各种供应商实现的通用标准。这 使得最终用户的标准化和服务网格供应商的创新 可以两全其美。SMI 实现了灵活性和互操作 性。” “SMI API的目标是提供一组通用的,可移植的 Service Mesh API,Kubernetes用户可以以 供应商无关的方式使用这些API。通过这种方式, 可以定义使用Service Mesh技术的应用程序, 而无需紧密绑定到任何特定实现。”Linkerd0 码力 | 43 页 | 2.90 MB | 6 月前3
蚂蚁金服 API Gateway Mesh 思考与实践GoPlugin ScriptFilter File Istio xds rest api k8s configmap config file mobile openapi mgs15/21 可灰度 可回滚 可监控 蚂蚁金服「三板斧」 API Gateway Mesh 落地挑战 风险 运维 性能 功能 上线不是一件容易的事 Golang 历史债清理 sian->protobuf ead->goroutine0 码力 | 22 页 | 1.72 MB | 6 月前3
共 19 条
- 1
- 2













