这篇文章最初发表于2015年10月,不过研究报告最近一次更新是在2016年6月。
由于成千上万的公司使用Datadog产品来跟踪基础设施,我们可以实时看到出现的软件趋势。今天,我们很高兴分享我们在Docker实际采用情况方面看到的真相,而不是炒作。
Docker可能是2016年最热议的基础设施技术。我们开展这项研究是为了调查Docker在生产环境中的使用情况,以及实际采用率提高得多快。我们发觉这些问题的答案引人入胜。
下面的研究基于针对10000家公司的样本,跟踪了实际使用情况,而不是道听途说的使用情况。据我们所知,这是业内发布的最全面、最准确地评析Docker采用情况的报告。
我们在整篇文章中将公司的采用状况称为:“已采用”、“涉猎”或“抛弃”。
2015年5月份开始,Datadog的客户中8.2%采用了Docker。一年后,这个数字已提高到10.7%。市场份额在12个月内增长了近30%。
这是个令人惊讶的真相:18个月前,Docker的市场份额还只有大约2%,而现在它在我们监测的所有主机中的10%上运行。
然而,下面这张图显示了另外两个有趣的发现结果。首先,2015年8月份前后,运行Docker的主机的百分比出现了局部最大值。这可能是由于Datadog接触的新客户当时还没有使用Docker,或者是由于虽然Docker在成熟,但企业组织对这项技术态度冷淡,或者是两者兼而有之。其次,运行Docker的主机所占的百分比其增长态势似乎从“增长极快”转变成之后“增长快速”。
这个真相一改大企业行动比较缓慢的传统印象。公司使用的主机数量越多,试用Docker的可能性就越大,因而采用Docker的可能性也就越大。这个真相尤其令人惊奇,因为公司使用的主机数量越多,该公司就要使用数量越多的Docker容器,那样才能被认为是“采用者”。值得注意的是,在这篇文章最初发表后的八个月里,这一发现结果得到了进一步的强化。
编辑总结:Docker在解决拥有主机数量较多的企业感觉最突出的问题。
对Docker来说,好消息接踵而来。我们惊讶地发现,试用Docker的许多公司实际上采用了它,而且迅速采用。采用Docker的公司大多数已经在初次在生产环境中使用Docker的30天内就采用了它,几乎所有剩余的采用者在60天内采用了Docker。
在使用容器的第1个月到第10个月之间,Docker采用者将其在生产环境中运行的容器的平均数量大约增加至5倍。这种显著的内部使用增长速度呈现出明显的线性增长,丝毫没有显示出在第11个月后逐渐减少的迹象。
Docker中运行的最常见的几种技术如下:
注册中心:运行Docker的公司中21%在使用注册中心(Registry)。虽然注册中心仍占据第一位,不过其份额比八个月前的25%有所下降。
NGINX:Docker似乎用来包含大量的HTTP服务器。值得关注的是,Apache(httpd的)并没有进入前十名。
Redis:这个流行的内存键/值数据存储系统经常用作内存数据库、消息队列或高速缓存。
Elasticsearch:这个全文搜索比上一次的第6位有了上升。
MySQL:这个世界上使用最广泛的开源数据库比上一次的第9位有了上升。
Logspout:用于收集来自主机上所有容器的日志,并将它们发送到需要前往的任何目的地。
Quay:注册中心的份额下降了一点,Quay则首次跻身排行榜。
etcd:etcd是排行榜的新成员,它是唯一上榜的分布式配置存储系统。
Postgres:世界上使用第二广泛的开源数据库。加上MySQL和Postgres数字后,使用Docker来运行关系型数据库似乎非常常见。
CAdvisor:被Kubernetes用来收集来自容器的度量指标。
被挤出排行榜:
Ubuntu:Ubuntu原本保留名次,但结果之所以被挤出,是由于许多全然不同的镜像建立在这个默认的基本镜像上。
MongoDB:这是一种使用广泛的NoSQL数据库。
就中位数而言,采用Docker的公司在每个主机上同时运行五个容器,而八个月前同时运行四个容器。这一发现结果似乎表明Docker实际上经常用作一种共享计算资源的轻量级方式;提供一种可认知的、版本控制的运行时环境不是唯一体现其价值的用途。支持这一发现结果的是,25%的公司同时平均运行10个以上的容器。
在采用Docker的那些公司,容器的平均寿命是2.5天,而综观所有公司,传统虚拟机和基于云的虚拟机其平均寿命是近15天。而仅仅8个月前,这些数字分别还是3天和12天。一个可能的解释是,由于更多的公司将动态工作负载迁移到Docker,容器的平均寿命随之缩短,因而让传统主机在更长的时间内运行。
正如在第七个真相中探讨的那样,每个主机同时运行五个容器司空见惯。所以,你可能认为,就中位数而言,虚拟机在其生命周期中会总共运行30个容器(6代5个同时运行的容器)。但由于分布不均,就中位数而言,虚拟机在其生命周期中实际上只运行14个容器。
容器的寿命短、密度提高,这給基础设施监测带来了显著影响。这意味着需要单独监测的对象数量出现了数量级增加。以主机为中心而不是以角色为中心的监测解决方案迅速变得无法使用。因而,我们预计Docker会继续促使云计算几年前开始带来的监测方法出现巨大变化。
云头条编译|未经授权谢绝转载