摘要:对系统透彻的理解可以提高工作效率。
链接:https://dzone.com/articles/adopting-kube.NETes-here-are-some-pitfalls-you-sho
作者 | Luca Galante
译者 | 弯月 责编 | 郑丽媛
出品 | CSDN(ID:CSDNnews)
知己知彼百战不殆,为了利用好工具,首先我们需要了解工具。Kubernetes 是开发运维的关键要素,就像画笔之于艺术家,斧锯之于木匠。
然而,许多开发人员并没有投入足够的时间来学习他们喜欢的工具包的基础知识,更不用说深入研究这些工具为企业带来的价值了。事实上,掌握 Kubernetes 并非易事。虽然对于一个如此规模的工具来说,Kubernetes 的复杂性并不算过度,但对于初学者来说依然充满了挑战。
这正是我们创建 2022 年 Kubernetes 基准研究的原因。随着云原生的采用率以健康的速度增长,越来越多的团队开始尝试采用这种工作流程,但结果并不一定能达到他们的预期。因此,我们花了几个月的时间研究整个行业的 1160 多个开发团队,根据他们的 Kubernetes 设置和实践建立了基准。在此过程中,我们探讨了以下问题:
我们的研究采用了自定义的 Kubernetes 绩效分数。根据针对我们的问题给出的回答,我们给各个组织评分,范围为0(表现不佳)~100(表现突出)。然后,我们重点分析了提供了完整信息的团队。尽管这极大地限制了分析群体的范围,但我们认为这可以更公平地描绘当前 Kubernetes 生态系统的使用情况。
成功需要的不仅仅是良好的意愿:将容器化的实现和规划能力作为绩效衡量标准
我们的分析表明,表现不佳和表现突出的企业之间存在许多明显的区别。最令人感叹痛惜的是实施领域:超过 66% 的顶级企业将他们的所有服务都容器化了,而表现不佳的企业中只有 22% 的服务实现了容器化。
Kubernetes 采用的趋势相同,这意味着适应容器化是充分利用 Kubernetes 的关键。这完全合理,因为 Kubernetes 是一个容器编排系统,但对于如何成功迁移到 Kubernetes 的问题,我们也听到了一些其他常见的制约因素:
简而言之,脚踏实地,才能更好地起步。Kubernetes 确实可以解决很多问题,但前提是建立适当的规划,而且更重要的是做好全面容器化的准备。
技术障碍:安全、团队管理以及开发人员自助服务的程度
我们发现的一件有趣的事情是,在迁移到 Kubernetes 的过程中,一些常见的技术障碍会反复出现。或许你的经历会有所不同,但在考虑采用 Kubernetes 时,请务必牢记这些潜在的挑战:
实现一定程度的安全性的难度较大
70% 的企业都提到了 Kubernetes 的安全性,但这并不意味着他们都实现了一定程度的安全性。尽管表现突出的企业都使用了机密管理工具,但仍有很大一部分表现不佳的企业犯下了一些严重的错误。例如,许多企业以明文的形式将机密保存到代码库,并手动应用更改,或未能分离特定于某个环境和不依赖于环境的配置。此外,还有一些企业对最佳实践缺乏清晰的认识。
不适合的组织文化可能会阻碍 Kubernetes 迁移
迁移到 Kubernetes 是一个巨大的文化转变。但是这类的变化一般自上而下推动的效果更好。
相比之下,表现不佳的企业通常会错误地认为,Kubernetes知识可以现学现用,导致整个迁移依赖于某个关键员工,这有可能成为将来最大的弱点。与表现突出的企业相比,表现欠佳的企业无法准确记录和可视化他们的设置,而他们花在帮助开发人员掌握 Kubernetes 的时间也更少。
自助服务需要更好地为开发人员服务
自助服务是另一个巨大的影响因素。尽管在表现突出的企业中,90% 声称他们的开发人员可以独立或按需部署,但只有 39% 表现欠佳的企业有这样的自信。
令人担忧的是,超过 31% 表现欠佳的企业认为,他们的大多数团队成员都不敢部署到 Kubernetes 集群,因为害怕破坏已有系统。从组织的角度来看,这并不是一个好兆头,这种心理给推进容器化带来的潜在问题甚至超过了其他领域。集中式的工作流程会造成人力资源瓶颈,从而抵消容器化的一些主要优势,例如能够自主工作和快速配置基础设施。
克服困难
各个团队应该如何高效使用 Kubernetes 呢?我们发现,大多数成功案例都是在平台工程团队构建的更大的内部开发人员平台框架内采用 Kubernetes。换句话说,表现突出的团队会构建工具、支持系统和基础设施,确保的开发人员能够有效地自助服务。
同时,我们不能不指出,有效的开发者生态系统必须积极追求整体理想。有效的内部开发人员平台会强制推进标准化和最佳实践。在此过程中,开发人员可以不断尝试 Kubernetes ,同时避免由于其不可否认的复杂性而带来的陷阱。这些企业通过这种方式,最大限度地减少开发团队的认知负担,让他们能够专注于重要的工作。
通过学习展现最好的一面
Kubernetes 是一个复杂但功能强大的系统,可帮助改善企业的运营。但问题是,你是否做好准备,付出必要的努力来掌握这款工具,并在迈出关键的第一步之前,为此次成功的迁移之旅构建框架?
从长远来看,Kubernetes 只是一个起点,它本身不能充当整个开发人员平台,但可以为你的平台工程计划打下坚实的基础。