从平台团队和应用开发者视角看——Kubernetes托管服务让Kubernetes变得更简单


【编者的话】这篇文章是一个为期三个月的系列文章的一部分,该系列研究了2020年Kubernetes面临的挑战。这一篇,让我们来研究Kubernetes开发者的体验。

系列文章列表:


Vanilla Kubernetes对任何人都是免费的,可以在他们的环境中下载和配置,但是对于大多数企业来说,配置、更新和管理都是非常具有挑战性的,这种现象在开源项目中特别常见。不仅是Kubernetes的开发者体验不够理想,在许多公司里,严重的技术缺口也是一个问题。

好消息是,随着Kubernetes占有率的增长,企业发行版和托管服务供应商的数量也在增长,它们认识到大多数公司都需要Kubernetes更多高级的功能和支持。所以说,托管服务的一个关键卖点就是有更好的开发人员体验。

Kubernetes的首席营销官Peter Smails表示:“我们看待Kubernetes最本质的地方是,要想在Kubernetes上取得成功,首先,所有在运行的Kubernetes必须是经过认证的发行版。第二,还要能以一种简单、一致的方式管理所有这些集群。如果开发人员的体验过于繁琐,如果让用户花太多时间在管理Kubernetes而不是在编写代码,那么我们的整个战略就全都崩塌了。”

托管服务步入舞台

Kubernetes无疑是一种非常强大和灵活的技术,但是对于一个没有经验的开发人员来说,Kubernetes几乎无限的可能性有时候会让开发人员望而生畏。实际上,大多数开发人员都没有使用Kubernetes的经验。这么新的产品,以至于没人具有超过五年的经验,有时候甚至需要12到18个月的时间才能在生产和面向客户的应用程序中基本熟练地使用Kubernetes。

托管服务供应商不得不在灵活性与硬性规定之间找到一种平衡。前者使Kubernetes变得如此强大;而后者强调的是实施到运维一定要减少非自动化操作。

Google的工程总监Chen Goldberg(负责该公司基于Kubernetes的多云平台——Anthos)解释说:“你肯定不想熟悉一个平台上所有的关键技术点。你希望每次都有一套不同的最佳实践吗?应该不是的。”

所有的Kubernetes托管服务的核心目标本质上都是相同的:尽可能地保持开发人员在平台中的灵活性,进而优化和梳理开发和运维的流程。这样做既可以在个体层面简化工作,也可以使Kubernetes在有几十个、成百或上千个开发人员的组织中大规模地成功运行,同时还可以满足在安全、治理和法规方面非常严格的监管要求。Goldberg说:“Google Anthos的目标是,通过一直坚持最佳的实践,不断地在不增加风险的情况下提高敏捷性。”

“就像任何复杂的软件一样,它可能很难维护,尤其是在大规模的情况下,”Kubernetes托管平台供应商Platform9的首席技术官Roopak Parikh解释说,“如果你想在生产环境中运行它,我们需要确保有较高的正常运行时间,同时,我们需要能定期打补丁,在新功能发布时对其升级,并带有监控功能。”

托管服务供应商都是按自己的路线一直走下去的:他们根据自己认定的最佳实践自动完成配置部署,同时,他们都试图在帮助开发人员做出决策和尽可能保持灵活性之间取得适当的平衡。

平台开发人员VS应用开发人员

Kubernetes是一种基础设施工具,所以在某些方面,如果说开发人员的工作就是负责写代码和部署应用的话,按说他们的体验应该是无关紧要的。“开发人员并不关心Kubernetes,”Goldberg说,“他们想做的就是在他们的IDE中工作,点击一个按钮,获得源代码,进行构建、测试、部署,并获得反馈。”

在Kubernetes中讨论开发人员体验的一个挑战是,“开发人员”可以有许多不同的含义。如果想要对开发人员的体验进行清晰的讨论,就需要清楚地定义我们所讨论的是“谁”的体验。根据CNCF应用程序交付特别兴趣小组(Application Delivery Special Interest Group)主席的说法,创建这些通用的定义,本身就是社区需要解决的一个核心的挑战。

随着公司迁移到Kubernetes,平台开发人员或基础设施团队可能发现他们的工作发生了更大的变化,实际上他们才是Kubernetes托管服务的“最终用户”。不管他们是在使用Kubernetes还是别的什么,平台团队的目标是让他们的体验与他们组织里的应用开发人员无缝衔接。Intuit负责产品开发的副总裁Pratik Wadher说,应用程序开发人员对Kubernetes的了解越少越好。但问题是基础架构团队很难提供足够的理论概念来支撑这一想法。

化繁为简

如果目标是为基础设施工程师、平台开发人员或基础设施开发人员提供他们需要的工具,以便为应用开发人员提供无缝体验,其实,很多托管服务供应商都有很多办法使其更容易实现。例如,Rancher于2019年发布的开源项目Rio,它使用单条命令就能启动和运行服务。和Google的Anthos一样,Rio假设它的多集群也是在一个复杂的、贯穿于公有云和私有云上运行的。

Platform9的Kubernetes托管服务基本目标也是一样的:不仅能简化复杂的基础设施,还能简化企业们在Kubernetes集群中的可视化和运维管理的工具套件。Parikh说:“我们发现很多开发人员在部署应用的时候的一个痛点,就是,他们想要有更多的可视化功能。”

与开发人员紧密合作

Goldberg说,托管服务最重要的作用之一就是找到一种方法,能与开发人员紧密合作。这不仅提供了一些工具,使程序员和平台开发人员更容易在Kubernetes上获得成功,同时还不需要大量学习的过程,也不需要深入了解这些企业IT环境的实际情况。她说,Anthos把基于kubernets的工作负载与基于VM的工作负载进行集成的想法变成了可能。

Parikh说:“根据我们的经验,没有客户不喜欢Kubernetes所带来的敏捷性。而且他们还特别欣赏的一点就是:使用Kubernetes的时候没有隐私方面的顾虑。”

原文链接:Managed Kubernetes Services Make K8s Simple for Platform Teams and App Developers(翻译:伊海峰)

0 个评论

要回复文章请先登录注册