本篇内容是根据2017年5月份#47 Docker, Moby, Containers音频录制内容的整理与翻译
Solomon Hykes 参加了节目,谈论了 Docker、Moby 项目以及 Go 非常适合容器管理的所有内容。
过程中为符合中文惯用表达有适当删改, 版权归原作者所有.
Erik St. Martin: 好的,大家好,欢迎回到 GoTime 的另一期节目。今天是第 47 期,我们的赞助商是 Toptal。今天的嘉宾包括我自己,Erik St. Martin,还有 Carlisia Pinto --- 打个招呼吧,Carlisia。
Carlisia Thompson: 大家好。
Erik St. Martin: 今天代替 Brian 出场的是 Adam Stacoviak。
Adam Stacoviak: 大家好!
Erik St. Martin: 能让你从幕后走出来,真的太好了。对于没听过 Adam 另一期节目的朋友来说,Adam 是我们的制作人之一,他总是躲在幕后;我们终于让他走出来了。
Adam Stacoviak: 没错……就像一个魔术师,等待着合适的时机偶尔露面……而 Solomon!我必须为 Solomon 出场,这就是原因。
Erik St. Martin: 说到这里……今天我们非常荣幸地邀请到了特别嘉宾,Docker 的 CTO 和创始人 Solomon Hykes。
Solomon Hykes: 大家好!感谢邀请我。
Adam Stacoviak: Solomon,非常感谢你抽出时间参加节目;虽然安排上有些波折,但我们一直在期待这次节目。 Docker 是一个巨大的项目,显然每个人都在深入了解它并不断探索。
我们在 Changelog 的节目中早在第 89 期就采访过你。当时用你自己的话来说,那好像是 20 年前的事了,感觉像是很久以前了……你怎么看?
Solomon Hykes: 是啊,感觉确实很久以前了,我对那次对话有很美好的记忆;那次节目非常有趣。
Adam Stacoviak: 给正在收听直播的听众,我会在聊天中放上 链接,大家可以标记一下。链接也会出现在节目笔记中,记得去看看……听听我以前(他们说的)年轻的声音,那时的 Adam,哈哈……
Erik St. Martin: 他今天在我们管理频道里分享了那期节目,我开始听……哇,你的声音真的听起来很年轻。 [笑声]
Adam Stacoviak: 或许是因为当时的音效调节不够?我也不知道……其实我也不确定。但总之……Docker!它是从 DotCloud 开始的,对吧?
Solomon Hykes: 是的。
Adam Stacoviak: 当时的 DotCloud 是什么?或许人们不需要太多你的介绍,但至少需要了解你今天的身份---你是 Docker 的 CTO 和创始人……带我们回到 DotCloud 的时代吧。给我们一些怀旧的回忆,有什么只有你知道的可以在节目里分享的?
Solomon Hykes: 好的……我不知道是否只有我知道,但当我们做那期 Changelog(第 89 期)的时候,我是一个名叫 DotCloud 的公司的创始人兼 CEO,后来这家公司成为了 Docker。当时我们刚刚发布了 Docker 项目,但还没有完全转型为只支持 Docker 的公司,虽然我觉得那已经很快就要发生了。但在 Docker 之前,还有六年的 DotCloud 时光。所以总的来说,我已经在这个公司工作了九年多了,DotCloud 是一个平台即服务(PaaS)的产品。如果你熟悉 Heroku 或 Google App Engine,类似的产品……它是一个托管服务,开发者可以用它来部署和扩展他们的应用。
基本上,你写代码,把代码交给我们,然后其他一切我们来处理。我们负责扩展、运行等等。我们在底层使用容器来提高效率。很多人问我们,“哇,这个技术真酷。你是怎么做到的?我不想付费使用你们的服务,但我想自己实现这个技术。”
Erik St. Martin: 人们想要免费用东西?[笑声]
Solomon Hykes: 是啊,真不可思议(笑)。其实,我们并没有发明这种技术;我们是基于底层的系统构建的。当时 Linux 正在逐渐改进对容器的支持,但这仍然是一个非常小众的技术。当我们在 2008 年开始时,你必须对内核进行大量修改,所以只能用于非常小众的场景。然后在 2012 到 2013 年左右,你可以在未修改的 Linux 内核上自己运行容器,这让很多事情成为了可能。
总之,我们听到了足够多的需求,最终决定开源底层技术,这就成了 Docker。当然,为什么它会流行起来,这仍然是一个结合了神秘、运气和(从我的角度看)努力工作的结果。后来我们卖掉了 PaaS 业务,只专注于 Docker。
Erik St. Martin: 你提到有点惊讶它会如此受欢迎……但该给的功劳还是要给,对吧?是的,Linux 内核里有容器功能,但我觉得 Docker 让它变得更容易接近了,对吗?大多数为 Linux 开发软件的人并不了解或者不熟悉 cgroups 和 namespaces。我觉得 Docker 真的让这些变得更容易接触,而且还有这种便携的镜像格式……
Solomon Hykes: 是的,实际上……有趣的是,Linux 容器本身就已经存在而且为人所知,尽管它只被一小部分专业人士知道,比如系统工程师和运维人员---他们会基于这些构建平台。但你说得对,这是一种非常晦涩的技术,老实说,当时它还不够成熟。Linux 容器在那时并没有稳定到高质量的程度……但实际上,我们利用了“容器”这个词的双重含义。Linux 容器是一个非常具体的技术概念,用来沙盒化你的运行应用……但我们将这个术语扩展到了类似“运输集装箱”的含义,后者完全是另一回事。它更多的是关于如何移动东西、如何使它们可重复使用以及如何标准化移动的格式。
直到今天,我觉得不同的人对“容器”这个词的理解是不同的。第一个定义是一个非常专业和小众的定义,而运输集装箱是一个所有人都能理解的主流术语,这实际上也是 Docker 专注的领域。
对于 Docker 来说,Linux 容器只是我们用来交付更广泛功能的一个特性,而这个更广泛的功能是为你的代码提供“运输集装箱”。
Erik St. Martin: 我这里有一个有趣的问题,想听听你的看法……我发现虚拟机(VM)和容器之间的区别在于,Docker 因为很好地抽象了概念,所以人们常常会混淆它们很相似。很多人会把 tcpdump 和其他随机工具放进容器里,然后加载它们,因为他们没有真正理解容器更接近于一个高度配置的进程,而不是一个真正的虚拟机。你觉得人们也有类似的困惑吗?
Solomon Hykes: 是的,对于我们来说,有一个普遍的主题,那就是不同的人对 Docker 或容器有着不同的理解或体验,他们有着不同的看法。Docker 社区一直以来都非常多元化。换句话说,不同的人对容器和 Docker 有着不同的期望,有时候甚至会对什么才是正确的答案产生激烈的分歧。
对我们来说,管理这种情况一直是一个挑战。但老实说,这从一开始就是我们的设计初衷:我们说,“你知道吗?并不是每个人都需要对所有事情达成一致才能从同样的工具中受益。” 或许让人们在不同的定义中找到共同点会让事情变得更有趣,那种建设性的分歧会推动我们前进……而且我认为大部分情况下,这是有效的。
举个例子,Docker 社区中有很多开发者和运维人员。我们都知道,开发者和运维人员在事情上的优先级和看法是非常不同的,而这种差异反而带来了好处。一方面,有 Linux 专家、系统工程师等专业人士,他们以一种方式看待容器;另一方面,现在有很多前端开发者刚刚开始接触后端,Docker 对他们来说是一种非常简单的方式去处理后端事务。如今,还有一些完全初学编程的人,Docker 为他们提供了一个安全、有趣的起点,让他们不会感到被评判,并且身边有一群乐于帮助他们的人。
这些是两个非常极端的群体,但挑战在于:“我们如何让所有人都参与到同一个社区中,一起讨论容器?” 这并不总是容易的。
Erik St. Martin: 这是一个非常有趣的观点,我之前从未考虑过。
Carlisia Thompson: Solomon,我想请你回顾一下从平台即服务(PaaS)转型为开源项目的那个阶段……因为我在想---毫无疑问,你们现在是一个成功的案例,这让一切变得更加引人入胜……所以我在想,你有一个按使用付费的服务,人们也在使用你的服务,但他们却说“我们不想为此付费”。我从一个商业视角来问这个问题,特别是对于那些想创业或正在创业的人……我自己也会有这个问题,我想大家也会很好奇,所以我们来聊聊这个吧。
当时你们处于这样一个阶段:人们在使用你的服务,但他们不想为此付费。那么,你们是如何做出这样的决定,而不是说,“我们调整一下定价模式”或者“我们提供更好的服务,让人们觉得他们的花费物有所值,从而愿意付费”?对我来说,这似乎是一个非常反直觉的决定---“不如把它提取出来,作为一个开源项目提供。” 这种转变是怎么发生的?你们当时有一个明确的计划吗?这个过程是怎样的?
Solomon Hykes: 这是个好问题。并不是说人们不想为我们的服务付费,我们就放弃了这个服务……实际上,DotCloud 这个产品还是挺成功的;我们有客户,我们在稳步增长,也确实有一部分客户从中得到了价值。而且我们并没有遇到紧急危机。当时我们账户里有足够的钱……我记得我们还有两年的资金储备,所以这不是一个资金问题,也不是“没人想要这个产品,他们不想付费”的问题。但我们确实有两个问题:一是潜在客户的市场规模太小,我们看到其他同样面对这个市场的公司都不太成功。基本上,每一家平台即服务的初创公司都失败了。
有些公司通过并入更大的公司而避免了失败,这对它们来说是很好的选择。但显然,没有一家非常成功的大型平台即服务公司可以让你指着它说:“我想和他们竞争。” 所以我们普遍觉得,我们所在的市场没有未来。同时,我们看到了一个更大的人群,他们来找我们说:“我们想从你们这里得到一些东西,可以给我们吗?” 他们并不想要免费使用我们的服务,而是想要别的东西;他们想要的是构建自己服务的基本模块,关键在于定制化。
当你为客户提供一切时,问题在于这是一个一刀切的解决方案;你有一个单一的、整体的平台,它为你做了所有事情,要么接受,要么放弃。这确实很方便,但如果你想要定制化,就做不到;你只能离开,或者等待 DotCloud 添加这种定制化功能。而有了容器,你就像有了一个乐高积木套装。你可以混搭,可以改变很多东西,只需要有这些基础模块可用。
我经常举的一个例子是普通玩具和乐高的对比。我们当时有一个特定的玩具,一些人喜欢,但更多的人说:“嘿,我能不能改一下这个或者那个?你能不能让我自己造一个玩具?只要给我乐高就行了。” 所以我们开始在旁边做一些实验。我们做了一个副项目---也就是后来成为 Docker 的项目---来看看如果我们给人们提供“乐高”会是什么样子。结果是立竿见影的

最低0.47元/天 解锁文章
3891

被折叠的 条评论
为什么被折叠?



