Service Mesh的实践分享
编码难度 容易。IDL接口规范 容易。IDL接口规范 难。需要自行处理HTTP请求和 响应(目前还没有生成HTTP sdk) 应用侵入性 侵入性大。复杂客户端会给 应用造成负担,包括资源占 用、依赖冲突等等 侵入性小。SDK只有简单的寻址和序列化/ 反序列化的功能 无侵入性。应用自行调用 运维难度 难度大。客户端的问题会对 应用直接产生影响,耦合太 重 难度小。Sidecar故障可以将流量临时切到 remote proxy解决 难度小。集群通过LVS接入,单 台机故障可以下线 升级难度 难度极大。需要客户端修改 代码、发布、上线。 难度小。切换流量到remote proxy可以实 现用户无感知的无损升级。 难度小。通过LVS摘流量滚动升 级 动态扩容难度 应用内置,无须扩容 物理机sidecar单客户端,无须扩容 Daemonset根据宿主机的配置调整Proxy的 资源以应对客户端增多的情况。容量超标 remote proxy解决 升级难度 难度大。升级Sidecar需要业务容器一起发布,协调成本 高,而且全量升级sidecar对整个系统的动荡太大 难度小。切换流量到remote proxy可以实现用 户无感知无损升级。可以轻易的实现全网一月 一升级,快速的迭代、落地、反馈 动态扩容难度 单机使用,无须扩容 需预先根据宿主机的配置调整Proxy的资源以 应对客户端增多的情况。容量超标则临时转移 到remote0 码力 | 30 页 | 4.80 MB | 5 月前3Nacos架构&原理
连接⽣命周期 心跳保活机制 Nacos 架构 < 48 类型 TCP netty mina grpc rsocket tb remote 心跳保活机制 keepalive 机 制:通道无读 写事件时,发 送心跳包检 测,可设置超 时时间,间隔 次数 1.设置 TCP 参数 2.自定义心 跳 IdeHandl er,监听通道 读写事件 1.自定义心 跳,KeepAli 支持 支持 无 rpc 语意 无 rpc 语意 future 支持 不支持 支持 支持 无 rpc 语意 无 rpc 语意 callback 结合 guava 实现 不支持 支持 支持 (依赖 jdk 1. 8+ complet ableFutur e) 无 rpc 语意 无 rpc 语意 服务端推送 sync 无 ack 支持 支持 支持 无 rpc 语意 无 rpc 语意 future 不支持 支持 支持 支持 无 rpc 语意 无 rpc 语意 callback 不支持 支持 支持 支持 无 rpc 语意 无 rpc 语意 Nacos 架构 < 50 grpc WebSocket tbr emo t e (阿里自研 协议) Rsocket netty mina 连接生命周 期 客户端感知 断连 无 (基于 strea m流 error0 码力 | 326 页 | 12.83 MB | 9 月前3Service Mesh的延伸 — 论道Database Mesh
Available - 基本可用 Soft state -软状态 Eventual consistency - 最终一致性分布式事务:分类 XA 最大努力送达 Saga TCC 业务改造 无 无 实现补偿接口 实现TCC接口 回滚 支持 不支持 支持 支持 一致性 强一致 最终一致 最终一致 最终一致 隔离性 原生支持 不支持 不支持 Try接口支持 并发性能 严重衰退 无影响 无影响 INSERT 隔离级别 • 无隔离 • 版本控制 • 记录锁 • 影子表弹性伸缩:数据迁移 迁移监听 在线双写 离线迁移 数据源切换 冗余数据清 理治理监控 配置动态化 负载均衡 熔断 & 禁用 安全 & 权限 & 脱敏 APM现有实现方案对比 客户端 • 支持任意数据库 • 数据库连接数占用高 • 仅支持单一开发语言 • 性能损耗低 • 无中心化 代理端 • 仅支持单一数据库 损耗略高 损耗低 无中心化 是 否 是 静态入口 无 有 无 Sidecar的优势Database Mesh架构图Sharding-Sphere 核心功能 数据分片 分布式事务 数据库治理 弹性伸缩 管控界面 实现方案 Sharding-JDBC Sharding-Proxy Sharding-Sidecar Sharding -Sphere 云原生 无中心 零侵入Sharding0 码力 | 35 页 | 4.56 MB | 5 月前3在网格的边缘试探:企业 Istio 试水指南
没有能力/不想维护Istio源码 • 业务负载不算大Istio不能做什么 • 提高代码质量 • 增强负载能力 • 改善交付流程 • 客户充满 Love • 开发需求保持 PeaceIstio能做什么? • 几乎全部功能都无需侵入 • 监控服务质量 • 控制服务间的访问路由 • 跟踪服务链路 • 应对服务故障 • 在服务间通信之间进行加密 • 访问控制和频率限制 • …Istio目前的突出问题 • API稳定性问题:流量管 • 监控和告警部署 • 连接Alertmanager/… • 指标输出方案测试 • 根据性能和功能测试方案完成测试。 • 如果性能下滑,可以尝试扩张资源。 • 如果无法达成测试目标,建议取消——无侵入的好处就是可以撤 退。 • 评估关联服务的工作情况——尤其是重试、超时特性的应用切换演练 • 在测试版本和后备版本之间根据预案进行切换。 • 验证相关服务的工作状况。 • 最终保障试点上线 •0 码力 | 19 页 | 11.41 MB | 5 月前3SOFAMesh的通用协议扩展
方式落地微服务应用 • 使用 INTERFACE 作为 DNS 来寻址服务 • 开发一个通用协议处理框架 • 避免为不同的微服务框架修改 PILOT 代码 • 通过插件的方式按需支持新的协议 • 对应用代码无侵入性 • 为微服务框架提供轻量化客户端落地一个微服务框架需要的工作 • 部署 ZK 集群作为 RPC 框架的注册中心 • 开发 ZK Platform Adapter for DUBBO • 开发 Service RPC Service 关联到一个 Kubernetes 服务 RPC Service 的域名就是其接口X-PROTOCOL 通用协议扩展目标 • Kubernetes Native,高性能,低侵入性的通用 Mesh 落地方案 • 支持新 RPC 框架和通信协议低成本接入 • 协议扩展对 Mesh 控制平面透明化 • 允许对协议多层次,插件化的扩展X-PROTOCOL 配置SOFA MOSN0 码力 | 28 页 | 4.73 MB | 5 月前3金卫-Apache APISIX 借助 Service Mesh 实现统一技术栈的全流量管理
安全防护 服务网格的痛点 方案众多,各有缺陷 与基础设施整合成本高 性能损耗 资源的额外消耗 扩展难度高 理想的服务网格应该是什么样? 易于扩展 理想的服务网格 业务无感知 落地成本低 动态且增量配置 安全管控 可观测 流量精细化管理 跨集群部署 性能损耗低 资源消耗低 按需下发配置 理想的服务网格 整体使用体验上 • 学习和上手成本低 • 社区开放、活跃度高 且快速响应 丰富的文档,快速上手 抽象出来的网关对象通俗易懂 源码基于 lua 易学易懂 二次开发相比 C++ 要简单许多 强大的扩展/定制化能力 配合CRD进行扩展,更灵活 更原生 不侵入Istio原有配置 降低用户迁移成本/减少冲突可 能 通过 controller 与 amesh 进行 配置推送 强大的扩展/定制化能力 APISIX 官方提供 80+ 插件 支持自定义插件,并且快速集成0 码力 | 34 页 | 3.50 MB | 6 月前313 Istio 流量管理原理与协议扩展 赵化冰
com/zhaohuabing/istio-redis-culster EnvoyFilter 15 Istio 协议扩展:控制面扩展机制 优点: • 对 Istio 和 Envoy 无侵入 • 扩展性强,基本可以支持任何七层协议 问题: • 工作量较大,相当于实现了一个独立的 xDS 服务器 Aeraki: 为Istio提供七层协议扩展的开源项目,可以支持 Dubbo、 Thrift、Redis以及私有协议,目前已支持:0 码力 | 20 页 | 11.31 MB | 6 月前3大规模微服务架构下的Service Mesh探索之路
可扩展和可定制化是必备的 可 控 性 社 区 支 持 技术输出 内部落地 如何让开源产品接受我们的改动? 如何让社区和客户认可我们的产品?开源方案选择之第一代Service Mesh Linkerd • 无控制平面 • Scala编写,基于JVM资源消耗大 • 可扩展性有限,dtab不易理解和使用 • 功能不能满足蚂蚁的需求,没法做到 类似envoy xds那样的扩展性 • 未来发展前景黯淡 而且,proxy不仅仅用于mesh Istio • 控制平面:Istio是目前做的最好的 • 认可Istio的设计理念和产品方向 • 性能和稳定性是目前最大问题 • 对非k8s环境的支持不够理想 • 没有提供和侵入式框架互通的解决方案Sofa Mesh:istio的增强扩展版 Pilot Auth Mixer Envoy Pilot Auth Mixer Golang Sidecar Istio现有架构0 码力 | 37 页 | 7.99 MB | 5 月前3TiDB中文技术文档
和 维护变得十分简单。 TiDB 的设计目标是 100% 的 OLTP 场景和 80% 的 OLAP 场景,更复杂的 OLAP 分析可以通过 TiSpark 项目 来完成。 TiDB 对业务没有任何侵入性,能优雅的替换传统的数据库中间件、数据库分库分表等 Sharding 方案。同时它也 让开发运维人员不用关注数据库 Scale 的细节问题,专注于业务开发,极大的提升研发的生产力。 三篇文章了解 TiDB 和 维护变得十分简单。 TiDB 的设计目标是 100% 的 OLTP 场景和 80% 的 OLAP 场景,更复杂的 OLAP 分析可以通过 TiSpark 项目 来完成。 TiDB 对业务没有任何侵入性,能优雅的替换传统的数据库中间件、数据库分库分表等 Sharding 方案。同时它也 让开发运维人员不用关注数据库 Scale 的细节问题,专注于业务开发,极大的提升研发的生产力。 TiDB 简介与整体架构 表示比特位的长度,取值范围从1到64,其默认值是1。 3. 4. TINYINT[(M)] [UNSIGNED] [ZEROFILL] 5. > TINYINT 类型。有符号数的范围是[-128, 127]。无符号数的范围是[0, 255]。 6. 7. BOOL, BOOLEAN 8. > 布尔类型,和 TINYINT(1) 等价。零值被认为是 False,非零值认为是 True。在 TiDB 内部,True0 码力 | 444 页 | 4.89 MB | 6 月前325-云原生应用可观测性实践-向阳
complexity © 2021, YUNSHAN Networks Technology Co., Ltd. All rights reserved. 业界动向 —— 云监控扛把子 Datadog 零侵入 == 全覆盖 == 监控入口 Datadog Universal Service Monitoring 要点: 1、Alerts and SLOs for every service 2、No code 传统的方法: 开发人员埋点, 标准SDK/JavaAgent, 流量分光镜像。 云原生下的难题: 微服务迭代快, 侵入式监控效率低; 云网络虚拟化, 东西向流量监控难。 挑战/必要性:网络的动态性和复杂性,不监控流量谈何应用可观测 机遇/有效性:云网络连接API/函数,监控流量可零侵入实现应用可观测 è 云原生应用可观测“原力”,流量监控能力是机遇、基石 simplify the growing YUNSHAN Networks Technology Co., Ltd. All rights reserved. 混合云全栈可观测架构 〔分布式〕 流量分析 解析 聚合 关联 压缩 零侵入的流量采集与分析 发送 零侵入的云原生应用可观测性 Flow 数据节点 云原生,水平扩展 监控数据 性能指标 调用日志 网络链路 由业务代码驱动的可观测性数据、云API数据 调用关系 知识图谱 链路追踪 黄金指标0 码力 | 39 页 | 8.44 MB | 6 月前3
共 118 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12