Hyper: 基于虚拟化的Docker 引擎
王旭
CTO & Cofounder, hyper.sh
Docker 热潮
• 2015年4月14日,Docker获得D轮9500万美元融资
• 2015年4月6日,CoreOS 宣布获得 Google 领衔的1200万美元投资
• 2014年11月13日,亚马逊在 re:Invent 大会发布 Amazon EC2 Container Service
(ECS)
• 2014年11月5日,谷歌发布 Google Container Engine (GKE)
• 2014年10月15日,微软和 Docker 宣布将合作把 Docker 移植到Windows上
• 2014年7月10日,微软宣布将与谷歌、Docker 合作,在 Azure 上支持 Kubernetes 和
libswarm
• 2014年6月9日,Docker 1.0 正式发布
• 2013年3月20日,Docker发布第一个版本
Docker的创新点在哪
Docker 如此火爆,也把容器技术带到焦点,但是究竟什么引爆了 Docker?
Docker = 容器?
• 几种常见的容器技术:
Unix Chroot 1982
FreeBSD Jail 1998
Linux vserver 2001
Solaris Zone 2004
Linux OpenVZ 2005
Linux LXC 2008
来源:Wikipedia: Operating-system-level virtualization
Docker 究竟是什么
Docker Container
(LXC)
Layered Image
(aufs)
Docker 的核心在于以应用为中心
• 一致性
–开发-测试-交付
• 快速收敛
–降低自动化困难
• 操作系统回归本原
– 应用与操作系统解耦
虚拟化的问题
多年来,虚拟机一直致力于真实模拟硬件,并承载完整的操作系统,可这并不是我们真正要的
“虚拟机”的问题—— 不在“虚拟”而在于“机”
Hyper: 应用中心的虚拟化
既然虚机的问题在于没有做到“应用为中心”,
那么是否可以做面向应用的虚拟化呢?
Hyper 是什么
Hyper Hypervisor Docker Image
Hyper 如何工作
Light Kernel on Hypervisor
Initrd: Hyperstart
App
(Docker Image)
App
(Docker Image)
Hyperd
虚拟机
Hyper 命令行工具
Hyper 的性能与开销
• 启动时间 (启动完整应用)
– 350ms ( Xeon 1270
3.5GHz, 4-Core)
– 500ms ( i3 5010U
2.1GHz 4-Core)
• 运行时
– CPU: 与宿主机接近
– IO:
WHY HYPER
既然已经有容器,为什么还要用虚机
Hyper vs. 容器
• 公有容器服务
– 用户需要容器服务
– 隔离性:
• 虚拟化:独立内核、基于硬件辅助强隔离
• 容器:共享内核的弱隔离
• 既有系统
– 私有云中的已有大量虚拟机
• “Docker化”演迚的需求 vs 已有虚拟化基础设施
– 已有硬件存储与网络解决方案
• OpenStack Cinder/Neutron
Hyper开源项目
• 主页与文档
– https://hyper.sh
– https://hyper.sh/faq.html
– https://docs.hyper.sh
• Github
– https://github.com/hyperhq/hyper
– https://github.com/hyperhq/hyperstart
HyperStack
• Hyper + OpenStack
• Hyper 作为DCOS的调度单位
– Magnum 框架
– Mesos & Kubernetes
• OpenStack提供存储、网络等组件
– Neutron, Cinder 等标准API接口
– OpenStack 社区成熟的设备厂商支持
Q & A
Backup: More Features
• Pod: group of apps, rather than OS
• Change pod on the fly: eliminate the boot
time
• Persistent mode: update pod without a VM
reboot
• Kubernetes Pod Support