全球架构师峰会 Arch Summit 2018

郭平 阿里巴巴大规模分布式软负载体系原理及实践

1. 阿⾥里里巴巴⼤大规模分布式软负载 体系原理理及实践 坤宇 阿⾥里里巴巴⾼高级技术专家
3. 坤宇 ⾼高级技术专家 • 阿⾥里里巴巴中间件团队软负载、配置中⼼心以及 iPaaS产品线负责⼈人 • 阿⾥里里云配置产品 ACM 产品研发Leader • Nacos 开源产品创始⼈人 • OpenConfiguration 规范发起⼈人
4. • 什什么是软负载 • 阿⾥里里巴巴9年年双11中的软负载实践 • 软负载技术架构原理理 • 微服务应⽤用架构趋势与软负载 • 阿⾥里里巴巴开源中间层软负载均衡产品 Nacos
5. 什什么是 “硬负载”? 四层 软件 七层 硬件 硬负载 是指传统的企业级技术架构中在 流量量控制侧偏重于使⽤用硬件负载均衡器器、偏 重于四层负载均衡、偏重于集中的⽹网关代理理 模式,偏重于Server-Based Load Balance的 ⼀一系列列的实践⽅方法。 Organiza(on’s,DMZ 防⽕火墙 DMZ • 4层硬件负载均衡 • f5/lvs,路路由器器,⽹网络NAT • 7层反向代理理集群 • nginx/apache/haproxy • 动静分离 • 分流和路路由 内部⽹网关负载均衡器器 • F5 • LVS
6. “硬负载”⾯面临的产业趋势挑战 • 偏4层负载均衡 • 流量量的不不确定性,需要弹性和灵活性 • IDC内部的机器器之间的流量量也很⼤大 • 关注负载均衡器器的功能的可扩展性 • ⽹网关单点难以消除,故障恢复慢 • 流量量的精细控制,四层负载均衡难以理理解业务语义 • 必须关注成本 • 关注整个负载体系的可运维性,可操作性,可管理理性 互联⽹网 DevOps 云计算
7. 软负载 • 偏重于7层负载均衡 • 软件定义流量量均衡策略略 • 理理解业务语义的流量量调拨 • 数据和算法驱动的精细流量量控制策略略 • 扩展性和灵活性 • 可操作性
8. 万物皆“服务” 以服务为中⼼心的现代应⽤用架构趋势 service Service-Centric Architecture
9. 微服务的基⽯石 - 服务发现与注册中⼼心 Server Based • 优势 • 侵⼊入⼩小 • 易易集中管控 • 劣势 • ⽹网关式,有单点 • 成本⾼高 • 例例⼦子 • Nginx • LVS • Maglev 基 于 服 务 端 负 载 均 衡 Client Based • 优势 • 劣势 • ⽆无单点 • 侵⼊入⼤大 • 随应⽤用⾃自然伸缩 • 难集中管控 • 成本低 • 例例⼦子 • DNS • Ribbon & Eureka • Service Mesh 基 于 客 户 端 端 负 载 均 衡 图⽚片来⾃自 microservices.io
10. 阿⾥里里巴巴9年年双11中的软负载实践 • 统⼀一接⼊入 • 线上动态隔离环境 • 微灰度 • 单元化及异地多活 • 流量量调度
11. PC ⽆无线 IoT 统⼀一接⼊入 统⼀一接⼊入 (Tengine) 统⼀一接⼊入 (Tengine) 统⼀一接⼊入 购物⻋车 商品 交易易 ⽀支付 购物⻋车 商品 交易易 ⽀支付 中间层负载均衡 IAAS • 动静分离 • https加速&证书管理理 • ⼊入⼝口流量量的限流 • ⿊黑灰流量量清洗,安全 防攻击 • 智能流量量转发策略略(⽤用 户特征洞洞察) • 逻辑分流与容灾 • ⽀支持链路路追踪
12. 测试环境(Test) 预⽣生产环境(Stage) ⽣生产环境(Production) 动态隔离环境 压测流量量 真实⽣生产环境 统⼀一接⼊入层 真实⽣生产流量量 • 动态环境vs静态环境 • 根据需求动态⽣生成某个环境 • 成本低 线上压测服务分组 ⽣生产服务分组 中间层负载均衡(Mid-Tier LoadBalancer) ⽀支持动态、逻辑隔离 • 逻辑隔离 vs 物理理隔离 • 逻辑隔离更更灵活 • 符合弹性等需求
13. A/B Testing 微灰度 • 灰度效率问题 • 后端测试难 • 上下游依赖链路路复杂, 新测试环境部署困难 • 线上数据和链路路状态 难以仿真 • 链路路局部创新和优化 难 • 敏敏捷创新和试错 • 低成本扩展多套环境 • 对业务0侵⼊入的灰度 测试环境和⼿手段 • 线上真实流量量 create 微灰度1 规则 - 3% 流量量 -’label-1’ • ⽅方法 • 链路路染⾊色 • 权重路路由和流量量控制 • 链路路冲突检测 • 资源占⽤用审核 • 容量量管理理 create 微灰度1 规则 -10% 流量量 -’label-2’
14. 单元化及异地多活 统⼀一接⼊入层 CDN 区域单元 A 中间层负载均衡 区域单元 B 中间层负载均衡 区域单元 C 中间层负载均衡 统⼀一接⼊入 & 中间层负载均衡 • 识别⽤用户特征 • 识别流量量区域特征 • 识别IDC分布拓拓扑结构 • ⽀支持流量量权重控制 • 识别切流&容灾规则
15. 流量量调度 • Metrics 数据收集 • 根据需求动态⽣生成某个环境 • 成本低 • 时序数据存储 • 时序和时空数据库 • 数据分析&算法 • 时序和时空数据库 • 全局⾃自动决策 • 降权重 • 定点控制迁移 • 下线 • 阈值保护,防雪崩 基于数据和算法驱动的⾃自动 决策,精细的流量量调度
16. 整体架构原理理 精细流量量规则层 业务流量量 中间层负载均衡 统⼀一接⼊入 微灰度 环境隔离 单元化 DPath RPC 中间件层 消息 分布式缓存 分布式数据库 DNS(bind) Tengine LVS 注册中⼼心 DNS-SD 配置中⼼心 分布式协调 m e t 全局流量量调度 r i
 (数据驱动) c s 特殊硬件加速 CMDB 存储&计算平台 资源调度 IAAS (⽹网络,主机,操作系统) • 系统打通 • 中间层负载均衡与CMD • 中间层负载均衡与API Gateway • 配置中⼼心与流量量规则 • 基础中间件与中间层负载均衡 • 中间层负载均衡与业务应⽤用 • 理理解业务流量量 • cookie,path,param • header • 机房拓拓扑 • 全栈metrics • 从⽹网络,操作系统,tomcat,缓 存,RPC,业务都要暴暴露露合适的 状态数据 • 强⼤大的中间层负载均衡 • ⼤大规模数据分发和推送能⼒力力 • 数据驱动 • 数据中⼼心状态数据 • 实时性保障 • ⼤大数据(计算平台) • ⼈人⼯工+智能的决策 • 不不断改进算法 • 机器器学习⽅方法
17. “服务发现”vs“软负载”(weight) tell me svc1’s endpoints! Consume ip1,ip2,i p3 Registry request flow Consume ip1,ip2,ip3 服务发现 register Provide ip1:port1/ svc1 ip2:port2/ svc1 ip3:port2/ svc1 tell me svc1’s endpoints! Consume {ip1} Registry request flow Consume {ip1,ip2,ip3} 流量量控制 register Provide ip1:port1/ svc1 ip2:port2/ svc1 ip3:port2/ svc1
18. 服务发现 vs 软负载 (label match&selector) tell me svc1’s endpoints! Consume ip1,ip2,i p3 Registry request flow Consume ip1,ip2,ip3 服务发现 register Provide ip1:port1/ svc1 ip2:port2/ svc1 ip3:port2/ svc1 tell me svc1’s endpoints! Consume {ip1,ip2} Registry request flow Consume {ip3} 动态归组 register Provide ip1:port1/ svc1 ip2:port2/ svc1 ip3:port2/
19. 软负载的基⽯石 - Label Based & Weight label based (metadata) weight (0.1精度)
20. “软负载”与新技术趋势 • Service Mesh • 是client base LB 还是 server base? • service mesh为何要⽀支持权重路路 由? • Traffic Management 的本质是什什 么? • Kubernetes DNS-SD • 什什么是DNS-SD? • Label selector Service Mesh ⼤大规模⽣生产应 ⽤用之 “阿喀琉斯之踵“ - 1. 性能瓶颈 - 2. 流量量治理理的扩展性与性能的 平衡 或有解决之道,但某⼀一层必须变 ⾰革…
21. 阿⾥里里巴巴逐步将“软负载体系”开源和开放” 泛电商体系 (天猫、淘宝、菜⻦鸟、共 享业务平台、聚划算、盒 ⻢马 …) ⼤大⽂文娱 (优酷、阿⾥里里影业、 阿⾥里里⾳音乐…) 搜索&⼴广告 (搜索、阿⾥里里妈 妈…) ⾼高德地图 国际化 (Lazada,AliEx press) 阿⾥里里云 安全 异地多活 服务治理理 软负载均 衡 服务编排 流量量调度 环境隔离 弹性计算 切库容灾 预案限流 任务调度 ⼤大数据计 算 OPS Service Discovery Health Check Dynamic Intelligent Traffic Mgr Config Push Meta KV DNS Route Service Service Distributed Coordinator user portal admin portal ConfigServer 阿⾥里里巴巴开源 VIPServer Diamond TaoKeeper Nacos 分布式⼀一致性(ZAB,Piv-Raft,Gossip,SW,AsyncNotify,Timer-DUMP) MySQL Derby Disk File CMDB GNS ETCD Name Server Nginx/ LVS Log &Stre am REGI IDC IDC REGION IDC IDC REGION IDC IDC https://github.com/alibaba/nacos
22. Nacos - ⽀支持Metadata 和 Weight的注册中⼼心 Nacos 1.0 Service Infra 服务注册与发现 服务元数据管理理 服务连接与调⽤用 服务配置管理理 服务健康管理理 服务⽣生命周期管理理 服务限流与熔断 服务拓拓扑依赖分析 故障隔离 滚动升级 服务弹性 Service Managem service Service-Centric Architecture Traffic Management 环境隔离 智能路路由 负载均衡 流量量调度 服务SLA管理理 服务安全策略略 Service Integration&Mark eting 优雅上下线 异地多活 服务共享 服务协议转换 服务⽬目录管理理 服务聚集与集成 服务跨域治理理 服务评价系统管理理 遗留留系统集成 Dubbo 4.0 + Nacos 2.0 - An Open Service Platform Kubernetes ⽣生态 Nacos Dubbo ⽣生态 Spring ⽣生态
23. 加⼊入我们 Nacos 社区交流群 9 群 阿⾥里里巴巴中间件微信公众号 https://nacos.io https://github.com/alibaba/nacos
24. 总结 • 定义并介绍了了软负载的概念 • 介绍了了阿⾥里里巴巴基于软负载的应⽤用场景及技术体系 • 介绍了了服务发现到软负载的理理念认知升级 • 介绍了了数据算法驱动的精细流量量控制的 “软负载”理理念

相关幻灯片