蚂蚁金服 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 App 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 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探索之路• 可扩展性有限,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
蚂蚁金服Service Mesh渐进式迁移方案168.1.104:12220 instances:[”192.168.1.104:12220”] SOFA Registry CoreDNS RPC Controller Kube API server Discovery services renew RPC services Watch services renew RPC DNS b.svc -> 10.0.3.100 ServiceName=userservice • ClusterIP=10.254.162.44 • Domain=userservice.default.svc.cluster.local 2. 生成DNS记录 • userservice.default.svc.cluster.local -> 10.254.162.44 kube-proxy 3. 发送请求 GET http://userservice/id/1000221 1000221 4. 域名解析 • 补全userservice -> userservice.default.svc.cluster.local • 解析域名 userservice.default.svc.cluster.local • 得到Cluster IP (10.254.162.44) 5. kube-proxy拦截到10.254.162.44的请求 • 修改目标地址为Pod IP=1920 码力 | 40 页 | 11.13 MB | 6 月前3
在Kubernetes上部署高可用的Service Mesh监控Improved staleness semanticPrometheus at scale ● In the old days… ○ one or more prometheus per cluster ○ hashmod sharding Node Node Node Node Node Node Node Node Node Hashmod = 0 Hashmod = prometheus1 prometheus2Prometheus at scale ● In the old days… ○ one or more prometheus per cluster ○ hashmod sharding Almost works... prometheus prometheus prometheus prometheus Old-schooled federation ● “Slave” prometheis collecting metrics for one cluster. ● Top level prometheus scraping from slaves. ● Top level prometheus as a query entry point.0 码力 | 35 页 | 2.98 MB | 6 月前3
Service Mesh的实践分享主流流量 JavaApp Local Proxy OSP Server Service Registry Service Config Center Remote Proxy Cluster API Gateway 备用链路 服务发现 服务注册 配置下发 服务路由 网络传输 OSP client多语言客户端接入 • HTTP & TCP • Local & Remote 根据接入对象的不同,制定 不同的接入策略,达到 • 接入简单 • 保证性能 • 节省资源 Java App Local Proxy OSP Server Remote Proxy Cluster Thrift over TCP PHP App C/C++/Node JS App Thrift over TCP Thrift over TCP JSON over 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实践微博Service Mesh实践 - WeiboMesh �5 RPC A WEB A 平台体系 RPC B WEB B Golang 服务 PHP 服务 OR服务 …… RestFul API 业务部⻔门 Motan ➢ 业务部⻔门语⾔言种类繁多 ➢ 微服务体系建设不不完善/重复 ➢ ⽹网络抖动,dns不不稳定 ➢ 4,7层冗⻓长调⽤用链及资源消耗 4,7层调度Service Mesh实践 - WeiboMesh ➢ Cluster(发现集群管理理,group + path) ➢ HA(⾼高可⽤用策略略) ➢ LB(负载均衡) ➢ Endpoint(服务节点的抽象) ➢ Protocol(Motan2/传输协议+Simple/序列列化协议)Service Mesh Meetup · BeiJing Cluster 模块 �18 微博Service Mesh实践 Mesh实践 - WeiboMesh WM/ Client request Server WM/ Server ⽬目标机器器 请求机器器 Client Cluster High Available Load Balance Filter Chain Transport Endpoint Filter Chain Serialize Endpoint EndpointService0 码力 | 43 页 | 1007.85 KB | 6 月前3
SOFAMesh的通用协议扩展2 com.svc.role -> 172.168.1.2 com.svc.zoo -> 172.168.1.3 user.default.svc.cluster.local -> 172.168.1.2 zoo.default.svc.cluster.local -> 172.168.1.3 APP user interface com.svc.user Interface com.svc.role Labels interface user version 1.0.0 User Service clusterIP 172.168.1.2 domain user.default.svc.cluster.local POD APP user interface com.svc.user Interface com.svc.role Labels interface role version interface com.svc.zoo Labels version 1.0.0 Zoo Service clusterIP 172.168.1.3 domain zoo.default.svc.cluster.local POD APP zoo interface com.svc.zoo Labels version 2.0.0落地形态 Traffic RulesSOFA MOSN Virtual0 码力 | 28 页 | 4.73 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
深入 Kubernetes 的无人区-蚂蚁金服双十一的调度系统Part 1:蚂蚁金服的Kubernetes现状 非云 资源 云化 资源 基础 服务 蚂蚁 k8s 核心 CRI Kubernetes API Server 极速交付 分时复用 弹性容量 资源画像 规模化调度 高可用容灾 可视化 服务 Cluster Control Panel 在线应用 计算型混部任务 CSI CNI Device Plugin runc nanovisor 日志服务0 码力 | 19 页 | 2.18 MB | 6 月前3
Apache SkyWalking 在 Service Mesh 中的可观察性应用version 同左 Instance Work load 同左 Endpoint Path - 26/28维度匹配-service 命名规则 Version|App|Namespace|Cluster v1|projuctpage|bookinfo|product-demo 27/28感谢聆听 欢迎关注,获取最新分布式架构内容 关注服务网格,关注 ServiceMesher0 码力 | 29 页 | 1.38 MB | 6 月前3
共 26 条
- 1
- 2
- 3













