作者:Tobi Knaup
一次又一次的调研显示,复杂性、安全性和技能缺口是组织在部署Kubernetes时面临的主要挑战。
例如,在最新的CNCF年度调查中,受访者反馈的最大挑战是培训不足和安全性问题。缺乏培训是尚未在生产环境中部署容器的人中所提到的最大挑战,占44%;在有限范围内使用容器的人中,有41%提到了缺乏培训。
这些调研结果实际上在告诉我们,开发人员的负担过重。DevOps提倡的“谁开发,谁负责”的理念,意味着每个DevOps团队都需要负责维护自己的基础设施,再加上云原生技术栈引入了数十种新技术,使得DevOps团队现在大部分时间都花在运维上,而不足够用在开发上。
随着更多关键任务负载转移到云原生平台,这个问题变得更加突出。随着工作负载继续增加其重要性,网络安全威胁变得更加普遍,平台需要为可用性、弹性和安全性提供强大的服务级别目标(SLOs)。你再也不能满足于 “足够好”。平台需要根据最佳实践进行设计和运行。
克服Kubernetes的复杂性
面对所有这些压力,DevOps团队无法简单地跟上运维需求。这就是为什么平台工程主张构建一个由多个团队共享的集中管理的开发者平台,而不是让每个团队都去构建和运行自己的平台。这样,关键的基础设施任务,如安全性、治理和可观测性,可以被一次性正确地完成,而不是随意地重复努力。
然而,设计一个Kubernetes管理平台是一项复杂的任务。需要组装和集成许多服务,包括集群管理、可观测性、网络、存储、安全性、灾难恢复、成本可见性、GitOps工作流、生命周期管理和治理等能力。大多数内部IT或DevOps团队没有创建Kubernetes管理平台所需的工程技能,这就是为什么很多自助式(DIY)尝试会失败的原因。流行的公共云Kubernetes服务是为DevOps方法而设计的,并为平台团队提供有限的集中管理能力。
即时平台工程
通过将Kubernetes服务扩展到具有集中管理能力的能力,可以在整个组织的云端、本地和边缘部署的群集中实现平台工程方法,我们称之为“即时平台工程”。这种深度集成和单一视图能力由Cluster API(CAPI)实现,它是通过声明性API进行集群管理的Kubernetes本机方法,这也是Kubernetes如此强大和可扩展的主要原因之一。相比之下,传统解决方案使用脚本和传统的基础设施即代码(IaC)工具来实现相同的功能;这些方法脆弱,需要大量的维护,并容易出现人为错误。
平台团队希望与CNCF社区密切协作,确定要集成到他们的堆栈中的组件。庞大且专有的“万能平台”会使他们远离CNCF生态系统中的许多创新。这就是为什么许多团队尝试采用DIY方法(并经常失败)的原因。然而,即时平台工程可以减轻DIY方法的复杂性,帮助开发人员为他们的团队推动创新和价值。
简化DevOps的简单方法
以即时平台工程的形式呈现的生产就绪Kubernetes管理平台通过提供现成的内部开发者平台和DevOps团队的“黄金路径”,解决了复杂性和技能缺口挑战,使他们能够将精力投入到创造业务价值上,而不是苦苦构建容器管理平台。
企业不再需要尝试从头构建Kubernetes平台,也不必购买成本过高且难以投入生产的平台,而是可以购买一个易于部署和管理、就绪生产、基于最佳开源组件构建、与云Kubernetes服务深度集成且具有成本效益的Kubernetes平台。
即时平台工程还使组织能够克服Kubernetes技能缺口。企业的员工数量不再需要随着基础设施的增长而增加,只需一种方式来管理集群,而不是孤立操作和重复努力。
未来的坚实基础
目前,能够完全掌握多群集和多云容器管理的成熟企业尚且不多,更不用说深入利用Kubernetes管理平台所提供的更高级能力了。
随着Kubernetes的不断发展,我们将会看到更多的企业逐渐达到更高的成熟水平,并开始部署更加先进的工作负载,这将引发一波创新的浪潮。为了达到更高水平,越来越多的采用容器技术的企业需要在逐步成熟的过程中,确立一个坚实的Kubernetes基础,并在其管理、基础设施以及DevOps团队中培养适当的技能和文化。
转载请注明出处:https://www.cloudnative-tech.com/technology/5982.html