极客视点
极客时间编辑部
极客时间编辑部
113230 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/02:51
登录|注册

为什么Kubernetes项目要选择Go语言?

讲述:丁婵大小:1.31M时长:02:51
Kubernetes 是一个基于 Go 语言实现的、以容器编排与管理为核心的后端项目,同时也是当今世界上最活跃的开源项目之一。近日,在一次 Gopher Meetup 中,Kubernetes 开发者张磊详细介绍了为什么 Kubernetes 项目要选择 Go,而非其他语言。
很多开源项目都使用了 Go 语言,但在解释其原因时不外乎两点,要么说 Go 很简单,它平衡了程序的开发效率和运行效率,要么说看重了 Go 的性能和并发编程优势。
但对 Kubernetes 这样的项目来说,这些都不算是主要的理由,毕竟谷歌 Borg 项目就是用 C++ 开发的,现在要把一个类似的系统作为开源项目放出来,那又有什么理由要更换语言呢?如果继续使用 C++,最起码谷歌内部的很多库是可以共用的,而且使用 C++ 来构建一个平台级别的项目也合情合理。
但是,Kubernetes 最先考虑的并不是这些因素,而是开发者社区。在 Kubernetes 之前,谷歌在系统级领域的开源项目做的并不是特别好,社区可能会认为谷歌开源的项目靠谱程度不高。而在 Kubernetes 之后,谷歌看到了社区对于开源项目的成功所起到的关键作用,这也正是 Go 这样一个处于成长期的编程语言能够带来的巨大优势。
这里张磊举了一个 lmctfy(let me container that for you)容器项目的例子。lmctfy 是谷歌紧随着 Docker 开源的一个使用 C++ 编写的内部容器实现,相信没有多少人用过。但它比同时期的 Docker 要强大很多,功能也非常完善,尤其是资源管理部分,毕竟 cgroup 本身就是谷歌的东西。但是 lmctfy 还没来得及和 Docker 竞争就直接死掉了,最后大家总结,“甩锅”到了 C++ 头上。
谷歌认为,Docker 之所以会成功是因为它可以提供一个友好简洁的界面或者说是 API。而 lmctfy 却把“用户友好”这样的关键因素抛之脑后。首先,它的编译和安装都特别麻烦,有时候还需要给内核打补丁。其次,lmctfy 的代码贡献门槛非常高,这也直接影响了它的社区活跃度。
最后张磊总结道,谷歌用 C++ 语言构建了开源容器,大家甚至知道,这个开源容器就是谷歌自己在用的,但是这样的东西拿出来用户却不能驾驭。那如果再做一个基于 C++ 的容器管理项目,庞大如 Kubernetes 这样的项目,用户可以 hold 住吗?就像有人埋怨说谷歌怎么这么抠,不把 Borg 开源出来,但假设谷歌真的开源了 Borg,几百万行 C++ 代码,有多少人有信心能把它用起来呢?
所以,如果用两个字来总结 Kubernetes 项目选择 Go 语言的原因,那就是“社区”。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
28
沉浸
阅读
分享
手机端
快捷键
回顶部