Service Mesh是下一代SDN吗:从通信角度看Service Mesh的发展Services How to map multiple logic services inside one process to Istio service?产品化增强-兼容粗粒度的SOA类应用 Process Service-A Service-B Service-C Sidecar Process Process Service B Process Service-E 的 相互影响; 网络设计冗余,增强系统网络的健壮性; 为不同的网络提供不同的 SLA ;通过网络隔离提高安全性;通过叠加多个网络增加系统带宽 上图中的Kubernets集群使用了Knitter网络插件,部署了四个网络平面产品化增强-支持多网络平面 Istio1.0中不支持多网络平面,当服务地址和Envoy地址分别位于两个网络上时,会导致转发请求时 发生死循环,导致socket耗尽,Envoy不停重启。 V1 Service V1 Service V1 Service V2 存量网络设备 “金丝雀”设备 消息上报 “金丝雀”用户 灰度发布应 用 运维 通过Envoy插件和Istio协议扩展来实现?产品化增强-其他 • APP:灰度发布、流量控制,更多的APP待业务场景触发 • IPV6支持增强 • 在Istio中集成方法级的调用跟踪 • 在Istio中集成Kafka调用跟踪上游开源社区参与情况0 码力 | 27 页 | 11.99 MB | 6 月前3
阿里巴巴核心应用洛地 Service Mesh 的挑战与机过(Java/Go/C++ 等) 业务 (Java/Go/C++, etc) Serverless 业务 (Java/Go/C++, etc) 网格化的基础组件 (基于插件) 网格化的基础组件 (基于插件) Service Mesh BaaS 注册服务 配置服务 消息 缓存 K8s•未来应用开发一定是 云原生 •考验好产品的标准是 云原生 •经济、技术共同体是 愿景 短时间内支持电商业务复杂的服务治理功能 •扩展 VirtualService 和 DestinationRule#3 短时间内支持电商业务复杂的服务治理功能 •未来计划在 Envoy 中增加 WebAssembly 路由插件#4 解耦业务与基础设施 •实现 Sidecar 热升级,流量无损切换 1. 迁移至新的 Listener Fd 2. 告之新的请求重启链路,继续处理 老的回调 3. 请求重新连接使用新的0 码力 | 22 页 | 6.61 MB | 6 月前3
SOFAMesh的通用协议扩展Kubernetes Native 方式落地微服务应用 • 使用 INTERFACE 作为 DNS 来寻址服务 • 开发一个通用协议处理框架 • 避免为不同的微服务框架修改 PILOT 代码 • 通过插件的方式按需支持新的协议 • 对应用代码无侵入性 • 为微服务框架提供轻量化客户端落地一个微服务框架需要的工作 • 部署 ZK 集群作为 RPC 框架的注册中心 • 开发 ZK Platform 通用协议扩展目标 • Kubernetes Native,高性能,低侵入性的通用 Mesh 落地方案 • 支持新 RPC 框架和通信协议低成本接入 • 协议扩展对 Mesh 控制平面透明化 • 允许对协议多层次,插件化的扩展X-PROTOCOL 配置SOFA MOSN 调用流程 Upstream protocol X APP [light client] app user version 1.0.0 解包是对 SIDECAR 代理性能影响最大的因素 多路复用是基本能力,其他能力需要在多路复用能 力上构建 协议装换能力允许使用 HTTP2 作为 SOFA-MOSN 之 间的通讯协议基于能力分层的插件化扩展框架 性能 接入成本 能力 Open Box Multiplexing, Traffic Splitting Context Based RoutingSOFA MESH • http://github0 码力 | 28 页 | 4.73 MB | 6 月前3
Service Mesh Meetup #3 深圳站• 它的特点: • 一个 .drone.yml 搞定(简单) • 原生 Docker 支持: 任何步骤都是在 Docker 内执行的(环境隔离) • Pipeline as code • 丰富的插件支持 • 极简的Web管理界面 • 其他: • Control PR build through comments(#2056) —> bradrydzewski removed this from Jenkins(plugins/drone-jenkins) • Gitlab-CI(plugins/drone-gitlab-ci) • Drone(plugins/drone-downstream) • 支持自定义插件(你可以自己实现自己所需的插件) • 本机测试 .drone.yml : drone execAPI 支持我是作者名称.drone.yml代码质量检测 SonarQube 参考资料:https://github.0 码力 | 45 页 | 18.62 MB | 6 月前3
蚂蚁金服ServiceMesh数据平面 SOFAMosn深层揭秘构架SOFAMesh 1SOFAMosn 2SOFAMosn内数据流 3NET/IO 4 Ø屏蔽IO处理细节 Ø定义网络链接生命周期,事件机制 Ø定义可编程的网络模型,核心方法,监控指标 Ø定义可扩展的插件机制PROTOCOL 5 Ø定义编解码核心数据结构 üMesh处理三段式:Headers + Data + Trailers Ø定义协议Codec核心接口 ü编码:对请求数据进行编码并根据控制指令发送数据 考虑PING-PONG,PIPELINE,分帧STREAM三种典型流程特征 Ø定义Stream生命周期,核心事件 Ø定义Stream层编/解码核心接口 ü 核心数据结构复用Protocol层 Ø定义可扩展的插件机制 Ø对于满足请求Stream池化的需求 Ø需处理上层传入的状态事件PROXY 7 Ø基于Stream抽象提供多协议转发能力 Ø执行Stream扩展Filters Ø提供可扩展的路由寻址能力0 码力 | 44 页 | 4.51 MB | 6 月前3
微博Service Mesh实践WeiboMesh Access Log Metric CircuitBreaker Switcher Tracing Mock ActiveLimit Endpoint Req Res 插件化Service Mesh Meetup · BeiJing 基于MCS的流量量调度 �26 微博Service Mesh实践 - WeiboMesh Vintage 管理理系统 决策系统0 码力 | 43 页 | 1007.85 KB | 6 月前3
大规模微服务架构下的Service Mesh探索之路华为:CES Mesher • 使用Golang编写 • 由go chassis演进而来 • 走的是已有类库->加proxy->再加 控制平面的路线 • 部分对接Istio • 细节暂时不清楚,即将开源 新浪微博:Motan Mesh • 也是使用Golang编写 • 全新实现(原有类库是基于Java) 老成持重的稳健思路:以proxy为切入口,第 一时间获取跨语言和技术栈下沉的红利,立足 Localhost不影响 两倍吞吐量 ü 决策: • 暂时不确认是否会造成 直接影响,先不动 • 等待实际验证后再决定 是否合并report部分 ü 参考 • Conduit已经在新版本 中将report类的功能合 并到Sidecar • 国内的华为/新浪微博 等都选择在Sidecar中 实现功能,没有mixerü 支持跨集群 • 打通多个服务注册中心 • 支持多个注册中心同步信息 • 实现跨注册中心的服务调用 • 内部使用同样产品落地 ü 开源的动机 • 吸引社区,谋求合作,开源共建 ü 开源项目的维护 • 内部使用,保证持续投入 • 请放心Sofa Mesh的合作模式:多层次全方位开放 基础类库 功能模块 完整产品 解决方案 服务注册 熔断 RPC 路由规则 负载均衡 限流 加密 认证 Golang Sidecar 增强版本 Pilot Edge Sidecar 服务治理0 码力 | 37 页 | 7.99 MB | 6 月前3
陌陌Service Mesh架构实践试验阶段 评估阶段 启动阶段 思考 行动12/24 实践 /03 Service Mesh架构在陌陌的落地实践13/24 方案选型 与现有架构的兼容性 现阶段的关键需求 技术储备与原则类因素 自研数据平面与 控制平面方案 使存量服务接入Mesh 方案 对接大量内部系统 关键收益均由数据平面产生 非完善的控制平面功能 技术体系内不引入Go语言 最成熟的服务端语言为Java 预留占位Container • Container内部升级 当前方案 运维Agent • 单个Pod升级Agent • 多个Pod发布编排 Agent发布流程19/24 数据平面容灾方式 服务类应用 • 场景:出流量由入流量产生 • 方案:由原有健康检测机制摘除流量 借助原有服务治理能力 特殊应用 • 场景:流式计算、定时任务 • 方案:出流量降级至本应用的其他Agent 出流量容灾20/240 码力 | 25 页 | 1.25 MB | 6 月前3
Service Mesh 发展趋势(续) 蚂蚁金服 | 骑士到中盘路向何方?Assembly介绍 Part 2:ServiceMesh灵魂拷问二:性能有了,架构怎么办? Mozilla官方定义: WebAssembly是一种新的编码方式,可以在现代的网络浏览器中运行 - 它是一种低级的类汇编语言,具有 紧凑的二进制格式,可以接近原生的性能运行,并为诸如C / C ++等语言提供一个编译目标,以便它们可以 在Web上运行。它也被设计为可以与JavaScript共存,允许两者一起工作。 PU架构的机器码, WebAssembly字节码不能直接在任何一种CPU架构上运行, 但由于非常接近机器码,可以非常快的被翻译为对应架构 的机器码,因此WebAssembly运行速度和机器码接近。(类 比Java bytecode) (摘录自http://blog.enixjin.net/webassembly-introduction/)使用Web Assembly扩展Envoy的好处 Part0 码力 | 43 页 | 2.90 MB | 6 月前3
Service Mesh 微服务架构设计格负责在这些拓扑中 实现请求的可靠传递。在实践中,服务网格通常实现为一组 轻量级网 络代理,它们与应用程序一起部署,但 对应用程序透明。Service Mesh的实现原理 Spring Cloud的类库模式 Service Mesh的Sidecar模式Service Mesh:Istio架构Service Mesh:Linkerd架构Service Mesh: OCTO-Mesh架构为了解决单体的复杂度问题,我们引入微服务架构0 码力 | 36 页 | 26.53 MB | 6 月前3
共 10 条
- 1













