Go语言,Docker和Kubernetes

cytzrs · · 6489 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

转载自:http://www.yinwang.org/blog-cn/2016/03/27/docker
当我嘲笑Go语言的时候,有些人跟我说,你说Go语言是垃圾,可是你看像Docker和Kubernetes之类的云计算项目,为什么是Go语言写的呢?

其实答案很简单:这些东西并不是非得用Go语言写才可以,用其他语言实现它们其实并没有什么问题,只不过它们碰巧是用Go语言写的而已。Docker和Kubernetes之类的项目,其实只依赖于操作系统的构架细节,对语言没有特别的要求,而且也没什么性能需求,所以它们其实可以用任何语言(包括Shell,Perl,Python,Ruby,C,Java……)来实现。只因为有人跟风,用Go语言写了这些东西,并不能说明Go语言是好东西。在当今混乱的IT业界,随便你做个东西都会有人拿来用,更不要说是挂着Go-ogle的羊头的语(go)言(rou) ;)

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

另外也许很多人不知道的是,Docker和Kubernetes,虽然很火,但其实并不是什么了不起的技术。Docker并不能解决Unix的根本问题。Unix从来就不是一个具有良好模块化设计的系统。各种稀奇古怪的配置文件,设计缺乏条理和章法。各种模块之间,版本逻辑依赖关系错综复杂,纠缠不清。所以不管你事后怎么补救,其实都难以变成结构清晰的设计。很多项目做成了container之后,它们之间用REST和HTTP进行通信,其实让系统模块之间的通信变得更加困难和复杂。

使用了Docker之后,你也许会发现,Unix的狂热分子们其实重新折腾出了Windows一开头就有的应用程序构架,然而这些应用程序之间的通信方式,却远远没有达到COM和.NET的成熟程度。


有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:cytzrs

查看原文:Go语言,Docker和Kubernetes

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

6489 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传