有关Docker的八个令人难以置信的事实
这一年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%
本文作者:佚名
来源:51CTO

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
网络切片——5G前行的助推器
前言 最近对5G网络切片比较感兴趣,查阅资料阅读文献,发现一篇很好的论文《Reshaping the mobile core network via function decomposition and network slicing for the 5G Era》,对5G切片的介绍非常全面详细,决定摘出其中让我受益的一些部分,再结合自己的一点点理解对5G切片进行一个简单的介绍和概括,也算是自己的一点小进步,也希望对初学者能起到一点作用。 在2020年即将实现商用化的5G被广泛提起,提到5G就不得不提网络切片(Network Slicing),作为5G中被讨论最多的技术,网络切片对于5G 的意义可谓巨大。本文主要从以下几个方面对切片技术做一些简要介绍。 一、为什么要向5G时代演进? 只有理解了传统核心网的局限性,才能深刻理解到为什么要想5G时代演进,才能进一步理解到网络切片技术对于5G的必要性。 其一,随着用户终端数量和种类的迅速增加、流量的大规模增长、用户需求的不断多样化,当前的核心网EPC(Evolved Packet Core)这种传统的集中式设计的网络架构逐渐变得难以处理越来越...
- 下一篇
《深入理解Nginx:模块开发与架构解析》一3.7 发送响应
3.7 发送响应 请求处理完毕后,需要向用户发送HTTP响应,告知客户端Nginx的执行结果。HTTP响应主要包括响应行、响应头部、包体三部分。发送HTTP响应时需要执行发送HTTP头部(发送HTTP头部时也会发送响应行)和发送HTTP包体两步操作。本节将以发送经典的“Hello World”为例来说明如何发送响应。 3.7.1 发送HTTP头部 下面看一下HTTP框架提供的发送HTTP头部的方法,如下所示。 ngx_int_t ngx_http_send_header(ngx_http_request_t *r); 调用ngx_http_send_header时把ngx_http_request_t对象传给它即可,而ngx_http_request_t的返回值是多样的,在本节中,可以认为返回NGX_ERROR或返回值大于0就表示不正常,
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装