• 1. Gaia——万台规模的Docker应用实战罗韩梅(mavisluo)
  • 2. Docker Gaia Practical application
  • 3. Dockerdocker可移植、跨平台的特性将彻底改变程序的交付方式,并彻底释放了虚拟化的威力。
  • 4. Docker核心技术栈1)namespace:进程组虚拟化的手段 2)cgroups:资源的隔离和统计 3)aufs:Another Union File System,是一个联合文件系统
  • 5. Docker 核心技术栈 ——Linux Namespace进程运行的时候,周边的环境和资源有哪些? Linux内核 文件系统 网络系统 PID、UID、IPC等资源 内存、CPU、磁盘等资源 其它 进程虚拟化/隔离
  • 6. Docker v.s. VMHardwareHost KernelHypervisor(VMM)Guest KernelBinaries/ LibrariesAppSystem VirtualizationGuest KernelBinaries/ LibrariesAppGuest KernelBinaries/ LibrariesAppHardwareHost KernelBinaries/ LibrariesAppBinaries/ LibrariesAppBinaries/ LibrariesAppContainer Virtualizationnamespace & cgroup性能和大小 运行开销、部署速度、启动速度 迁移 隔离
  • 7. Docker 带来的革命1)快速分发、复制 2)轻量 3)隔离 4)解决了环境依赖的复杂性
  • 8. Gaia(盖娅) 云操作系统,为数据中心提供聪明的大脑
  • 9. Docker,不止是DockerDocker可以更好的发挥能量的地方在于和云平台的结合!
  • 10. Gaia as Cluster Operation SystemAll on Gaia! ——成为公司级别基础设施Gaia(盖娅):希腊神话中的大地之神,是众神之母,所有神灵中德高望重的显赫之神。Gaia以后可以承载各种编程框架、各种应用,是个统一的资源管理调度系统——各种业务都植根于“大地”之上。
  • 11. 云操作系统——Gaia(盖娅)
  • 12. Gaia运营现状8800:单集群节点数 10w+:调度能力覆盖10w个核 3.5k:作业并发度数 2500:资源池个数 0.2ms:container平均调度匹配时间 95%:峰值vcore、memory使用率 120w: 日运行作业数 9900w:日运行container数Gaia is ready for Docker!
  • 13. Gaia的价值——资源共享、降低成本月峰值利用率不到30%,月平均利用率不到10%! 为了满足峰值资源需求,业务只能以最大资源部署应用; 业务间都是隔离封闭的,资源无共享,无法错峰交谷; 整个业务存在这样的情况,单个进程也常以最大资源需求部署; 不同业务都有自己的buffer,公司总的空闲机器就会有很多,这些buffer对业务迅速扩容很有意义,但是各个buffer加起来的资源空闲不能忽视。
  • 14. Gaia的价值——资源共享,降低成本为什么Gaia可以提升资源利用率? 不同业务对资源需求不同,Gaia可提供灵活的资源模型 Cpu密集型,io密集型…… 不同业务的高峰期不一样(在线+离线共享集群) 凌晨的离线批处理业务,白天的在线业务…… 同一个机器上分裂出多个container,Gaia提供其隔离性 一个业务的问题不会影响同一个机器的其他业务 共享集群,节省buffer
  • 15. Resource Pool Gaia的价值——开发模式云时代——像使用一台服务器一样,使用整个集群的资源。 api时代——不超过十个的api完成所有的操作:控制、查询等 测试程序Gaia APIs
  • 16. Resource Pool appMaster Gaia的价值——动态伸缩MonitoringExpandShrinkResourceManager1)Monitoring:自不但可以监控进程的存活,还可以监控业务本身的压力; 2)Expand:根据决策逻辑,对业务进行扩容; 3)Shrink:根据决策逻辑,对业务进行缩容; 3)操作模式简单:以上特性利用Gaia api即可完成; Gaia API
  • 17. Gaia的价值——容灾容错1)本地retry:自动拉起重试 2)Application级别retry:一个attempt失败,可以自动重新启动新的attempt。 3)migrate机制:磁盘异常、机器异常等,将用户程序自动迁移。 4)系统灰名单、黑名单机制,避免失败:自动规避集群内异常的设备。 5)利用Gaia的监控,应用自定义容灾
  • 18. Gaia的价值——运营模式用户不需要知道幕布后是什么…资源申请给我资源启动程序监控程序展示程序
  • 19. Gaia的价值——灰度运营更加便捷、更加可靠的升级、回滚方式 操作粒度更加精细:以container为单位applicationattempt_ncontainerAMcontainer……container
  • 20. 大规模Docker集群挑战资源隔离 cpu、memory、disk、network? 调度器 在线、离线? 吞吐 …… Docker的坑 Bug Zookeeper session expire Swap Gaia的挑战 对业务的改变 自身稳定性 Overhead
  • 21. Gaia关键技术—— 调度器sfair多业务共享 公平的使用集群资源 保证各自业务的quota 保证高优先级作业 抢占 Service batch 集群整体资源利用率 cpu和memory-intensive的作业混布 大作业和小作业混布 Service和batch混布 可扩展性 调度吞吐Sfair——Scalable Fair Scheduler
  • 22. Service registry and service discovery Why do we need service discovery? --Machine is anonymous. --Ports are resources.
  • 23. Docker registry 1)可靠性 2)无限容量 3)多server的负载均衡 4)解决跨IDC问题 5)可使用官方image
  • 24. Better dockerBug fix: 修复对于bindmount为true时,config path无法清除的问题 修复Docker非0退出时rm不生效的问题 退避Address on use失败的问题 新增功能: 解决本地完成container的image清理问题 支持环境变量的传递: GAIA_HOST_IP:主机ip GAIA_INSTANCE_ID:实例id GAIA_PORT_MAPPING:虚拟端口映射 资源管理方面的优化
  • 25. 资源管理——内存Softlimit EMC—— Elastic Memory Control (弹性内存控制) 1)不会触发系统oom kill:使用了container机制,且task_cgroup是hardlimit。 2)可以容纳更多container: 可按照平均值分配container。 3) 作业失败率大大降低:container之间是softlimit机制。 4) 对用户资源评估能力要求降低/cgroupstask_cgroupscgroup 1container 1container 2container n…cgroup 1cgroup 1attachattachattach……callBackFuncnm_cgroupdn_cgroupsys_cgroupGaia kill policyhardlimit
  • 26. 资源管理——CPUtask_cgroups Root (1024)container 1 (1024)container 2 (1024)container n (1024)…sshd、 网管agent等系统进程 + NM 进程 +DataNode进程 1)cpu share + cpuset结合的机制; 2)为系统进程留足资源; 3)将NM与DataNode进程纳入container管理; DataNode (1024 * 3)NM进程 (1024)系统进程
  • 27. 资源管理——网络带宽1)TC+cgroups相结合的方式控制。 2) container之间的网络带宽可以相互borrow,可以充分利用网络资源。Root class(1:)child class 1container 2…attachattach……container 1child class 2child class ncontainer nattachattachborrow
  • 28. Practical application 吃到美味螃蟹的应用
  • 29. applications on Gaia
  • 30. HECD on Gaia ——Haproxy+Etcd+Confd+Docker
  • 31. Lhotse on Gaia
  • 32. Hermes on Gaia
  • 33. Gaia dev cloud Docker开发云DockerDockerDockerDockerDockerDockerDockerDockerDocker1)无IP 2)有root 3)易于共享和分发 4)节省资源 5)webshell编程
  • 34. Gaia应用总结开发的云 应用的云 云的云All on Gaia!MR on GaiaStorm on GaiaSpark on GaiaHive on GaiaHermes on GaiaLhotse on GaiaTRE on GaiaTDBank on GaiaDNN on GaiaPhoneBook on GaiaTDP on Gaia…… on Gaia
  • 35. Thanks