对不起,云计算技术又走错路了

语言: CN / TW / HK

(1)OpenStack

2010年,OpenStack开源。好嘛,一堆人乌央乌央拿着开源去搞云计算创业。

到了2013年Docker出来了,所有人都懵了。完了,技术走错道了。所以到了2017年后,所有搞OpenStack创业的都死了不少。不死的,也都转型容器计算了。

(2)CloudFoundry

2003年Spring框架开源,说要干死EJB和EJB商业中间件容器。

2008年,Spring并购了一家公司叫CloudFoundry,可以把Java应用按照依赖关系来自动打包、自动部署、自动监控,一整套应用生命周期管理。这就是Cloud Foundry的价值。

2013年Pivotal公司(EMC和VMWare公司合力投资)大力推广CloudFoundry开源。于是,IBM用它搞了BlueMix,Salesforce用它搞了Heroku,GE和西门子用它搞了物联网平台。

但是对不起,2014年Docker这种打包技术出来了,2015年CNCF K8S技术出来了,比CloudFoundry可以搞自动打包、自动部署、自动监控更好。

用CloudFoundry的人,也走错路了。

(3)Docker

Docker之所以胜出,是因为OpenStack和CloudFoundry都是厚厚地架构了一层。Docker比较鸡贼,其实借助的是Linux内核的一个技术:LXC。这个技术是2008年由Google捐献给Linux开源社区的,最终成为了Linux内核的标准功能。恰好Docker借助了Linux操作系统的这一特性,所以Docker比OpenStack和CloudFoundry都要轻薄快速。

但是笑到最后的真是Docker吗?

不是吧。Docker技术倒是开源,但是Docker公司想挣钱怎么挣钱?所以Docker公司也搞了一套类似K8S的东西。本来以Google为首的CNCF,Docker+k8s免费开源是一对绝配。而这时,手握k8s的Google这次和Docker公司决裂了。毕竟Google是羊毛出在狗身上,在线搜索广告赚的盆满钵满,Android虽然也开源,但Android的应用商店却是收费收的盆满钵满。而对于Docker公司来说,没法羊毛出在狗身上。自然只能决裂。

所以CNCF在Google的带领下,搞了一套容器接口标准,你们只要遵守这套标准,谁实现的容器产品都能和K8S很好的配合。Docker不是唯一选择了。

(4)先说说Mozilla

Mozilla这家公司很神奇。这家公司有三个东西我要一会介绍出来:

1、应用产品:开源浏览器Firefox

2、应用技术:WebAssembly。简称wasm。这种技术能够把各种开发语言技术编译成一种字节码然后在浏览器中安全地运行。在过去,浏览器只能运行JavaScript开发语言,现在各种语言开发的(如C语言、Rust语言、Go语言等等)开发的都能运行了。2017年,四大浏览器厂商全都内置了wasm技术。2019年,wasm技术成为W3C标准。

3、开发语言Rust。Rust这个开发语言具有严格的编译级安全检查机制。所以大家都想用这个语言重新开发操作系统内核。代表Linux的RedHat,代表Windows的微软,代表下一代物联网操作系统(Fuchsia)的Google,都想用Rust重新开发操作系统内核。

(5)再说说WebAssembly

WebAssembly这个东西出圈了。

我记得过去Chrome换了V8 JavaScript引擎后,浏览器的性能骤然提升了一大块,用户体验极佳。这帮助Chrome迅速占领了市场份额。

后来有人一看V8引擎这么好,就把V8引擎从浏览器代码里剥离了出来,这就成了后来可以运行在服务器端的NodeJS。

现在呢,又有人发现WebAssembly这个跑在浏览器端的技术太好了,也剥离了出来,也可以运行在服务器端了。

这个技术严格安全保护。Docker对于权限、内存的管理并不安全。

这个技术性能非常的高。是Docker执行的100倍。

这个技术的体积非常的小,是Docker的100分之一。

所以呢,干Linux内核的RedHat(后台是IBM)、干Windows内核的微软、干Fuchsia内核的Google,和WebAssembly技术的发明公司Mozilla,一起合伙成立了一个联盟,叫做ByteCode联盟。专门进行WebAssembly技术的标准化和独立性。

现在WebAssembly专门制定了开放的标准的接口,各种技术都可以和它对接。

(6)尾声

2020年12月,由Google主力参与的CNCF发了一个声明:K8S 1.20版本以后,不再支持Docker技术。

2020年12月,由Google主力参与的ByteCode联盟还嘿嘿嘿地“凑巧”地发了一个声明:WebAssembly 开放接口1.0正式版本发布。

而且K8S开始有意放慢发布周期:由过去一年发布四次改为一年发布三次。等等WebAssembly 技术快速成长。

移花接木开始。