蚂蚁金服 API Gateway Mesh 思考与实践蚂蚁金服 API Gateway Mesh 思考与实践 靳文祥(花名:贾岛) 蚂蚁金服 高级技术专家1/21 /01 /02 /03 API Gateway Mesh 的定义 蚂蚁金服 API Gateway Mesh 实践 云原生 API Gateway 的思考2/21 API Gateway Mesh 的定义 /013/21 LB\Ingress API Gateway POD Sidecar App POD Traffic Control Plane K8S Cluster API Gateway in Service Mesh4/21 API Gateway Service Mesh vs 南北流量(内外) API Gateway vs Service Mesh A infrastructure to decouple the application Service Mesh is Patterns SofaRPC API Gateway MQ Client Service Code6/21 LB\Ingress API Gateway Sidecar App POD Sidecar App POD Traffic Control Plane Cluster API Gateway Mesh An infrastructure0 码力 | 22 页 | 1.72 MB | 6 月前3
陌陌Service Mesh架构实践微服务体系演进历程 架构痛点与解决思路 Service Mesh落地方案3/24 背景 /01 陌陌微服务体系演进历程4/24 单体应用到微服务 单体应用 微服务架构 应用拆分 加入PHP API层 PHP API层成为后续多语言服务治理的关键挑战5/24 微服务体系演进 MOA 1.0微服务体系演进历程 自研服务框架产品MOA(Momo service Oriented Architecture)于2013年初上线推广 微服务体系的其他产品也均为自研方案6/24 MOA 1.0微服务体系整体架构 注册中心 • Redis作为底层存储 • 跨语言地址发现服务Lookup • 中心化存活检测 多语言支持 • Java、PHP、Python、Go、NodeJs • Redis传输协议 / 复用Redis客户端 • 服务发布Proxy / 并行调用Proxy 服务治理 • 服务治理平台、配置中心 • 监控、日志、分布式跟踪 2000+ 注册实例数 2万+ 全天调用量 3500亿 微服务体系规模 服务量级的增长使得Java应用的服务治理问题 也逐渐暴露出来9/24 问题 /02 借助Service Mesh解决现有架构痛点10/24 架构痛点分析 服务治理能力滞后 非Java应用 Java应用 SDK迭代进度缓慢 SDK推广升级缓慢 危害 无法实现架构统一 稳定性受损、引发故障 架构方案受限0 码力 | 25 页 | 1.25 MB | 6 月前3
微博Service Mesh实践内容提要为什什么要做跨语⾔言服务化 • 需求 • 趋势Service Mesh Meetup · BeiJing 平台体系 微博Service Mesh实践 - WeiboMesh �4 Java Server Java Client Registry Motan ➢ 服务治理理 ➢ 动态路路由 Vintage ➢ 注册中⼼心 Opendcp ➢ 智能弹性调度 Graphite ➢ 微博Service Mesh实践 - WeiboMesh �5 RPC A WEB A 平台体系 RPC B WEB B Golang 服务 PHP 服务 OR服务 …… RestFul API 业务部⻔门 Motan ➢ 业务部⻔门语⾔言种类繁多 ➢ 微服务体系建设不不完善/重复 ➢ ⽹网络抖动,dns不不稳定 ➢ 4,7层冗⻓长调⽤用链及资源消耗 4,7层调度Service 服务治理理Service Mesh Meetup · BeiJing 改造成本 �8 微博Service Mesh实践 - WeiboMesh Server(php/java/..) golang/php/java Registry grpc/yar/motan ➢ 语⾔言特性 ➢ 历史积累 ➢ 业务侵⼊入较⼤大,client太重 ➢ 性能 ➢ 扩展性差 ➢ 推⼴广困难0 码力 | 43 页 | 1007.85 KB | 6 月前3
Service Mesh的实践分享今年规划(Roadmap)内部Service Mesh的演进 我是作者名称服务化体系1.0 • OSP(Open Service Platform) • Thrift over Netty • 基于Java语法的DSL • Zookeeper • 胖客户端 • 基本服务治理功能 App OSP Server Service Registry Service Config Center Remote Proxy Cluster API Gateway 备用链路 服务发现 服务注册 配置下发 服务路由 网络传输 OSP client多语言客户端接入 • HTTP & TCP • Local & Remote • 根据接入对象的不同,制定 不同的接入策略,达到 • 接入简单 • 保证性能 • 节省资源 Java App Local Proxy OSP Server sidecar • 注册代理 • 健康检查 • 服务端受限于Proxy支持的协 议(目前只支持HTTP 1.1) Local Proxy Web Server Service Registry API Gateway 健康检查 服务注册 Registry agent 服务发现 HTTP/JSON HTTP/JSON容器化 • Proxy Daemonset • 每台宿主机一台Proxy0 码力 | 30 页 | 4.80 MB | 6 月前3
Service Mesh 微服务架构设计模式:单体模式 类型:互联网金融 模式:微服务模式Java版本演进史 JDK J2ME J2SE J2EE Java SE 2004年 Java SE 5.0 2006年 Java SE 6.0 2011年 Java SE 7.0 2014年 Java SE 8.0 2017年 Java SE 9.0 2018年 Java SE 10 Java SE 11应用架构演进史 C/S 每个服务都尽量小,小到一个小团队能够很好的维护它; • 服务可独立部署,每次部署不会影响其他服务; • 每个服务都各自负责自己的数据和状态的存储,独立数据库; • 服务和服务之间通过设计良好的API接口通信,不暴露具体的实 现细节; • 各服务不需要统一技术栈,不需要共享公共库和框架;微服务究竟带来什么好处 Ready for market faster:快速响应市场地变化 Mix of0 码力 | 36 页 | 26.53 MB | 6 月前3
Service Mesh 发展趋势(续) 蚂蚁金服 | 骑士到中盘路向何方?• Adapter的运行时资源开销 • 不受Adapter增减/更新/升级影响 • 保持Proxy代码简单 • 保持Proxy代码简单 • 数据平面可替换原则 Kubernete s API Server Adapters ConfigurationsOut-of-process Adapter 7/39 Istio的新回答:架构继续优先,性能继续放一边 Part 1:Serv 的机器码, WebAssembly字节码不能直接在任何一种CPU架构上运行, 但由于非常接近机器码,可以非常快的被翻译为对应架构 的机器码,因此WebAssembly运行速度和机器码接近。(类 比Java bytecode) (摘录自http://blog.enixjin.net/webassembly-introduction/)使用Web Assembly扩展Envoy的好处 Part 2 WebAssembly”) ● WAVM (https://github.com/WAVM/WAVM) ● V8(https://v8.dev/) ● Null Sandbox (use the API, compile directly into Envoy)支持Web Assembly扩展的Mixer v2:终极目标形态 Part 2:ServiceMesh灵魂拷问二:性能有了,架构怎么办?0 码力 | 43 页 | 2.90 MB | 6 月前3
大规模微服务架构下的Service Mesh探索之路• 可扩展性有限,dtab不易理解和使用 • 功能不能满足蚂蚁的需求,没法做到 类似envoy xds那样的扩展性 • 未来发展前景黯淡 Envoy • 安心做数据平面, 提供XDS API • 设计优秀,性能和稳定性表现良好 • C++编写,和蚂蚁的技术栈差异大 • 蚂蚁有大量的扩展和定制化需求 • 我们非常认可envoy在数据平面上的表现开源方案选择之第二代Service Mesh 走的是已有类库->加proxy->再加 控制平面的路线 • 部分对接Istio • 细节暂时不清楚,即将开源 新浪微博:Motan Mesh • 也是使用Golang编写 • 全新实现(原有类库是基于Java) 老成持重的稳健思路:以proxy为切入口,第 一时间获取跨语言和技术栈下沉的红利,立足 之后再缓缓图之。 这个产品思路唯一的麻烦在于编程语言的选择国内公司的选择之二:开源方案定制 腾讯:Tencent 去掉Mixer和Auth • 定制Pilot,实现ETCD Adapter • 脱离k8s运行Sofa Mesh在技术选型时考虑 Envoy • 数据平面:Envoy最符合要求 • XDS API的设计更是令人称道 • C++带来的技术栈选择问题 • 我们有太多的扩展和定制 • 而且,proxy不仅仅用于mesh Istio • 控制平面:Istio是目前做的最好的 • 认可Istio的设计理念和产品方向0 码力 | 37 页 | 7.99 MB | 6 月前3
蚂蚁金服ServiceMesh数据平面 SOFAMosn深层揭秘SOFA/NodeJS/C++/Python/.. • 业务低成本融入服务,运维体系为什么要自研Golang版本ServiceMesh 2 Ø跨团队协作需要考虑技术栈落地成本 ü 参与团队分别使用C,Golang,Java等多种技术栈 Ø基于蚂蚁SOFA体系的Mesh化思考 ü 无法保证上下游应用同时升级到Mesh模式 ü 基于RPC内容的流量调度 ü 升级窗口有限,方案必须简单高效 Ø运维体系,容器化建设等方面适配 Downstream / Upstream 协议配置 ØSOFARPC 支持 Upstream 反向请求Istio集成 3 Ø支持 Istio 0.8 版本 Pilot V4 API ü支持xDS on ADS Ø支持全动态配置启动运行 Ø支持API核心功能点,不断完善中扩展机制 4 • 网络层扩展 • 事件订阅 • 自定义filter • 协议层处理扩展 • 事件订阅 • 自定义filter • TCP层自定义私有协议0 码力 | 44 页 | 4.51 MB | 6 月前3
严选 ServiceMesh 实践架构试点 严选业务快速增长 服务化 技术团队规模:200+ Service Mesh 架构全面落地 基础架构三问: 1. 服务治理:RPC 框架 vs 服务治理平台 2. 多语言 vs Java 3. 开源 vs 自研2/24 /01 /02 /03 严选 Service Mesh 演进 混合云架构落地实践 规划与展望3/24 严选ServiceMesh演进 /014/24 平滑迁移 • 边缘网关支持跨 LDC 访问 • 兜底路由:云内云外互备 • 访问控制(如白名单能力) • 灰度引流使架构透明化 • 服务间调用灰度引流 • 外域调用灰度引流18/24 API 网关 • 整体基于 Envoy+Pilot 方案: • 数据面以 Envoy Proxy 作为代理组件 • 控制面以 Pilot 为核心组件 • 平台开放与扩展主要通过 Kubernetes0 码力 | 25 页 | 2.07 MB | 6 月前3
阿里巴巴核心应用洛地 Service Mesh 的挑战与机过言支持困境 NodeJS Java C++ Golang 运维系统云原生时代快速赋能 Biz APP Non Ali Biz框架思维转向平面思维 Service Mesh Biz Non Ali Biz将中间件能力下层到基础层 业务 (Java/Go/C++ 等) Serverless 业务 (Java/Go/C++ 等) 业务 (Java/Go/C++, etc) Serverless Serverless 业务 (Java/Go/C++, etc) 网格化的基础组件 (基于插件) 网格化的基础组件 (基于插件) Service Mesh BaaS 注册服务 配置服务 消息 缓存 K8s•未来应用开发一定是 云原生 •考验好产品的标准是 云原生 •经济、技术共同体是 愿景 机遇 •基于 Service Mesh 基础面开发 •是否能很好的支持0 码力 | 22 页 | 6.61 MB | 6 月前3
共 28 条
- 1
- 2
- 3













