随着越来越多的组织过渡到devops和微服务模型并在现代堆栈中获得更多专业知识,整个Docker容器生态系统的发展势头每年都非常强劲。 Sysdig的第二份年度Docker使用情况报告显示了容器环境独有的更多活动,更多规模和生命周期属性。
该报告基于从生产中的90,000个容器中收集到的实际数据(是去年样本量的两倍),涵盖了垂直行业的广泛领域。 公司的规模不一,从中型市场到北美,拉丁美洲,EMEA和亚太地区的大型企业。
该研究的数据来自我公司提供的Sysdig Monitor和Sysdig Secure云服务报告的容器使用情况的时间点快照,该工具监视容器及其宿主环境之间的系统调用以提供有关什么容器是容器的情报。在做。
快照揭示的许多发现中,有五个有助于透视容器使用趋势(要更直观地显示这些发现,可以查看此信息图 ):
1.应用程式
毫不奇怪,用户一直在寻求开源工具来构建其微服务和应用程序。 Java虚拟机(JVM)在已配置容器中的应用程序组件列表中居于首位。 尽管Java长期以来一直依赖于应用程序服务,但是很明显,Java和容器正在作为现代交付模型融合在一起。
在容器中运行的数据库(如PostgreSQL和MongoDB)的使用也有所增加,这表明正在转向容器中的有状态服务。 容器的短暂性质使许多人担心运行收集有价值的公司数据的服务,但是随着组织开始转向完全由容器驱动的环境,这种担忧似乎正在缓解。
2.运行时
Docker仍然占据主导地位,但由于其他容器运行时立足,其份额从去年的99%下降到今年的83%。 来自CoreOS的Rkt(最近被Red Hat收购)获得了最大的份额,攀升至12%,Mesos集装箱运输商攀升至4%。 LXC也以1%的速度增长,尽管增长率要低得多。 但是很明显,公司在生产中使用非Docker解决方案变得越来越自在。
3.协调器
Kubernetes仍然是最常用的协调器(51%)的领先者,这并不令人感到意外,因为市场似乎已经全面接纳了Kubernetes。 微软,亚马逊,IBM,当然还有谷歌都为其云容器服务提供了Kubernetes,甚至Docker和Mesosphere也增加了对Kubernetes的支持和功能。
Docker Swarm在今年的研究中以11%的比例上升到第二位,超过了基于Mesos的工具,该比例从去年的9%下降到本报告中的4%。 鉴于Docker拥抱Kubernetes,这是出乎意料的。 但是Swarm的进入门槛非常低,因此,随着越来越多的人开始使用容器,这可能是编排的第一站。
我们还着手确定集群规模是否会影响组织可能选择的协调器。 尽管在本研究中基于Mesos的编排(包括Mesos马拉松和Mesosphere DC / OS)下降到第三位,但与Mesos一起部署的容器的中位数比在Kubernetes环境中高50%。 鉴于Mesos倾向于针对大型容器和云部署,因此这是有道理的。 因此,虽然数量较少,但Mesos群集通常是企业级的。 相反,群集群比Kubernetes小30%。
今年,我们还按品牌剖析了Kubernetes的使用,以查看所使用的版本是上游开源版本还是特定供应商提供的软件包。 我们发现开源Kubernetes继续占有最大份额,但似乎OpenShift取得了进展,Rancher也取得了一些进展。
4.密度
从裸机和以VM为中心的环境过渡到容器的催化剂之一是有望更有效地利用服务器资源。 与我们的2017年报告相比,每位客户每个主机的容器中位数从10个增加到15个,增长了50%。在此调查的最高端,我们看到一个组织在单个主机上运行154个容器! 这比我们去年观察到的95个有所增加。 那是很多容器。
5.寿命
在业界关于如何快速上下旋转容器的讨论中,我们决定着眼于容器的寿命,容器映像和基于容器的服务。 集装箱能活多久? 不久:
- 一分钟不到17%
- 不到一个小时减少了78%
- 比一天少89%
- 一周不到95%
最大的单一类别(占27%)是在5至10分钟内搅动的容器。
为什么容器寿命这么短? 我们知道,许多客户都拥有可以按需扩展的架构系统,并且只有在增加价值的前提下才能存在。 创建容器,完成工作,然后消失。 例如,一个客户为其在詹金斯(Jenkins)中创建的每个工作旋转一个容器。 它测试更改,然后关闭容器。 对于该客户,这一天发生数千次。
我们还查看了使用容器图像的时间。 通过查看这些数据,我们可以了解客户将部署更新的容器作为他们的devs CI / CD流程的一部分的频率。 总体而言,一周之内更新了69%的图像。
当涉及到服务的寿命时,在Kubernetes中,服务抽象定义了一组Pod,这些Pod提供了特定的功能以及如何访问它们。 服务使Pod可以死亡和复制而不会影响应用程序。 大多数服务(67%)的使用寿命超过一周。 容器和Pod可能会来来往往,但是大多数公司希望服务能够保持正常运行,因为应用程序会全天候工作。
今年的研究表明,组织仍在尝试新堆栈中的不同层,但是很明显,容器在计算环境中扮演着越来越重要的角色。 有关更多信息,Sysdig有一个关于这些发现的更深入的博客文章 ,以及对容器使用其他方面的深入了解。