Docker 起死回生了

Chase620
• 阅读 1256

Docker 起死回生了

Docker 公司在近两年里一直深陷生存危机。

2019 年时两度更换 CEO、毅然出售企业业务之后,人们对于 Docker 曾经一度看衰。

2020 年 12 月,Kubernetes 表示在 1.20 版本中弃用 Docker 支持,让 Kubernetes“不再依赖”Docker,更是让人觉得 Docker。

但令人意外的是,Docker 公司把握住了重大历史机遇并快速重组为了一家专注于开发者群体的云原生容器厂商,由此带来的回报也在逐步显现。就在今天,Docker 正式公布了其总额达 2300 万美元的 B 轮融资计划。本轮融资由 Tribe Capital 领投,曾参与 A 轮融资的 Benchmark 及 Insight Partners 也同样加入其中。截至目前,Docker 已经筹集到 5800 万美元资金。

据最新数据表示,Docker 推出的免费版本产品已经吸引到 170 万新增注册开发者,目前社区版的注册用户总量已经超过 730 万。Docker 现任 CEO Scott Johnston 在发布融资的官方博客文章中表示,“结果已经证明了一切。这项策略本身非常强大,而我们的执行能力又更胜一筹。”

针对这次融资,某容器技术专家对 InfoQ 感叹:“我们都知道这家公司在历史上经历过高光时刻,也经历过低谷,一直到 2019 年它把 Docker Enterprise 卖了,再到今天宣布了新的融资,我觉得 Docker 公司现在已经回归了一个比较好的方向,回归到开发者和生态。这在我看来是比较正确的选择,因为对容器技术而言,易用性依旧是阻碍它发展的关键问题,但是 Docker 最近在持续推出一些面向开发者的产品,我觉得比之前要做的好。”

Docker 已经八岁了

从 2013 年 3 月 20 日宣布成立到现在,Docker 差不多刚好八岁了。

Docker 曾被视为硅谷最具人气的初创企业之一。2010 年,法国开发人员 Solomon Hykes 建立起名为 dotCloud 的开源项目,由此拓展出的概念有助于显著简化 Web 应用程序当中容器与微服务的创建流程。

通过在完全独立的环境中运行应用程序,这种名为“容器”的技术能够极大提高开发工作的速度、安全性与稳定性。Docker 则凭借着在容器领域的卓越贡献而广受赞誉。

作为这股浪潮中的排头兵,Docker 快速成为公认的革命先驱,并先后于 2014 年、2015 年与 2017 年分别筹得 4000 万美元、9500 万美元与 9200 万美元。最终,Docker 的融资总额达到 2.7 亿美元,这也使其凭借超过 10 亿美元的市场估值正式进入独角兽俱乐部。

当时的 Docker 在开发领域掀起一轮革命浪潮,甚至有望成为云计算战场上的又一股中坚力量。上述容器技术专家对 InfoQ 表示,“我们自 2006 年就开始部署容器技术,Docker 其实是 2013 年出来的,当时看到这个技术出现的时候,我对它的整个设计非常喜欢:它是非常优雅的,把复杂的技术变得非常简单的抽象,它把容器镜像变成了应用的打包格式,可以让应用在不同环境中迁移,这个对当时的开发者而言是梦寐以求的技术能力。Docker 最大的贡献是把一个很复杂的技术变成了普惠的技术,变成了整个行业的标准,我觉得这是 Docker 给这个行业带来的最大变化,其实很难有一个小公司来推动整个行业趋势的变化,这一点非常值得认可。”

但技术本身是瞬息万变的,任何开创性的技术都无法保证在商业上取得成功,这一点在开源项目中体现得尤其明显。为了获得经济收益,Docker 开始创建工具以帮助企业管理容器部署任务,其中最知名的成果当数编排平台 Docker Swarm。

遗憾的是,Docker 在市场上遇到了谷歌这位劲敌,后者打造出了无可匹敌的同类产品 Kubernetes。谷歌随后将 Kubernetes 捐赠给 Linux 基金会,由其在云原生计算基金会的指导下将 Kubernetes 转换为免费开源项目。作为实至名归的现象级方案,Kubernetes 大大削弱了 Docker 在企业业务领域的生存空间。

麻烦还不止于此。Docker 公司曾先后经历过多轮换帅,2017 年 Steve Singh 取代 Ben Golub,2019 年 5 月 Singh 又被 Rob Bearden 取代,而 Bearden 的任职周期甚至只有短短的 6 个月。2018 年 3 月,创始人 Hykes 宣布正式离开 Docker。

面对挑战,Docker 决定立即行动,并于 2019 年 11 月毅然决定将企业业务(当时占其收入中的最大比重)出售给 Mirantis。Mirantis 首席执行官兼联合创始人 Adrian Ionel 称,这次收购约占 Docker 公司业务的 90%,还将包括与微软及其他公司的合作伙伴关系,这一切旨在加快 Mirantis 内部 Kubernetes 方面的工作。此外,Docker Enterprise 拥有一批出色的云原生基础架构人员,人才收购也是本轮收购的重点,75% 的员工也被一起打包出售给了 Mirantis。

这次收购导致 Docker 在舆论上深陷泥潭,出售掉公司绝大部分业务以及开发人员也实在显得有些悲惨。

经过一年时间,转型已经成功?

出售企业业务之后,Docker 于 2020 年 3 月 11 日宣布将保留下来的组织重组为一家开发工具公司。将业务聚焦在开发者身上,这实际上是 Docker 在 2013 年和 2014 年的初衷。这个战略决策旨在帮助开发人员加快工作速度方面,具体涵盖初始编码直到云端应用程序部署的整个开发流程。为了帮助这次转型,Docker 筹集到 3500 万美元风险投资用于重组业务,并任命 Scott Johnston 出任 CEO。

Docker 剩下的主力产品包括开发应用 Docker Desktop 与共享容器资源存储库 Docker Hub。该公司通过丰富的订阅选项向客户销售这些工具的访问权限。

随着应用程序开发环境逐步由本地台式机转向云计算,开发者往往需要重复执行多个繁琐频繁。整个流程不仅复杂、枯燥,而且极易引发错误,而且实际开发中的应用程序部署也缺乏约束模型。

Docker 高管将这种趋势视为宝贵机遇。他们希望帮助开发人员提高生产效率,同时也在降低微服务运营环境的使用门槛。如今,Docker 决定创造一片“从代码到云端的过渡空间”。Docker 强调,“要真正提高开发团队的效率,必须将多种技术成果整合起来,特别是建立一条全面覆盖从源代码控制到应用程序运行、而且具备良好架构的管道。”在 2020 年 5 月的 DockerCon 开发大会上,Docker 还宣布了与微软的合作计划,包括简化在微软 Azure 云平台上启用容器化应用程序的操作流程。

在过去的一年中,Docker 的免费版本产品已经吸引到了 170 万新增注册,目前社区版的注册用户总量已经超过 730 万。与其他开源项目一样,他们的目标首先是推广社区项目,接下来将其中一小部分用户转变为付费客户。但在 2019 年陷入困境之前,Docker 一直没有找到有效的业务转化方法。Johnston 表示,虽然目前还不宜公布具体数字,但 2020 年该公司年度经常性收入(ARR)同比增长达 170%,表明他们的运营策略已经初见成效。

本次的投资人 Sethi 在一份声明中表示,“ Tribe 致力于发掘新的价值极点,即已经表现出增长拐点的顶尖私营科技企业,希望帮助他们通过长期风险投资扩大规模以取得更出色的运营成果。Docker 正好符合我们的判断,我们也期待着为其提供支持、助力他们不断走向成功。”

最后,该公司表示也会将投资用于扩展 Docker Hub。Johnston 表示,Docker 将致力于增加可供下载的应用程序组件的选择,并构建“其他工具来帮助开发团队提高软件供应链的信心、安全性和可见性”。同时也会不断加强生态建设,增强与流行的容器编排工具(例如:Kubernetes,AWS ECS,Azure ACI,Swarm)之间的互操作性,提高与主要容器运行时(例如:Docker Engine,containerd)的 100%兼容性,并且将与生态系统合作伙伴一起推动开放标准(例如:OCI,Compose spec,Notary v2)的建设。

也许 Docker 永远无法重现当初那种举世无双的辉煌姿态,但此次转型至少能够帮助他们走出这片曾令无数初创企业折戟沉沙的发展泥潭。

本文转自 https://www.jianshu.com/p/263369c13878,如有侵权,请联系删除。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这