推荐序
2013年,Docker问世,由于其简练易用的使用范式,极大降低了容器技术的使用门槛,引爆了容器技术,一场轰轰烈烈的由容器带来的新计算革命开始了。
2014年,预见到了容器带来的革命性变化,七牛内部成立了一个新项目——QCOS,全称为QiniuCloudOperatingSystem(也可以理解为Qiniu Cluster Operating System),目标是实现一个数据中心操作系统,让开发人员使用数据中心如同使用一台机器一样容易。在当时,Kubernetes项目也刚刚开始,还在规格设计阶段。我们通读了Kubernetes的设计,决定自己干。这是一个非常疯狂的想法。促使我们决定自己干的原因有两点:一是我们存储也自己干,而且干成了,所以计算自己干,也不无成功的可能;二是Kubernetes刚开始,一切如果跟随Kubernetes,那么我们做起事情来肯定束手束脚,没办法按照商业公司的推进速度来推进。
但是做着做着我们就发现,计算不像存储,计算问题是一个非常开放性的问题。而以容器为核心的计算系统,其复杂性也不同于以虚拟机(VM)为代表的计算系统,因为虚拟机(VM)是以虚拟一台机器为边界的,其问题域同样比较闭合。但是容器计算就是要打破机器的边界,让计算力在数据中心内自由调度。这个问题域涉及面非常广,除了常规的计算力调度、负载均衡、部署升级、服务发现、日志与监控,这些东西都要以全新的方式来解决。
实际上给数据中心做一个操作系统并不是什么新想法。20世纪80年代中期,贝尔实验室就开启了一个名为Plan9的操作系统项目,目的就是做一个数据中心操作系统。参与这个操作系统的名单都大名鼎鼎:Rob Pike、Ken Thompson,等等。你没看错,就是今天创建了Go语言的那帮人。他们在Plan9项目解散后被Google抢了过去,换了一个思路继续做数据中心操作系统 —— 从面向数据中心的语言开始:Go语言就这样诞生了。而随着Go语言的流行,Docker、Kubernetes接连诞生,继续续写着数据中心操作系统的梦想。
Kubernetes诞生之初,虽然嘴里衔着Google Borg系统的金钥匙,但是同期竞争的项目还是比较多的,除了七牛自己内部发起的QCOS外,比较知名的还有Docker Swam和Mesos。但是到了2016年,这场竞争越来越趋于Kubernetes一统天下。七牛内部QCOS项目也放弃了自研,将方向转向了Kubernetes阵营。
QCOS项目对七牛有着特殊的意义,它是七牛业务多元化的开始。在此之前,七牛秉承专注做好一件事情,着眼于对象存储一个点,从单点切入,把单点做到极致的思路,获得了极佳的口碑,大量的移动互联网应用都选择了七牛作为它们的图片和视频托管的云服务提供商。选择做QCOS,实际上是我们在打第二个根据地时,选择了一条极其艰难的道路。
今天我们QCOS团队(内部已更名为KIRK团队)发起了Kubernetes in Action一书的翻译,他们邀请我给译本作序,我脑子里不由自主想起了这段历史。选择基于Kubernetes,是我们从商业上来说的务实选择,但是它并不代表放弃自主研发,只是把梦想暂时封存在心里。中国古话说,师夷长技以制夷,别人的好东西我们是要学习的,学好了我们才能完成从模仿到超越的过程。
Kubernetes的背后,是一场新计算革命,是真正的云计算2.0,我们期待更多有想法的开发者能够学习Kubernetes,能够加入这场计算革命。也欢迎大家加入七牛。
是为序。 —— 许式伟 七牛云CEO