转载

Go语言,Docker和Kubernetes

当我嘲笑Go语言的时候,有些人跟我说,你说Go语言是垃圾,可是你看像Docker和Kubernetes之类的云计算项目,为什么是Go语言写的呢?

其实答案很简单。Docker和Kubernetes之类的项目,其实基本没什么难度,技术含量相当低,而且没什么性能需求,所以基本上可以用任何语言(包括Shell,Perl,Python,Ruby,Java……)来实现。所以只因为有人用Go语言实现了这些东西,并不能说明Go语言是好东西。在当今混乱的IT业界,随便你做一个垃圾都有人会拿来用,更不要说是挂着Google一半大名的语言 ;)

如果你不相信我,可以看看这个叫“ Bocker ”的项目。有人用100行的Bash script,实现了Docker最重要的那些功能。 说白了,Docker基本就是建立一些目录,把系统文件拷贝进去,然后 chroot ,这样你的代码在里面运行的时候,就以为自己独占一个Linux系统。Shell语言之恶劣,我有专文介绍,所以就不多说了。可以用Shell脚本实现的项目,现在用Go来做,能说明Go是一个好的语言吗?

另外也许很多人不知道的是,Docker其实并不能解决Unix的根本问题。Unix从来就不是一个具有良好模块化设计的系统。各种稀奇古怪的配置文件,设计完全没有章法。各种模块之间,版本逻辑依赖关系错综复杂,纠缠不清。所以不管你事后怎么补救,其实都是不可救药的。很多项目做成了container之后,它们之间用REST之类愚蠢而麻烦的机制进行通信,其实让container之间的通信机制变得更加困难和复杂。

原文  http://www.yinwang.org/blog-cn/2016/03/27/docker
正文到此结束
Loading...