有关Docker的八个令人难以置信的事实
- 2015-12-14 17:13:00
- 51CTO
- 转贴:
- 51CTO
- 16619
这一年Docker技术蓬勃发展,Datadog公司从其独特的视角,基于其监控的第一手数据,分析报告了Docker使用相关的八大事实,同时也详细介绍了他们取样,分析的方法论。很有意思,值得一读。
数以千计的公司使用Datadog来跟踪基础架构,所以我们能够实时看到正在涌现的软件趋势。今天很激动得和大家分享关于Docker真正使用的情况 — 没有吹嘘,只列事实。
Docker大概是2015年谈论最多的基础架构技术。我们启动这个项目来调研有多少Docker真正用在生产环境里,真正使用的增长速度是怎样的。我们发现了这些问题的答案– 并且同时发现了一些更加精彩的内容。
本文研究基于7000个公司的采样,并且跟踪了真实使用场景,而不仅仅只是看使用报告。就我们所知,这是所发表的最为精准的Docker使用情况汇报。
本文使用如下词汇描述企业使用状态:“已使用(adopted)”,“尝试中(dabbling)”,和“已放弃(abandoned)”。下文方法论章节讲述了如何评测使用状态。
事实一:Docker的真正使用在一年里上升了五倍
在2014年九月初,Datadog 1.8%的客户已经使用了Docker。一年后,这个数字增长到8.3%。在12个月里几乎增长了五倍。
事实二:Docker在我们监控的6%的主机上运行
这是很让人吃惊的事实:一年前Docker几乎还没有任何市场份额,现在它已经运行在我们监控的6%的主机上。6%听上去不是个绝对高的数字,但是基于我们监控了120种不同技术,这个数字的确可以说明它在用户技术栈上已经非常重要了。
但是,如下表所示,主机数百分比的增长自上个季度开始似乎有所停滞。这可能是季节因素导致的,大型基础架构项目通常在暑假之后会停止。我们很感兴趣来继续观察这个季度的情况。
事实三:越大型的公司使用越早
这个现象驳斥了公司越大动作越慢的说法。一个使用越多主机的公司,更有可能已经尝试了Docker,也更有可能已经使用了Docker。这个现象很令人吃惊,因为一个公司使用了越多的主机,那么只有它使用了更多数量的Docker容器时,才会将其归类为“使用者”。如下文方法论章节所述,这个发现在不同基础架构规模分割阀值的情况下都适用。
事实四:尝试Docker的2/3的公司最终使用了它
这条还是好消息。我们惊讶得发现这么多尝试Docker的公司最终都迅速使用了它。大部分想要使用Docker的公司在最初生产环境上使用的30天内就完成了转变,其余使用者在60天内完成了转变。
事实五:五个月内用户容器数量扩大了三倍
使用者和尝试者都在其第一次使用到第六个月使用之间,生产环境运行容器的平均数量扩大了三倍。这样使用量的增长 — 即便在尝试者里 — 对于Docker而言也是大好消息。
事实六:使用最为广泛的镜像是Registry,NGINX和Redis
Docker里运行的最常用技术是:
- Registry:运行Docker的公司中25%的公司正在使用Registry,可能用其来代替Docker Hub。
- NGINX:Docker看来被用来包含了很多HTTP服务器。很有意思的是Apache(httpd)并不是前十名。
- Redis:流行的内存内键值数据存储,通常用来作为内存内数据库,消息队列,或者缓存。
- Ubuntu:依然是构建镜像的默认选择。
- Logspout:用来从主机上的所有容器里收集日志,并且将日志路由到任意需要的地方。
- MongoDB:使用广泛的NoSQL数据库。
- Elasticsearch:全文本搜索。
- CAdvisor:Kubernetes用来从容器里收集度量参数。
- MySQL:使用最为广泛的开源数据库。
- Postgres:使用第二广泛的开源数据库。将Postgres和MySQL的数量相加,可见使用Docker运行关系型数据库非常常见。
事实七:Docker主机通常一次运行四个容器
使用Docker的公司在每个主机上平均同时运行四个容器。这个发现似乎表明Docker实际上通常被作为共享计算资源的轻量级方式;其价值不仅仅在于提供可知的,版本化的运行时环境。
事实八:VM的生命周期比容器长四倍
在使用Docker的公司里,容器的平均生命周期是3天,但是在所有公司里,传统和基于云的VM的生命周期为12天。
正如事实七所讨论,通常在主机上会同时运行4个容器。因此可以在一般VM的生命周期里运行16个容器(4代4个同步容器)。但是基于不均衡的分布情况,通常实际在VM的生命周期里会运行9个容器。
容器更短的生命周期以及增长的密度对于基础架构监控而言意义深远。它表示某个事物的个数呈数量级增长,需要单独监控。监控方案是围绕主机的,而不是围绕可能快速就不可用的角色。因此我们期待Docker能持续驱动几年前云计算开始引发的监控实践的进步。
方法论
样本
如介绍所述,使用的数据来自于7000家公司的采样,因此本文应该是已发表的Docker使用情况调查里最精准的。但是,Datadog的客户倾向于“早期使用者”,以及更谨慎对待软件基础架构的公司。由于数据来自于我们的客户,本文的所有结论会带有倾向性,是全球市场的不完全样本。
平均值
当提到客户基准里的平均数值时(比如,平均容器生命周期),我们并不是指样本的均值。而是会计算出单独用户的平均值,然后报告客户数值的中位数。我们发现如果取真正的均值的话,结果会被少数几个公司的不常见的Docker使用方式带来的数值严重影响。比如,将容器用作处理队列单元工作会导致某个公司每小时使用上千个容器。
采用分段
本文将企业分类为“采用者”,“尝试者”和“放弃者”。会在月末基于每个企业本月的Docker活动重新将其分类。
- 采用者:该月运行的容器的均值至少是运行主机数目的50%以上,或者该月至少有和独立主机数量一样的独立容器。
- 尝试者:该月使用了Docker,但是没有达到“采用者”要求的门限
- 放弃者:目前仍旧活跃的公司,以前使用过Docker,但是上个月完全没有使用。
注意采用分段门限并非来自于数据的自然分组;数据里包含各种使用数据。我们使用了直觉觉得对于读者有意义的数据。
很有意思的是,本文的发现令人惊讶得适应于不同的采用分段门限。比如,不管采用者门限更低(25%容器平均值,或者和主机数相比,有0.75x的单独容器)或者更高(75%容器均值,或者和主机数相比,有1.5x的单独容器),大部分发现都是不变的:
- 事实 #1:一年内真正采用量还是上升了5倍
- 事实#2:采用分段和这些发现没有关系
- 事实#3:大型公司成为Docker采用者或者尝试者的数量还是比小型公司多2-4倍。图表几乎没有变化。
- 事实#4:发现几乎没变:采用百分比仅仅变化了±3%
- 事实#5:第一个月到第六个月之间,采用者的容器数量仍然增长了三倍
- 事实#6:采用分段和这些发现不相关。
- 事实#7,8:结果没变。
我们也针对绝对数量门限作了分析,使用分段结果,比如“采用者在该月至少平均运行了20个容器”。但是大部分发现仍然惊人得类似(实际上,几乎一样),这样的策略使得我们更应该在小型企业里,如果其基础架构运行Docker的比例很大时,将其归类为尝试者。
计数
只运行了Datadog Agent的容器被排除在本次调查之外,因此只运行Agent的主机也被排除了。
事实 #1
我们认为能够看到Docker使用量的如此大幅度增长恰恰因为Datadog很擅长于监控Docker。可能新增长是由需要Docker监控的Docker新用户带来的,他们可能会为此专门使用Datadog。但是,当我们看Datadog长期客户时,采用百分比几乎一样。
事实 #2
对于监控的每一种技术,我们将使用量在前1%的企业排除在外。也就是说,如果一小部分公司以非寻常方式使用某种特定技术,并且重度使用时,他们会被从计算中排除。
也要注意,当限制采用为所有使用Docker的公司,或者当排除使用Docker公司的5%,10%或25%时,“运行Docker主机百分比”图的基本走势保持不变。上个季度里,运行Docker的主机百分比有明显变平的趋势。
事实 #3
对于不同的基础架构规模切入点,该发现保持一致。不同切入点如下。本文使用切入点的中间段。
基础架构规模切入点 已经尝试Docker的公司的百分比
1–49, 50–99, 100+ 11%, 22%, 43%
1–99, 100–499, 500+ 11%, 28%, 56%
1–249, 250-749, 750+ 12%, 37%, 58%
联系人: | 王春生 |
---|---|
Email: | chunsheng@cnezsoft.com |