京东 王华夏 - 《新一代数据中心对传统基础软件架构的挑战》

随着业内容器技术全面接受落地,特别是Kubernetes集群编排大规模用于生产实践,对数据中心基础软件带来全新挑战,本次分享以容器生态分布式文件系统以及分布式高性能域名解析为切入点,讲述京东如何重新定义和实践基础软件支撑容器生态建设
展开查看详情

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平均使用率 内存平均使用率 数据中心能耗 弹性调度所有计算资源,节省服务器采购成本数亿元