蚂蚁金服 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是下一代SDN吗:从通信角度看Service Mesh的发展Protocol Canary deployment Chaos testing User Subscription & SLA Control Plane Programmable API APP ...... Data Plane Control Layer Application Layer通过Service Mesh控制面统一管理F5和Envoy https://aspenmesh subscription & SLA to operation policy Data Plane Protocol Programmable API Data Plane Control Layer 2. APP calls control plane API to create the operation policy 3. Control plane distributes the operation 能否可以成为一个通用的接口协议? 是否会出现Envoy之外的大量数据面实现? • 建议:对xDS接口进行改进,去掉实现相关内容 Ø Service Mesh的发展 • 控制面对数据面软硬件的统一控制能力? • 通过控制面API接入各种丰富的应用场景 - 下一个热点?总体架构-高层视图 DexMesh控制面 MSB-SDClient MSB-Consul Jaeger DexMesh数据面 Pod Microservice0 码力 | 27 页 | 11.99 MB | 6 月前3
Service Mesh结合容器云平台的思考和实践流量管理 • 服务降级 • … • 微服务拆分原则 • 业务API设计 • 数据一致性保证 • 可扩展性考虑 • …Kubernetes对于微服务的支撑 功能列表 详情 快速资源分配 容器编排和调度 服务部署&弹性伸缩 Deployment 服务注册&服务发现 Service概念和分布式DNS API网关 简单路由功能 统一日志中心 Fluentd & ES 统一监控中心 Prometheus 统一配置管理 Configmap、Secret 负载均衡 简单负载均衡,基于Iptables Roundrobin 流量控制 简单根据服务实例进行控制云平台微服务演进之基于API网关的微服务方案 API网关功能增强 • 安全认证 • 流量控制 • 审计日志 • 黑白名单 • …K8S集群 云平台微服务演进之基于Spring Cloud的微服务方案 NS A Service Healing Resilience & Fault Tolerance Distributed Tracing Centralized Metrics Centralized Logging API Gateway Job Management Singleton Application Load Balancing Service Discovery Configuration Management0 码力 | 28 页 | 3.09 MB | 6 月前3
蚂蚁金服网络代理演进之路蚂蚁金服高级技术专家 2019.10.26 Service Mesh Meetup #7 成都站网络代理是什么? 南北流量 东西流量 Server App 负载均衡器 NAT网关 防火墙 负载均衡器 NAT网关 防火墙 负载均衡器 负载均衡器 路由器 路由器 Internet网络代理有什么? Maglev Ipvs Katran GFE BFE TGW Nginx Apache Netscaler自研四层网络代理 2011 2014 2018 未来 Ø 全面使用DPDK技术重构 Ø EBPF,XDP Ø 可编程交换芯片(P4语言) Ø 四层负载均衡-IPVS Ø NAT网关蚂蚁七层网络代理 Google Spanner?蚂蚁七层网络接入代理 Spanner蚂蚁七层网络接入代理 AGNA (Ant Global Network Accelarator) 网商 服务鉴权 流量控制 镜像中心 流量镜像 流量镜像 TLS,国密 服务鉴权 流量控制 TLS,国密 服务鉴权 流量控制蚂蚁金服率先大规模落地SOFAMesh UDPA 安全 统一数据 平面API 存量连接无损迁移 提升5倍发布效率 TLS双向加密 支持国密算法 WAF 流量镜像 多协议 SOFARPC Dubbo HTTP1.1/2 平滑升级 性能 单跳CPU增加5%消耗 0.2ms0 码力 | 46 页 | 19.93 MB | 6 月前3
严选 ServiceMesh 实践• 平滑迁移是 Service Mesh 在混合云架构落地的关键17/24 平滑迁移 • 边缘网关支持跨 LDC 访问 • 兜底路由:云内云外互备 • 访问控制(如白名单能力) • 灰度引流使架构透明化 • 服务间调用灰度引流 • 外域调用灰度引流18/24 API 网关 • 整体基于 Envoy+Pilot 方案: • 数据面以 Envoy Proxy 作为代理组件 •0 码力 | 25 页 | 2.07 MB | 6 月前3
SOFAMOSN持续演进路径及实践分享152ms 36M 100% Old http2(4 core) 8100 122ms 70M 393% New http2(4 core) 17200 57ms 40M 395%技术案例 – 长连接网关RawEpoll模式 经典Golang netpoll模型 ² 问题:协程数量与链接数量成正比,大 量链接场景下,协程数量过多 u Stack内存开销 u Read buffer开销 u Runtime调度开销 implmented in Golang runtime conn goroutine conn.read conn goroutine conn.read …… 调度切换/就绪通知技术案例 – 长连接网关RawEpoll模式 RawEpoll模式:使用epoll感知到可读事件之后,再从协程池中为其分配协程进行处理。 大幅减少goroutine实例数量,从而降低内存、调度开销 Netpoll implmented 选一个协程进行读事件处理;由于使 用的是oneshot模式,该fd后续可读 事件不会再触发。 …… 4. 请求处理完成,将协程归还给协程池;同时将fd重新 添加到RawEpoll中技术案例 – 长连接网关RawEpoll模式 场景 QPS MEM(K) CPU(%) goroutine 原生IO模式 1000 3.3 60 200028 Raw Epoll模式 1000 2.5 18 28 Ø0 码力 | 29 页 | 7.03 MB | 6 月前3
Service Mesh 高可用在企业级生产中的实践Monolithic 混合微服务架构 Microservices • 微服务 & 单体 • Spring Cloud & Service Mesh7/总页数 运行时支撑服务 • 服务注册中心 • 服务网关 • 配置中心 混合微服务的互联互通 目标 • 互联互通 • 平滑迁移 • 灵活演进 环境 • 虚拟机 • Kubernetes8/总页数 混合微服务的互联互通 百度智能云 CNAP 混合微服务架构图0 码力 | 38 页 | 1.38 MB | 6 月前3
进击的 Traefik | 云原生边缘路由器探秘反向代理、负载均衡工具 • 它支持多种后台 (Docker, Swarm, Kubernetes, M arathon, Mesos, Consul, Etcd, Z ookeeper, BoltDB, Rest API, file…) 来自动化、动态的应用它的 配置文件进行设置Traefik 项目 •https://github.com/containous/traefik •MIT License •Written limiting, headers, ...)Providers • Providers 可以是编排工具、容器 引擎或者 key-value 存储等等 • Traefik 通过 Providers 的 API 查 找有关路由相关信息,并动态更新 • 基于标签、key-value、注解、文 件 • Docker、Kubernetes、Marathon 、Rancher、FileEntryPoin web UI 并且告诉 Traefik 注册 Docker Provider command: --api.insecure=true --providers.docker ports: - "80:80" # HTTP 端口 - "8080:8080" # Web UI 端口(需要开启 --api.insecure) volumes: - /var/run/docker.sock:/var/run/docker0 码力 | 35 页 | 8.58 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”) ● 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灵魂拷问二:性能有了,架构怎么办? Data Plane API “SMI 是在 Kubernetes 上运行服务网格的规 范。它定义了由各种供应商实现的通用标准。这 使得最终用户的标准化和服务网格供应商的创新 可以两全其美。SMI 实现了灵活性和互操作 性。” “SMI API的目标是提供一组通用的,可移植的 Service Mesh API,Kubernetes用户可以以 供应商无关的方式使用这些API。通过这种方式, 可以定义使用Service0 码力 | 43 页 | 2.90 MB | 6 月前3
大规模微服务架构下的Service Mesh探索之路• 可扩展性有限,dtab不易理解和使用 • 功能不能满足蚂蚁的需求,没法做到 类似envoy xds那样的扩展性 • 未来发展前景黯淡 Envoy • 安心做数据平面, 提供XDS API • 设计优秀,性能和稳定性表现良好 • C++编写,和蚂蚁的技术栈差异大 • 蚂蚁有大量的扩展和定制化需求 • 我们非常认可envoy在数据平面上的表现开源方案选择之第二代Service Mesh 去掉Mixer和Auth • 定制Pilot,实现ETCD Adapter • 脱离k8s运行Sofa Mesh在技术选型时考虑 Envoy • 数据平面:Envoy最符合要求 • XDS API的设计更是令人称道 • C++带来的技术栈选择问题 • 我们有太多的扩展和定制 • 而且,proxy不仅仅用于mesh Istio • 控制平面:Istio是目前做的最好的 • 认可Istio的设计理念和产品方向 Architect2Golang版Sidecar Pilot Auth Golang Sidecar Mixer XDS API Mixer Service HTTP/1.1 HTTP/2 Sofa RPC ü 参照Envoy的设计 ü 实现XDS API ü 兼容Istio ü 支持HTTP/1.1和HTTP/2 ü 扩展Sofa/Dubbo/HSF Dubbo RPC0 码力 | 37 页 | 7.99 MB | 6 月前3
共 26 条
- 1
- 2
- 3













