SOFAMOSN持续演进路径及实践分享基于Nginx扩展 • 开发不活跃 • 老牌代理系统,业界广 泛使用,服务各类场景 • C++实现 • CNCF第三个毕业项目, ISTIO原生数据平面 • 开发活跃,最新版为1.9.0 • Google, Lyft主导,业界 众多公司使用中,重点搭 载ISTIO使用,服务各类 场景 • Rust实现 • CNCF项目,最早的 Service Mesh数据平面 • 开发活跃,最新版为 18 18.9.1 • Golang实现 • 新生项目,初期旨在搭建 RPC亲和,高度可扩展性 的Golang转发系统 • 开发活跃,最新版为0.4.0 • 蚂蚁+UC主导,重点搭载 SOFAMesh使用,目标服 务通用场景,金融场景SOFAMOSNSOFAMOSN内部模块设计SOFAMOSN数据流SOFAMOSN数据流持续演进路径 & 技术案例能力 0.1.0 0.2.0 0.3.0 0.4 支持Router模式 Ø GRPC支持 Ø 协议自动识别 Ø 链式路由扩展 Ø 完善流量管理策略,包括 Retry、DirectResponse、 HTTP Header add/delete、 流控、故障注入等 Ø 支持必要的admin接口性能 0.1.0 0.2.0 0.3.0 0.4.0 Ø 内存复用框架 Ø Slab style buffer Ø Raw-Epoll模式 Ø 读合并0 码力 | 29 页 | 7.03 MB | 6 月前3
网易云Service Mesh的产品架构与实现10余年云计算领域研发及架构经验,先后在EMC,CCTV证券资 讯频道,HP,华为,网易从事云计算和大数据架构工作 • 毕业于上海交通大学。 • 曾出版《Lucene应用开发揭秘》 • 多次作为邀请讲师参加Dockone容器技术大会,Segmentfault 开发者大会,InfoQ全球架构师峰会(明星讲师),CSDN SDCC大 会,51CTO WOTA大会等 • 知名技术博主,博客可搜索popsuper1982,多篇文章推荐至全 基于容器服务的微服务架构实践163yun.com 一、微服务与Docker、Kubernetes163yun.com 应用架构 数据架构 IT架构 微服务的交付形式Kubernetes 轻量级的IT运维模式Swarm 资源利用率高的任务执行模式Mesos 快速迭代 高并发 OPEX CAPEX 大数据分析,运营 容器技术的三种视角微服务形态 Hailo Amazon Netflix 来源: https://www linkedin.com/pulse/astonishingly-underappreciated-azure-service-fabric-ben-spencer/ Kaola163yun.com 开发独立: 代码耦合度比较高,修改代码通常会对多个模块产生影响,操控难度大,风险高 上线独立: 单次上线需求列表多,上线时间长,影响面大 简化扩容: 由于业务多,每一次扩容需要增加的配置比较杂。一些不起眼的小业务虽然不是扩容的主要目0 码力 | 35 页 | 6.33 MB | 6 月前3
Service Mesh 在『路口』的产品思考与实践混合在一个进程内, 应用既有业务逻辑, 也有各种功能, 每次升级都要重新发布应用 业务进程专注于业务逻辑 SDK 中的大部分功能, 拆解为独立进程, 以 Sidecar 的模式运行 将服务治理能力下沉到基础设施,实现独立演进,透明升级7/39 异构系统统一治理 Part 1: 为什么需要Service Mesh? 多语言、多协议 图片来源:https://www 在当下『路口』的思考 Greenfield vs Brownfield Greenfield • 绿地,未开发过的土地 • 全新的项目/新系统 图片来源:https://faasandfurious.com/90 Brownfield • 棕地,已开发/污染过的土地 • 成熟的项目/遗留系统12/39 Part 2: 在当下『路口』的思考 • 大量的应用还跑在非 蚂蚁金服的产品实践 发展历程 全面大规模落地 2017年底开始调研并探 索 Service Mesh 技术, 并确定为未来发展方向 技术预研 01 2018年初开始用Golang 开发 Sidecar SOFAMosn, 年中开源基于 Istio 的 SOFAMesh 技术探索 02 2018年开始内部落地,第一 批场景是替代 Java 语言之外 的其他语言的客户端0 码力 | 40 页 | 15.86 MB | 6 月前3
大规模微服务架构下的Service Mesh探索之路大规模微服务架构下的 Service Mesh探索之路 敖小剑6月初在深圳举行的GIAC全球互联网架构大会上,蚂蚁金服第一次对外 透露了开发中的Service Mesh产品——Sofa Mesh。 今天我们将展开更多细节,详细介绍蚂蚁金服Sofa Mesh的技术选型, 架构设计以及开源策略。 前言技术选型 Technical 1ü 性能要求 • 以蚂蚁金服的体量,性能不够好则难于接受 ü 部署的要求 • 需要用于多种场合:主站,金融云,外部客户 • 需要满足多种部署环境:虚拟机/容器,公有云/私有云,k8s • 需要满足多种体系:Service Mesh,Sofa和社区主流开发框架 Service Mesh落地要面临的实际要求选择开源产品,还是选择自研? 起点:开源 起点:自研 全新打造;或依托现有SDK Fork,增强,扩展,定制,集成 回馈社区,反哺开源 维持版本更新,同步升级 Mesh:istio的增强扩展版 Pilot Auth Mixer Envoy Pilot Auth Mixer Golang Sidecar Istio现有架构 Sofa Mesh架构 1. 用Golang开发 Sidecar,替代Envoy 2. Mixer被部分合 并进入Sidecar 3. Pilot/Auth 做扩展和增强 Control plane Control plane Data0 码力 | 37 页 | 7.99 MB | 6 月前3
Service Mesh 微服务架构设计微服务架构设计的现状 3 Service Mesh微服务设计 4 Service Mesh的框架介绍我过往的经历情况 类型:传统互联网 模式:CS/BS模式 类型:互联网 模式:单体模式 类型:游戏 模式:单体模式 类型:互联网金融 模式:微服务模式Java版本演进史 JDK J2ME J2SE J2EE Java SE 2004年 Java SE 5.0 2006年 Java integrity:数据一致性难保证,面临分布式事物问题; Management:管理运维成本高,需要有成熟的DevOps平台,另外日志看查困难; Development and testing:开发测试成本高,依赖服务较多,Debug困难; Lack of governance:各服务可能技术栈不统一,不好统一管理;微服务和SOA究竟有什么区别 SOA MSASOA MSA 尽可能多的共享和复用 实现请求的可靠传递。在实践中,服务网格通常实现为一组 轻量级网 络代理,它们与应用程序一起部署,但 对应用程序透明。Service Mesh的实现原理 Spring Cloud的类库模式 Service Mesh的Sidecar模式Service Mesh:Istio架构Service Mesh:Linkerd架构Service Mesh: OCTO-Mesh架构为了解决单体的复杂度问题,我们引入微服务架构0 码力 | 36 页 | 26.53 MB | 6 月前3
SOFAMesh的通用协议扩展框架的注册中心 • 开发 ZK Platform Adapter for DUBBO • 开发 DUBBO 服务的 XDS 配置下发 • 开发 DUBBO 服务的路由规则 XDS 适配 • 开发 DUBBO 协议支持SOFA MESH 的统一解决方案 • 采用 Kubernetes Native 方式落地微服务应用 • 使用 INTERFACE 作为 DNS 来寻址服务 • 开发一个通用协议处理框架 为微服务框架提供轻量化客户端落地一个微服务框架需要的工作 • 部署 ZK 集群作为 RPC 框架的注册中心 • 开发 ZK Platform Adapter for DUBBO • 开发 DUBBO 服务的 XDS 配置下发 • 开发 DUBBO 服务的路由规则 XDS 适配 • 开发 DUBBO 协议支持(开箱即用模式下也可以省掉)DNS 寻址目标 • 允许应用把接口当做域名来访问远端服务 • 支持在 Kubernetes0 码力 | 28 页 | 4.73 MB | 6 月前3
严选 ServiceMesh 实践2016年9月29日第一次被公开提出 Service Mesh 概念正式提出9/24 云原生 Service Mesh 框架 - Istio • 由 Google,IBM 和 Lyft 联合开发,Go 语 言,与 K8s 一脉相承且深度融合 • K8s 提供了部署、升级和有限的运行流量管 理能力 • Istio 补齐了 K8s 在微服务治理上的短板 (限流、熔断、降级、分流等) cNginx vs Envoy(优化前) • 1600RPS+40个并发(主机配置均为 8C16G) • cNginx 的 RT overhead 在0.4ms左右 • Envoy(client模式)的 RT overhead 是0.6ms左右12/24 性能视角 – cNginx vs Envoy(优化后) • 优化方案 • 采用 sriov 容器网络 • Envoy:将1.13版本中 用户态协议栈,优化路径为 Envoy <-> Envoy,延迟性能提升 0.8-1 倍。Envoy 部署方式为 per-node,功能和运维层面的限制还在评估当中。 • Sidecar 模式采用方案1进行优化,gateway 模式采用方案2进行优化。23/24 服务治理平台 – 升级严选服务治理能力 • 常用服务管理功能:服务上下线、服务实例管理 • 服务生命周期管控与查询 • 服务扩缩容:服务副本数、配额、扩缩容策略;0 码力 | 25 页 | 2.07 MB | 6 月前3
陌陌Service Mesh架构实践自研数据平面与 控制平面方案 使存量服务接入Mesh 方案 对接大量内部系统 关键收益均由数据平面产生 非完善的控制平面功能 技术体系内不引入Go语言 最成熟的服务端语言为Java 使用Java开发 数据平面Agent14/24 整体架构 数据平面 • 现有协议的流量转发 • Agent平滑升级机制 控制平面 • 轻量的Pilot Proxy • 向Istio的标准协议靠拢 重点目标 关键设计 关键问题16/24 数据平面部署方式 容器化运行方式 • sidecar模式 • 与业务进程相同Pod不同Container 陌陌微服务容器化部署比例在80%以上 并且还在进一步推进 业务接入方式 • 研发人员:升级SDK版本 • SRE:发布系统配置发布项 sidecar模式部署17/24 数据平面升级方式 – 平滑升级机制 平滑要求 • 业务进程不重启 •0 码力 | 25 页 | 1.25 MB | 6 月前3
函数计算在双11小程序场景中的应用函数计算在双11小程序场景中的应用 关注“阿里巴巴云原生”公众号 回复 1124 获取 PPT自我介绍 •吴天龙(花名: 木吴) •阿里云函数计算技术专家 •2013 年加入阿里云,参与分布式数据库, 对象存储等产品的开发。现任阿里云函数 计算架构师,聚焦于 Serverless 产品功 能和大规模资源伸缩调度、性能优化等系 统核心能力的研发。❖ 函数计算介绍 ❖ 双11小程序场景介绍 ❖ 技术挑战 ❖ Demo Demo 目录函数计算-介绍 • 通用Serverless计算平 台 • 与云端事件源无缝集成 • 弹性伸缩,按量付费函数计算-介绍双11小程序场景介绍小程序场景的挑战 n 安全隔离 n 开发效率 n 大量的小程序是不活跃的 n 活动高峰期流量激增函数计算-冷启动优化 Download & Extract Code User Code Init Logic Execution Start 预留实例:性能好 • 按量实例:按需使用函数计算-预留实例 预留实例 按量实例 效果 0 0 禁止调用 10 0 只使用预留实例,固定费用 0 10 只使用按量实例,按需付费 10 5 混合模式,兼顾性能和成本函数计算 DemoThank you ! 关注“阿里巴巴云原生”公众号 回复 1124 获取 PPT0 码力 | 13 页 | 6.95 MB | 6 月前3
Service Mesh结合容器云平台的思考和实践25 徐运元关于我 2008年毕业于浙江大学,曾在思科和浙大网新有超过 9年的工作经验和5年的云计算领域工作经验,带领团 队完成公司第一代基于Kubernetes的云平台开发和第 二代基于Kubernetes的DevOps云平台开发 来自于浙江大学SEL实验室目录 CONTENTS Kubernetes平台下的微服务演进 Pilot核心功能解读 Pilot-Agent核心流程解读Kubern 要的配置。 role pilot-agent的role类型为model包下的Proxy,决定了pilot-agent的“角色”,role包括以下属性: 1.Type pilot-agent有三种运行模式。根据role.Type变量定义,类型为model.Proxy,定义在context.go文件中,允许的3个取值范围为: i. "sidecar" 默认值,可以在启动pilot-agent,调用proxy命令时覆盖。Sidecar0 码力 | 28 页 | 3.09 MB | 6 月前3
共 25 条
- 1
- 2
- 3













