- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
京东 王华夏 - 《新一代数据中心对传统基础软件架构的挑战》
展开查看详情
1 .《新一代数据中心对传统基础软件架构的挑战》 演讲者/王华夏
2 . 01 一个典型案例. 02 服务发现和域名解析. 业务需求驱动技术创新 03 存储和镜像替换. 04 新的挑战. 05 终极目标.
3 .真实案例 关键词 :11.11 关键词 :23:50 关键词 :BUG CPU使用率 100.00% 80.00% 60.00% 40.00% 20.00% 0.00% z 上午12:00:00 z 上午2:24:00 z 上午4:48:00 z 上午7:12:00 z 上午9:36:00 z 下午12:00:00 z 下午2:24:00 z 下午4:48:00 z 下午7:12:00 z 下午9:36:00 z 上午12:00:00
4 .如何活过11.11? 代码部署 负载均衡挂载 容器申请 文件拷贝 域名解析生效 JDOS1.0容器集群发布方式
5 .紧急扩容过程中的挑战 负载均衡服务发现 域名服务快速生效 Severing 文件快速拷贝
6 .问题如何解决? 负载均衡挂载 一键扩容 文件挂载 域名解析生效 JDOS2.0容器集群发布方式
7 . 01 一个典型案例. 02 服务发现和域名解析. 业务需求驱动技术创新 03 存储和镜像替换. 04 新的挑战. 05 终极目标.
8 .负载均衡-1 JDOS 容器化部署 01 • 全部组件支持容器化部署. Load Balance Control Center etcd 健康检查 RESTful API Control Manager Docker Auto Scaler 02 • 健康检查支持服务自动发现. LoadBalancer Info Cache Manager etcd Monitor DPDK Driver Haproxy/nginx Driver IPAM & Scheduler 自动扩容 03 gRPC Server etcd • 根据实际流量自动扩容集群 gRPC agent Service Endpoint L4&L7 Load Balancer 04 • HA和Nginx实现7层负载均衡 • DPDK实现4层负载均衡.
9 .负载均衡-2 Router Router Table: Router Table: Dest:10.20.3.0 via:10.20.3.2 Dest:10.20.3.0 via:10.20.3.2 Dest:10.20.3.0 via:10.20.4.2 Dest:10.20.3.0 via:10.20.4.2 L4软负载均衡实现 Dest:10.20.3.0 via:10.20.5.2 Dest:10.20.3.0 via:10.20.5.2 01 Dest:10.20.4.0 via:10.20.3.2 Dest:10.20.4.0 via:10.20.3.2 • 非LVS软负载均衡 10.20.3.254 10.20.3.254 10.20.4.254 10.20.4.254 10.20.5.254 10.20.5.254 Dest:10.20.4.0 via:10.20.4.2 Dest:10.20.4.0 via:10.20.4.2 Dest:10.20.4.0 via:10.20.5.2 Dest:10.20.4.0 via:10.20.5.2 Dest:10.20.5.0 via:10.20.3.2 Dest:10.20.5.0 via:10.20.3.2 Dest:10.20.5.0 via:10.20.4.2 Dest:10.20.5.0 via:10.20.4.2 BGP BGP BGP BGP BGP BGP Dest:10.20.5.0 via:10.20.5.2 Dest:10.20.5.0 via:10.20.5.2 VIP:192.168.100.2 VIP:192.168.100.2 高可用 10.20.3.2 10.20.3.2 10.20.4.2 10.20.4.2 10.20.5.2 10.20.5.2 02 • 集群模式. quagga quagga quagga Skylb DPDK KNI Skylb DPDK KNI Skylb DPDK KNI Load balancer Load balancer Load balancer 高性能 03 • 210W QPS. Service VIP实时生效 Service Service 04 Endpoint Endpoint Endpoint • 秒级生效. https://github.com/tiglabs/jupiter
10 . 域名解析服务-1 容器化部署 JDOS Client Service 01 Endpoint Watch Service Get Service DNS Req/Resp IP port scan 实时生效 02 DNS req/resp RESTful API Service to DNS DNS Server Check IP status LB功能 03 Write to/Delete Read DNS from Read DNS from /Write DNS to /Del/Update Read IP from /Update IP status etcd (DNS DB) 04 域名信息记录ETCD ContainerDNS https://github.com/tiglabs/containerdns
11 . 域名解析服务-2 DNS SERVER高可用 01 • 集群模式 • 方便扩容 DPDK技术加速 02 • 网卡加速 超高性能 03 • TPS超过10000w. TPS 千万 1.07 1.06 1.05 1.04 1.03 1.02 1.01 8:00 8:00 8:00 8:01 8:01 8:01 8:02 8:02 8:02 8:03 8:03 8:03 8:04 8:04 8:04 8:05 8:05 8:05 8:06 8:06 8:06 8:07 8:07 8:07 8:08 8:08 8:08 8:09 8:09 8:09 8:10 8:10 8:10 8:11 8:11 8:11 8:12 8:12 8:12 8:13 8:13 8:13 8:14 8:14 8:14 8:15 8:15 8:15 8:16 8:16 8:16 8:17 8:17 8:17 8:18 8:18 8:18 8:19 8:19
12 .域名解析服务-3 192.168.1.0 DNS 192.168.1.1 request 192.168.1.2 域名来代替一系列IP ContainerDNS 192.168.1.3 192.168.1.4
13 . 01 一个典型案例. 02 服务发现和域名解析. 业务需求驱动技术创新 03 存储和镜像替换. 04 新的挑战. 05 终极目标.
14 .ContainerFs-1 大容量高性能 Mata nodes Raft • 满足业务增长对文件存储的容量需求. • 采用定制存储硬件高性能 非常适合数据吞 吐型应用. metanode metanode metanode MataData Table Leader Fllower Fllower ( raft group ) 共享访问 • Fuse标准接口实现共享挂载访问 业务无需任何 Client 修改即可无缝使用. Key : Value : • 帮助多业务多实例应用获得相同的数据源. App LibFuse parent ino + filename Inode attributes Volume VFS FUSE Data nodes 云原生 • ContainerFS部署不依赖特殊硬件 可以在kubernetes Datanode1 Datanode2 Datanode3 BlockGroup 集群编排部署. BlockID-x BlockGroup • 支持kubernetes标准CSI接入 是行业内最早支持CSI BlockID-x BlockID-x BlockID-x BlockID-x BlockID-x BlockGroup 接入标准. BlockID-x BlockID-x BlockID-x BlockID-x BlockID-x BlockID-x BlockGroup 低成本 DISK DISK DISK • 借助大量计算节点的硬盘位 实现复用 节省采购成本. • 副本可配 EC等功能进一步降低存储空间 降低成本. https://github.com/tiglabs/containerfs
15 .ContainerFs-2 ContainerFS Share Storage K8s Pod • 通过K8s PV卷共享 • 同一服务共享文件 ContainerFs Plugin • 扩容自动挂载 • K8s无缝集成 ContainerFS Volume
16 .共享存储够了吗? 小文件 同一个集群中需保留文件有差异 同一个集群中文件生命周期不统一
17 .一种并不优雅但有效的解决方案 调度请求 Scheduler 资源锁定 Node 1 Node 2 POD 1 POD2 本地磁盘持久化 镜像 磁盘 调度请求 配置 Scheduler 镜像复用 快 Node 1 Node 2 POD 1 牺牲了调度的灵活性
18 .JDOS生态 业务系统 基础中间件 计算系统 秒级扩缩容 • 秒级实现集群的扩容和缩容. 订单系统 分布式数据库 Spark • 秒级的负载均衡、DNS服务发现 JIMDB Flink 库存系统 JMQ Storm 结算系统 ES Tensorflow/Caffe 故障自动恢复 …… …… …… • 服务器故障容器自动迁移 • 容器故障,自动恢复. JDOS统一资源调度管理 DevOps支持 • 代码编译、镜像构建 亲和性 业务优先级 抢占式调度 自定义调度 容忍缺陷 业务高峰 • 从代码到测试上线全链路 反亲和性 全链路监控 • 系统状态秒级监控 数据中心 马驹桥 Cluster 0 • 业务进程函数级监控 容器 0 廊坊 Cluster 1 容器1 CPU GPU 内存 容器2 广州 Cluster 2 网 络 服务器 : 20000 存 储 宿迁 Cluster N 容器数 : 450000
19 . 01 一个典型案例. 02 服务发现和域名解析 业务需求驱动技术创新 03 存储和镜像替换. 04 新的挑战. 05 终极目标.
20 .新的挑战-无界零售 散 限 小 多 部署场所分散 部署场所资源有限 部署场景规模小 部署场所多 部署场所分散全国各地 部署场所资源有限,服务器 每个部署场所规模都比较 部署场所非常多,业务程序 网络分散需要公网连接 数量有限,网络带宽有限, 小,需要的网络资源少,内 需要批量快速部署全部场所 交换机规格也有限 存,cpu,磁盘需求都比较 小
21 .新零售场景中的新问题 门店如何共享数据中心资源? 线上的基础设施服务如何延伸到线 下? 门店IT设施如何低成本管理? 海量同质化的门店,如何快速部署?
22 .第四代零售革命中的IT基础设施生态 门店1 门店1 IDC 不同规模 实现一次 充分利用 的场景, 边缘计算 JD机房资 构建,批 采用不同 降低网络 源来部署 量部署的 的部署方 消耗 基础服务 方案 案
23 . 01 一个典型案例. 02 服务发现和域名解析 业务需求驱动技术创新 03 存储和镜像替换. 04 新的挑战. 05 终极目标.
24 . 我们的核心价值是什么? 方便研发人员进行业务部署 服务 支持线上服务的稳定 为公司赚钱 公司任何部门的核心价值都是为公司省钱,赚钱 钱 为公司省钱
25 .资源使用率-现实情况 资源使用率曲线 40.00% 35.00% 30.00% 25.00% 20.00% 15.00% 10.00% 5.00% 0.00% 0:00 2:24 4:48 7:12 9:36 12:00 14:24 16:48 19:12 21:36 0:00 离线计算资源使用率 在线计算资源使用率 在线业务资源使用率
26 .部署层面的解决方案 离线和在线业务混部 不同用户的任务混部 将离线和在线业务进行隔离部署相较于混合部署,需要额外 不同用户的任务隔离部署较之混合部署,需要额外增加 30 % 增加20~30%的机器。 150 % 20~150%的机器。 大型集群部署 细粒度资源请求 将大型集群划分为多个小型集群相较于整合的大型集群,需 粗粒度的资源请求相较于细粒度的资源请求,需要额外的 50 % 要更多的额外机器。将一个大型集群划分为两个小型集群, 需要25~50%的额外机器。 50 % 30~50%的资源。
27 .阿基米德调度-JD实践 调度的核心 灵活超卖 资源分配算法(Requests / Limits ) 针对业务进行分级打分 亲和性和反亲和性 ) 资源回收
28 .阿基米德调度-安全问题 核心业务分布均匀 CPU和内存的保护 磁盘和网络限速 安全也是一种边界 合理超卖 大数据业务严格限制
29 .阿基米德调度-成果 +43% +81% -17% CPU平均使用率 内存平均使用率 数据中心能耗 弹性调度所有计算资源,节省服务器采购成本数亿元