转自 http://www.infoq.com/cn/articles/sheng-talk-about-docker
Rancher Labs是由梁胜(CloudStack创始人)创立的一家提供容器服务的云计算公司,产品包括RancherOS和Rancher。近日,Rancher Labs和东网科技宣布在国内成立合资子公司,全面开展Rancher在华的业务。InfoQ记者采访了Rancher CEO梁胜,与他探讨了容器、OpenStack、CloudStack等技术的发展和变革。本文根据采访整理而成。另外,梁胜还是ArchSummit全球架构师峰会的主题演讲嘉宾,欢迎关注。
再谈CloudStack和OpenStack
CloudStack项目已经贡献给了Apache,目前发展很健康。之前,大部分的开发其实都是思杰在做,而现在,社区也参与了很多功能的开发,社区这块,CloudStack已经逐步稳定,有了自己的开发节奏。现在的基础设施云也比较成熟了,并且性能增加的速度也没有之前那么快了,这块我觉得对用户和客户来说都非常有好处。很多的Apache开源项目,已经有5年或者10年的历史了,它们都很稳定,CloudStack也差不多进入了这个状态。就目前来看,如果用户想快速搭建一个稳定的基础设施云,除了CloudStack以外,其实也没有太多的可以选择的技术。OpenStack更适合一些比较大规模的项目,它和CloudStack的受众用户和应用场景并不完全一样。
提到OpenStack,很多人都会关注它和CloudStack的对比。OpenStack最初是由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,这两个机构非常开放,并且他们既不是软件厂商,又不是硬件厂商,所以OpenStack早期就获得了很多厂商的支持。OpenStack在社区和生态方面建设的确实比CloudStack好很多,他们做开源的思路比较特别,以厂商为最初的切入点。CloudStack走的是另外一条路,我们想建立一个基于用户的社区,吸引更多的开发者来贡献代码,所以CloudStack的核心思路是简单和好用,从这方面来讲,CloudStack就非常成功,我们也获得了很多的用户。
但从CloudStack和OpenStack的初衷来看,我觉得这两个开源软件都不是特别成功,因为当时它们都是受亚马逊的启迪,想成为企业搭建公有云或者私有云平台的基石。但现在放眼整个工业界,不管是国外还是国内的几个公有云,很少有基于OpenStack和CloudStack做的,大部分厂商反而是选择自己研发。私有云这块的市场,在我看来,并没有真正起来。就其原因,我觉得并不是技术的问题,而是产品和市场的问题。具体到美国来看,私有云市场基本上已经等同于服务器虚拟化,大部分的公司把OpenStack之类的技术看作是一种自动部署虚拟机的技术。尽管OpenStack、CloudStack提供了API,但很多用户并没有把云和DevOps流程联系到一起,像软件定义网络、软件定义存储、负载均衡之类的特性也没有真正用起来。
为什么离开思杰?
简单来说,是容器技术吸引了我,我认为它是一个新兴的发展方向。特别是从私有云的角度来看,容器技术让我眼前一亮。再回来去想CloudStack当时碰到的一些问题,不管是市场还是产品,归根结底还是它并不能把企业的产品研发流程、DevOps流程、大规模应用的部署流程联系起来,而容器却可以。之前CloudStack想拿下的客户,它们也是最早采用容器技术的团队,这也让我更坚信自己的判断。另外,对于容器技术,最吸引我的地方并不是它的效率有多高,技术有多先进,启动速度有多快之类,而是它庞大的用户群。
离开思杰后,我开始做Rancher,Rancher想帮助客户搭建属于自己的基于容器的私有云平台。容器技术很简单,但是容器云并不简单,Rancher想把容器云做的简单易用,以帮助企业更好的利用工程师资源和机器资源。
容器和OpenStack的关系
容器和OpenStack应该是互补的关系。因为OpenStack可以解决一些容器现在不能解决的问题,特别是基础设施这一层。容器需要一个效率高、安全、隔离度好的基础设施,而这正是OpenStack可以提供的。反过来,容器又可以帮助管理OpenStack之上的应用。当然,这两个技术在某些维度上又有一些功能重合,这也很正常。比如OpenStack有Heat项目可以管理上层应用,但是当应用容器化之后,用户就不需要使用Heat来管理了,取而代之的可能就是Kubernetes之类的项目。虽然功能有重叠,但基本上来说还是互补的。
社区有人也提到直接绕过OpenStack这样的虚拟层,直接在裸机上运行容器。就目前的情况来看,在裸机上运行容器的客户还非常少,如果这是一个趋势的话,那走到这一步还需要很久的时间。容器平台和IaaS的关系有点像浏览器和操作系统的关系。随着越来越多的应用可以直接运行在浏览器上,用户对操作系统的依赖越来越少。容器平台使用户更容易从一个IaaS云转移到另一个IaaS云,就像浏览器使用户更容易从一个操作系统换到另一个操作系统。但从另一个角度来看,没有传统操作系统而只能运行浏览器的电脑(像Chromebook)还不多见,大部分用户还是选择使用安装在传统操作系统上的浏览器。
另外,我发现在美国,DigitalOcean也非常受用户喜欢。DigitalOcean非常简单,直白点说就是VPS+API,但性价比很高。仔细想想,未来的基础设施云不一定要很复杂,像DigitalOcean这样就足够了。如果是这样,反而对OpenStack有好处,因为OpenStack目前的市场占有率还非常小,所以它可以利用这个时机,布局好容器技术,然后简化产品,尽量做得简单易用。
如何看Docker?
Docker这个技术很不错,并且社区也做的很棒。他们的社区基本上是Docker一个公司在运营,也没有采用传统的基金会模式,但我觉得他们运转地很不错,也很开放,基本上好的改进都可以被采纳。Docker的迭代速度非常快,尽管功能不是很稳定,但可以看出这个社区的活力。如果要说以Docker为代表的用户社区和以OpenStack为代表的厂商社区哪个好,我觉得还是Docker,因为有了用户,根本不需要担忧没有厂商的支持。当然,技术和社区都是次要的,在我看来,Docker最重要的地方还是它的用户。
Docker这个产品给了我很大的启发,如果让我再重新做一次CloudStack,那我的定位一定是简单好用。之前CloudStack做得太重了,大而重的东西,我现在一点都不觉得好。
Rancher Labs是一家做容器管理的公司,产品包括RancherOS和Rancher,Rancher OS是一个高效能的轻量级Linux分发版本,专门设计来运行容器如Docker等。很多人都是从RancherOS开始了解到Rancher。其实为什么做RancherOS,也和我们看好Docker有关系。最开始,我们并没有自己开发OS,而是使用CoreOS。但在使用过程中遇到了一些问题,因为CoreOS使用的是Systemd作为系统和服务的管理工具,而Systemd和Docker在某些地方配合的却不好,并且很难修改。所以在去年年底,CoreOS就决定开发自己的容器技术Rkt,Rkt和Docker最大的区别就是它没有Daemon,直接基于Systemd。所以Rkt和Systemd整合的非常好,在CoreOS这样的系统上,Rkt会相对更稳定。当然,从技术角度,我们也可以理解为什么CoreOS要这样做。
但后来我们放弃了CoreOS,因为我们不能失去Docker,它有那么大的用户量,这是其它容器技术没办法比的,并且Systemd是一个内部技术,没有太多的真正用户。于是我们决定用CoreOS相反的思路重新开发一个OS,去掉Systemd,保留Docker。
今年6月,Docker联合其它国际大牌公司成立了OCI,这对Docker来说意义重大。之前很多人总是认为Docker是一个厂家标准,并不是一个工业界的标准。OCI的成立,也暗示着Docker公司愿意更加开放,愿意和Linux基金会一起推动容器技术的落地,一定程度上消除了大家的疑虑。