摘要: 五个发现有助于正确地看待容器的使用趋势.
随着越来越多的组织转向 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% 超过一周. 容器可能来来往往, 但大多数公司都希望服务能够保持稳定, 因为应用程序可以全天候工作.
今年的研究表明, 组织仍在尝试新堆栈中的不同层, 但很明显, 容器在计算环境中扮演着越来越重要和独特的角色.
来源: http://cloud.51cto.com/art/201807/578108.htm