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