Service Mesh 微服务架构设计Mesh 微服务架构设计 杨彪 美团点评高级架构师 2019.10.26 Service Mesh Meetup #7 成都站原蚂蚁金服专家,著有《分布式服务架构:原理、 设计与实战》和《可伸缩服务架构:框架与中间件》 两本书。有近10年互联网、游戏和支付相关的工作 经验,目前从事产业互联网。 杨彪,美团高级架构师1 漫谈服务架构的演进史 2 微服务架构设计的现状 3 Service Service Mesh微服务设计 4 Service Mesh的框架介绍1 漫谈服务架构的演进史 2 微服务架构设计的现状 3 Service Mesh微服务设计 4 Service Mesh的框架介绍我过往的经历情况 类型:传统互联网 模式:CS/BS模式 类型:互联网 模式:单体模式 类型:游戏 模式:单体模式 类型:互联网金融 模式:微服务模式Java版本演进史 JDK J2ME Function20年前春晚 20年后春晚 思考:为什么每年的春晚越来越无聊 其实不是春晚越来越不好,而是观众的需求越来越难满足,服务架构也如此。1 漫谈服务架构的演进史 2 微服务架构设计的现状 3 Service Mesh微服务设计 4 Service Mesh的框架介绍适应变化的微服务是什么样 微服务架构由一组小型的、独立自治的服务组成, 并且实现了业务中单个的完整业务功能。 • 服务和服务之间是独立的、低耦合的;0 码力 | 36 页 | 26.53 MB | 6 月前3
Service Mesh 高可用在企业级生产中的实践5 3 2 6 4 2 7 4 3 • 服务端容灾与节点数14/总页数 注册中心 - Consul • 客户端容灾 客户端缓存 !15/总页数 注册中心 - Consul • 架构设计 • 多地域? • 多租户?16/总页数 通过治理策略保证服务高可用 /0317/总页数 治理策略 & 高可用 描述 N个9 可用性级别 年度停机时间 基本可用 2个9 99% 87.6小时 容量 服务容量不足 依赖服务 响应超时19/总页数 治理策略 & 高可用 • 微服务高可用 设计手段 服务高可用 服务限流 方法容错 负载均衡+ 实例容错 柔性化/异步化 服务冗余 服务分流 存储高可用 熔断20/总页数 治理策略 & 高可用 • 微服务高可用设计手段 • 限流 • 熔断 • 负载均衡+实例容错 Spring Cloud Service Mesh Mesh Config Server SDK Sidecar21/总页数 治理策略 & 高可用 • 微服务高可用设计手段 - 服务限流 • 对于一个应用系统来说一定会有极限并发/请求数,即总有一个TPS/QPS阀值, 如果超了阀值则系统就会不响应用户请求或响应的非常慢,因此我们最好进行过 载保护,防止大量请求涌入击垮系统。 • 服务限流其实是指当系统资源不够,不足以应对大量请求,即系统资源与访问量0 码力 | 38 页 | 1.38 MB | 6 月前3
大规模微服务架构下的Service Mesh探索之路敖小剑6月初在深圳举行的GIAC全球互联网架构大会上,蚂蚁金服第一次对外 透露了开发中的Service Mesh产品——Sofa Mesh。 今天我们将展开更多细节,详细介绍蚂蚁金服Sofa Mesh的技术选型, 架构设计以及开源策略。 前言技术选型 Technical 1ü 性能要求 • 以蚂蚁金服的体量,性能不够好则难于接受 • 架构与性能之间的权衡和取舍需要谨慎考虑 ü 稳定性要求 • 以蚂蚁金服的标准,稳定性的要求自然是很高 可扩展性有限,dtab不易理解和使用 • 功能不能满足蚂蚁的需求,没法做到 类似envoy xds那样的扩展性 • 未来发展前景黯淡 Envoy • 安心做数据平面, 提供XDS API • 设计优秀,性能和稳定性表现良好 • C++编写,和蚂蚁的技术栈差异大 • 蚂蚁有大量的扩展和定制化需求 • 我们非常认可envoy在数据平面上的表现开源方案选择之第二代Service Mesh Istio Mesh在技术选型时考虑 Envoy • 数据平面:Envoy最符合要求 • XDS API的设计更是令人称道 • C++带来的技术栈选择问题 • 我们有太多的扩展和定制 • 而且,proxy不仅仅用于mesh Istio • 控制平面:Istio是目前做的最好的 • 认可Istio的设计理念和产品方向 • 性能和稳定性是目前最大问题 • 对非k8s环境的支持不够理想 • 没有提供和侵入式框架互通的解决方案Sofa0 码力 | 37 页 | 7.99 MB | 6 月前3
Service Mesh 发展趋势(续) 蚂蚁金服 | 骑士到中盘路向何方?• 性能 • 即使使用缓存,在数据路径中同步调用Mixer也会增加端到端延迟 • 进程外适配器进一步增加了延迟 • 授权和认证功能是天然适合mixer pipeline的,但是由于mixer 设计 的延迟和SPOF(单点故障)特性,导致直接在Envoy中实现 (Envoy SDS) • 复杂性 • Mixer使用一组称为模板的核心抽象,来描述传递给适配器的数据。 这些包括“metrics 单: • 运维添加、使用和删除适配器 • 开发人员创建新的适配器(超过20个适配器)合并没问题,如何合并才是问题 Part 2:ServiceMesh灵魂拷问二:性能有了,架构怎么办?Envoy在设计上是可扩展的 Part 2:ServiceMesh灵魂拷问二:性能有了,架构怎么办? 扩展点: ● L4/L7 filters ● Access loggers ● Tracers ● Health WebAssembly是一种新的编码方式,可以在现代的网络浏览器中运行 - 它是一种低级的类汇编语言,具有 紧凑的二进制格式,可以接近原生的性能运行,并为诸如C / C ++等语言提供一个编译目标,以便它们可以 在Web上运行。它也被设计为可以与JavaScript共存,允许两者一起工作。 WebAssembly不是一门编程语言,而是一份字节码标准。 WebAssembly字节码是一种抹平了不同CPU架构的机器码, WebAsse0 码力 | 43 页 | 2.90 MB | 6 月前3
深入 Kubernetes 的无人区-蚂蚁金服双十一的调度系统限流 • DaemonSet 非常高阶,尽量不要采用这类设计,如果必需请在 Kubernetes 专家的辅导下使用;15/19 弹性资源建站 Part 2:双十一 Kubernetes 实践16/19 三、展望未来,迎接挑战 Part 2:17/19 平台与多租户 Part 3:展望未来,迎接挑战 Kubernetes设计的多租户 实际Kubernetes集群里的多租户18/190 码力 | 19 页 | 2.18 MB | 6 月前3
网易云Service Mesh的产品架构与实现163yun.com Service Mesh优缺点163yun.com 二、网易云微服务框架介绍163yun.com 设计思路 • 发现容易搞定,治理难搞定 • 发现不易替换,治理易替换 • 解耦容器平台与微服务 • 解耦服务发现与服务治理163yun.com 设计思路 Agent热加载 兼容SpringCloud,Dubbo框架 控制面租户隔离 适配VPC网络 同IaaS或者Kubernetes解耦0 码力 | 35 页 | 6.33 MB | 6 月前3
Service Mesh 在蚂蚁金服生产级安全实践力。 借鉴社区 SourceLabel 和 Sidecar CRD 的设计思路,创造性提出具备“正交”组合能力的ScopeConfig 方 案 ScopeConfig 方案是通过label selector 能力选择指定范围内(批量 or 单实例)的Pod 实例,同时关 联社区现有CRD,从而实现保留在兼容社区CRD设计方面的灵活性,又能实现任意CRD的更细粒度控 制能力 以TLS 开关为例,在发布TLS开关时,先提交0 码力 | 19 页 | 808.60 KB | 6 月前3
SOFAMOSN持续演进路径及实践分享RPC亲和,高度可扩展性 的Golang转发系统 • 开发活跃,最新版为0.4.0 • 蚂蚁+UC主导,重点搭载 SOFAMesh使用,目标服 务通用场景,金融场景SOFAMOSNSOFAMOSN内部模块设计SOFAMOSN数据流SOFAMOSN数据流持续演进路径 & 技术案例能力 0.1.0 0.2.0 0.3.0 0.4.0 Ø TCP代理/7层通用代理 Ø 简单匹配路由 Ø 集群管理 & <-> MOSN<-> Service p Client模拟方式:通过蚂蚁内部压测平台建立10w条SOFARPC链接 p 压测内容: 1K 请求/响应持续演进实践总结 ü 架构上,从一开始就遵循分层设计,模块解耦,统一编程模型接口,保证足够的架 构扩展性。 ü 性能上,针对IO、协议、内存、协程进行持续优化。相比最初版本,SOFARPC 协 议上对 0.1.0 版本 QPS 提升了 50%,内存使用减少了0 码力 | 29 页 | 7.03 MB | 6 月前3
Service Mesh的实践分享因为是内部项目,优雅性和治理效果之间,选择 了后者 App Local Proxy OSP OSP client App Envoy App EnvoyClient端不基于IPTable劫持 • Istio的设计很美好,但现实总是很残酷 • IPTable性能不总是足够好 • 任何组件都有不可用的时候。客户端无论如何都要有自切换的能力和可 用的备份 • 尽量减少外部组件依赖。业务/运维总会有各种特殊的需求,依赖外部组 由、熔断、健康探测、超时重试、 限流降级等等 • 契约化治理,服务接口变更diff并 通知上游 • 环境无关,物理机、云、测试机 器、本机都能跑实践中踩过的坑 我是作者名称ZooKeeper的强耦合 • 初始设计没有抽象服务注册发现和服务配 置的接口,直接操作ZK并且依赖了ZK的特 性和原语 • ZK弊端显现 • 跨机房多活问题 • 性能问题 • 宠物对待 • API不友好问题 • 不能unwatch0 码力 | 30 页 | 4.80 MB | 6 月前3
Apache SkyWalking 在 Service Mesh 中的可观察性应用Mesh 中的可观察性应用 高洪涛 Tetrate 创始工程师Who 高洪涛 美国S ervice Mesh 服务商 Tetrate 创始工程师。原华为软件开发云技术专家,对云原 生产品有丰富的设计,研发与实施经验。对分布式数据库,容器调度,微服务, ServicMesh 等技术有深入的了解。 目前为 Apache ShardingSphere 和 Apache SkyWalking 核心贡献者0 码力 | 29 页 | 1.38 MB | 6 月前3
共 14 条
- 1
- 2













