京东 JDOS2.0 平台与敏捷数据中心探索历程 京东集群研发部吴正轩
容器技术在京东商城历史与发展 JDOS2.0 平台 京东敏捷数据中心建设 开源计划 Q&A
JDOS 1.0 l 分物理机 => 分容器 l 业务系统 100% 全面容器运行 l 上线周期由 1 天降低到 10 分钟 l 少买 3/4 机器 Containers VMs Physical servers JD Data Center Operating System (JDOS) JFS OVSSS JD Linux Kernel 3
JDOS 发展历程 业务容器化全面落地支撑双 11/618 积累了大量的容器运营经验 对 Linux 内核进行了深度定制 全面建设 JDOS 1.0, 实现了容器分配的秒级伸缩 JDOS2.0 全面推出从基础设施转向应用平台 推进了业务从源码到编译打包到镜像的全流程 逐步解除对部署系统的依赖 建设了平台化的 JDOS 2.0, 实现业务层级的秒级伸缩 2014 2015 2016 2017 4 JDOS1.0 推出, 推进业务容器化 推出 JDOS 平台将业务逐渐接入容器业务间通过容器实现隔离 JDOS 容器生态建设 完善容器的监控 网络 存储等容器生态建设建设了镜像中心, 为平台化铺平道路积累了丰富的运营监控数据
容器技术在京东商城历史与发展 JDOS2.0 平台 京东敏捷数据中心建设 开源计划 Q&A
JDOS 2.0 集群部署架构 JDOS-api 镜像中心 自动构建 集群管理 api file Source Code Jenkins Master controller scheduler SkyLB SkyNet SkyDNS Jenkins Slave Pod 生产环境 App Node App kubelet Network Volume SkyFS ElasticSearch App Log Monitor Prometheus Image 测试环境 App App App 6
JDOS 2.0 典型业务 7
SkyDNS User JDOS2.0 docker Load Balancer Get Service DNS req/resp IP port scan IP port scan API Service to DNS DNS Server Check IP status Write to/delete Read DNS from Read DNS from /Write DNS to /Del/Update etcd Red IP from /Update IP status 8
SkyLB Kubernetes master Create/Del/Get RC for Service Watch Service Load Balance Control Center grpc grpc Kubernetes Load Balancer Based on DPDK Load Balancer Load Balancer Load Balancer Load Balancer Load Balancer Load Balancer...... DPDK DPDK DPDK 9
SkyLB VIP:192.168.100.2 BGP Router 10.20.3.254 10.20.4.254 10.20.5.254 BGP BGP Router Table: 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.5.2 Dest:10.20.4.0 via:10.20.3.2 Dest:10.20.4.0 via:10.20.4.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.4.2 Dest:10.20.5.0 via:10.20.5.2 10.20.3.2 10.20.4.2 10.20.5.2 quagga quagga quagga Skylb DPDK KNI Load balancer Skylb DPDK KNI Load balancer Skylb DPDK KNI Load balancer Service Endpoint Service Endpoint Service Endpoint 10
ContainerFS Mata nodes Raft Key : parent ino + filename metanode Leader metanode Fllower metanode Fllower MataData Table ( raft group ) Volume manager client Value : Inode attributes app LibFuse Volume VFS FUSE Data nodes BlockGroup Datanode1 Datanode2 Datanode3 BlockGroup DISK DISK DISK BlockGroup BlockGroup 11
容器技术在京东商城历史与发展 JDOS2.0 平台 京东敏捷数据中心建设 开源计划 Q&A
JDOS 敏捷数据中心是什么 a PaaS platform a cluster manager a container platform an operating system 13
JDOS 敏捷数据中心 14
JDOS 是中间件服务平台 独享集群 Simple API Share powerful Cluster JFS ES JIMDB JMQ JSS JED JDOS 15
JDOS 是组件管理平台 Universe Catalog Repo package Zookeeper chart 容器的镜像 启动命令, 负载均衡配置等 模板管理 Zookeeper 的数量等 无依赖服务 变量管理 依赖管理 Zookeeper Chart JDOS 廊坊一区集群 用户 A 的 zookeeper 集群 Zookeeper 服务的介绍 服务说明 Zookeeper Zookeeper Zookeeper Kafka chart 容器的镜像 启动命令, 负载均衡配置等 模板管理 用户 A 的 kafka broker 集群 Kafka broker Kafka broker Kafka broker Kafka broker 的数量等 依赖 zookeeper 服务 变量管理 依赖管理 Kafka Chart Kafka broker Kafka broker Kafka broker Kafka 服务的介绍 服务说明 JDOS 黄村一区集群 用户 A 的 zookeeper 集群 16 用户 A 的 kafka broker 集群
容器技术在京东商城历史与发展 JDOS2.0 平台 京东敏捷数据中心建设 开源计划 Q&A
开源项目 分布式 DNS https://github.com/ipdcode/skydns 分布式共享存储 https://github.com/ipdcode/containerfs 18
陆续开源 JMQ 消息中间件 JIMDB nosql 存储中间件 JSF RPC 框架 19
Q&A Thank you for your time