2018 年 Kubernetes 采用情况调查报告

OPEN编辑 5年前
   <h2>调查背景</h2>    <p>Kubernetes 今年刚过了四周岁生日,是一项非常年轻的技术,但人们对它的采用速度很快。许多研究已经用数字或图表表明了云原生技术工具的发展趋势,但很少有人深入研究背后哪些因素影响了决策者,大家在使用这些工具的过程中有哪些困难。</p>    <p>因此,Heptio 委托第三方公司对各行各业的近 400 名 IT 决策者进行了调查,试图了解哪些团队/企业正在转向 Kubernetes,过程中遇到了哪些障碍以及他们如何从技术中受益。</p>    <p>本次调查的受访者为 378 名云原生技术部署和策略的决策者,37% 的受访者团队有 100-1000 名软件开发人员,23% 的受访者团队有超过 1000 名软件开发人员。</p>    <h2>Kubernetes 采用情况</h2>    <p>调查的第一个问题是受访者如何使用 Kubernetes。 60%的受访者使用 Kubernetes 进行容器编排。在明年,这个数据有望增长到 65%,而其他编排平台(Docker Swarm,Mesos 等)的使用将会减少或保持不变。</p>    <p>对于 Kubernetes 支持的应用程序类型,有一种常见的误解,即容器只对无状态应用程序有用。但调查结果显示,现在 Kubernetes 可用于多种应用类型,包括数据密集型分析应用,机器学习应用和物联网应用。</p>    <p><img src="https://simg.open-open.com/show/6cf0669f5461d9f0de4af49026f64279.png" alt="2018 年 Kubernetes 采用情况调查报告" width="550" height="324"></p>    <p>Kubernetes 也从整体上增加了大家对开源软件的信心。相比闭源软件,受访者更喜欢用开源平台,对于日志和监控也更倾向于使用开源解决方案。而对于负载均衡、存储等解决方案,受访者则更喜欢用闭源方案。</p>    <p><img src="https://simg.open-open.com/show/f37dc5ca3652af6329e02562d67cc42f.png" alt="2018 年 Kubernetes 采用情况调查报告" width="440" height="309"></p>    <h2>生产环境中的 Kubernetes</h2>    <p>30% 的受访者在生产环境中使用 Kubernetes。而使用 Kubernetes 的团队中,有一半是在生产环境中使用的,并且公司规模越大越有可能如此。</p>    <p><img src="https://simg.open-open.com/show/348eb06d4e2244a66522bf82a748e96b.png" alt="2018 年 Kubernetes 采用情况调查报告" width="479" height="295"></p>    <p>对于所有在生产环境中使用容器的团队,68% 的受访者在使用 Kubernetes。这个数字是使用 Docker Swarm 的两倍。到明年,Kubernetes 将可以全面用于生产环境中的工作负载。</p>    <h2>多云策略</h2>    <p>多云不仅是一种理念,现在已经是常用实践了。三分之二的受访者已经在采用多云策略。采用多云的原因有:能使用更好的功能,增加和云供应商的谈判资本,降低运营成本,提高性能等。</p>    <p><img src="https://simg.open-open.com/show/a42803e35985e44b58634ac5ed6f4810.png" alt="2018 年 Kubernetes 采用情况调查报告" width="526" height="335"></p>    <p>采用多云的原因</p>    <p>Kubernetes 天然适合多云环境。通过使用新的管理工具来提供通用的操作环境,Kubernetes 能允许在公有云或本地部署相同的应用程序。但是云提供商对多云没有什么兴趣,因此在多云环境中成功使用 Kubernetes 的关键是避免被锁定到单个供应商。</p>    <p>## 采用 Kubernetes 的障碍</p>    <p>Kubernetes 这项技术还很年轻,围绕它的生态系统也还在形成过程中。Kubernetes 的功能和生态中的多种工具正在逐步演化,但步调却不一致。因此,团队在评估和运行 Kubernetes 的时候遇到了不同程度的问题。一些痛点包括:早期的设计和部署决定(47%),内部团队对通用技术的统一认识(47%),内部缺少专家资源(45%),在关键任务中保证可靠性(43%),复杂策略的管理(42%)。</p>    <p>看看 CNCF 的庞大的项目生态就能理解为何为 Kubernetes 做架构决策很难:项目和工具太多,团队需要指导。</p>    <p><img src="https://simg.open-open.com/show/4a1de5a8ab69d56ff447bdfbdd860f9a.jpg" alt="2018 年 Kubernetes 采用情况调查报告" width="550" height="309"></p>    <h2>采用 Kubernetes 时需要哪些帮助</h2>    <p>对于这个问题,41% 的受访者的回答是“架构设计”。架构设计确实对很多团队都造成了困扰,因为对于架构设计有很多要考虑的地方:评估物理和软件基础设施,如何集成新技术,如何以新的方式运维等。排名第二的回答是“部署” ,仅占 16%,14% 的受访者表示在 Kubernetes 的日常管理上需要帮助。</p>    <p><img src="https://simg.open-open.com/show/f2c841abde150332c5246ba6448c0780.png" alt="2018 年 Kubernetes 采用情况调查报告" width="550" height="164"></p>    <h2>遇到问题时向谁求助</h2>    <p>团队寻求建议的信息源差不多,主要包括编排工具供应商(55%),独立咨询公司(42%),业内同行(54%)和相关论坛(53%)。仅有 4% 的受访者在部署 Kubernetes 的时候不需要帮助。这个结果表明,组织在寻求所需帮助时存在一定的问题。</p>    <p><img src="https://simg.open-open.com/show/2b34e57a85d744afee4a8c9abe7f7431.png" alt="2018 年 Kubernetes 采用情况调查报告" width="400" height="336"></p>    <p>谁在驱动 Kubernetes 的架构决策?受访者的回答有很多,包括架构团队,IT 运维团队,SRE,多功能团队,业务线,外部咨询公司等。在很多组织内部,不知道该由谁来承担对 Kubernetes 的责任。也难怪前面提到的内部团队对通用技术的统一认识是一大痛点。</p>    <p><img src="https://simg.open-open.com/show/095634323e4c71fd71ef3829d2d258b4.png" alt="2018 年 Kubernetes 采用情况调查报告" width="504" height="340"></p>    <h2>SRE-Ops 是新的 DevOps 趋势</h2>    <p>调查结果还显示,大公司更倾向于使用 SRE 实践。SRE 结合了 IT 运维和软件工程师的角色职责,以确保软件的可靠性和可扩展性。</p>    <p>调查结果显示,采用 SRE-Ops 做决策的团队占 31%,在生产环境中使用 Kubernetes 时采用了 SRE 的团队占 38%,有 1000+ 开发者,并且采用 SRE 的团队占 48%。</p>    <p><img src="https://simg.open-open.com/show/1504f828d395a38cfcb7e7f7a564c296.png" alt="2018 年 Kubernetes 采用情况调查报告" width="498" height="435"></p>    <p>最重要的是我们相信,SRE-Ops 在必须采用 DevOps 扩展的环境中很重要。</p>    <h2>使用 Kubernetes 时最需要的能力</h2>    <p>大多数人都希望有更好的可视性(visibility),以准确了解 Kubernetes 足迹中正在发生什么。</p>    <p>具体来说,开发人员超过 1000 人的团队更希望对集群实时性能有更好的可视性,也更看希望能查看日志审计和检查的历史数据。</p>    <p>无论团队处在 Kubernetes 部署的哪个阶段,都值得看看 Kubernetes 生态系统中解决方案,考虑哪些其他功能可以帮助更好地运行 Kubernetes。</p>    <p><img src="https://simg.open-open.com/show/1415e7f62836a35c7f870ae1ddbf8098.png" alt="2018 年 Kubernetes 采用情况调查报告" width="550" height="193"></p>    <p>需要的能力:可视性 (58%), 简化的集群支持和恢复 (55%), 持续的一致性测试 (49%), 一体化支持和排障 (49%), 查看日志审计和检查的历史数据 (45%)</p>    <h2>致持观望态度的团队</h2>    <p>如果你的团队目前正在评估 Kubernetes,这里有一些值得参考的经验。</p>    <p>在生产环境中使用 Kubernetes 的受访者中,有 65% 希望对集群实时性能有更好的可视性。而在运维超过 1000 个容器的团队中,这个需求更强烈(69%)。当容器数量增加,就需要更多的集群。运营的集群越多,对可视性的需求就越强烈。</p>    <p>其次,访问审计日志和检查的历史记录的能力也很重要。在生产环境中运行 Kubernetes 的受访者中,65%认为这是一项关键能力。 对于这个问题,大多数受访者都认为关键在于标准化或一致性测试以及简单的备份。</p>    <h2>调查结果说明了什么</h2>    <p>克服多重困难部署 Kubernetes 值得吗?</p>    <p>调查结果表明很明显是值得的。在生产环境中使用 Kubernetes 的团队更容易获得以下 三个好处:缩短软件开发周期,提高资源利用率,使用互补的开源技术 。 </p>    <p>对于很多团队来所,基本导向是在提高资源利用率的同时缩短软件开发周期。Kubernetes 及其相关技术和工具能帮你实现这些目标。</p>    <p><img src="https://simg.open-open.com/show/60c04be21e74fe23cc0f8aeb9cd4ddc8.png" alt="2018 年 Kubernetes 采用情况调查报告" width="490" height="420"></p>    <p>使用 Kubernetes 首要好处:使用互补技术,缩短软件开发周期,提高资源利用率。红色表示平均水平,黄色表示在生产中使用 Kubernetes 的水平</p>    <h2>总结</h2>    <p>Kubernetes 越来越多地在生产环境中使用,围绕 Kubernetes 的整个生态系统在不断演进,新的工具和解决方案也在持续发布。现在 Kubernetes 的使用者还在努力解决一些问题,但是长期来说,潜在收益将远远抵消这些困难。</p>    <p>为了推进 Kubernetes 的发展,核心需求是提高可视性。 此要求体现了上游 Kubernetes 的重要性 - 建立一个独立于云的平台,以避免云供应商的锁定。这样能确保团队更好地使用一流的开源技术,并在生态系统快速变化发展之时保持最大的灵活性。</p>    <p>如果你正在考虑 Kubernetes 或在评估/部署过程中,可以从已经在使用 Kubernetes 的人那里得到有用的建议。使用云原生技术(包括 Kubernetes)很难,但对于那些优先考虑软件开发并希望缩短开发周期,更好地利用资源以及获得最佳开源技术的团队来说,显然是值得的。</p>    <p>本文根据 Heptio 的《The State of Kubernetes 2018》整理。</p>