了解如何在 Remocal 开发设置中结合本地和远程环境,以简化开发流程、提高生产力和降低成本。

译自 Remocal Development: The Future of Efficient Kubernetes Workflows,作者 Anita Ihuman。

 Kubernetes 微服务的兴起虽然给运维团队带来了巨大的好处,但也给开发流程增加了一层复杂性。从事 Kubernetes 应用程序开发的工程团队通常需要帮助来处理服务之间的相互依赖关系、高度脆弱的本地开发环境、远程环境中测试更改的延迟以及对暂存环境的竞争访问。

 Kubernetes 的限制内,我们如何创建一个能够通过快速、可靠的反馈循环来提高效率的开发环境?我们应该坚持使用模拟数据的本地开发,依赖远程环境,还是找到一种混合方法(远程 + 本地开发)?

在本文中,我们将探讨所有选项、优势和缺点。然后,我们将研究 Remocal 开发,如何利用它来优化整个软件开发流程,以及希望采用这一概念的团队的未来前景。

什么是 Kubernetes 开发者环境?

Kubernetes 开发者环境 (KDE) 是一种专门的设置,旨在简化在 Kubernetes 上运行的应用程序的开发。它为开发人员提供了高效开发、测试和调试这些应用程序的工具和资源。

KDE 的类型

根据 Kubernetes 集群的运行位置,KDE 大致可分为两大类。

本地 KDE:

本地开发环境运行在个人计算机上,利用您计算机的资源,非常适合快速实验和开发迭代,而无需访问云。

流行的工具包括 minikube、K3s、micro8s 和 Kind。

优点:

  • 设置快速,易于使用。
  • 无需云提供商帐户或配置。
  • 无云成本
  • 适用于初始原型设计。

缺点:

  • 与云环境相比,资源有限。
  • 与外部服务的交互有限,无法模拟真实条件。
  • 需要开发人员管理和维护环境,导致需要大量 Kubernetes 专业知识的开发人员学习曲线长。
  • 它可能与特定的处理器架构(ARM/x64)不兼容。

远程 KDE:

远程开发环境使开发人员能够在基于云的环境中执行应用程序。这些环境提供了更强大的资源,并且更接近于生产环境的模拟。

优点:

  • 开发人员可以从任何地方访问计算资源,并根据项目需求轻松地向上或向下扩展。
  • 开发人员无需在本地安装语言运行时、数据库或其他工具,新开发人员无需复杂设置即可快速开始工作。
  • 与本地环境相比,跨多个云提供商的开发体验一致。

缺点:

  • 在基础设施、配置和第三方集成方面,它可能只反映了部分生产环境。
  • 它拥有的资源少于生产环境,这可能会导致性能测试不准确,因为它没有模拟应用程序在生产过程中将面临的负载和压力。
  • 通过 Docker 构建和部署将代码上传到云端可能会很慢。
  • 远程调试可能很麻烦。
  • 可能产生高昂的云成本。

Remocal 开发的兴起

这些开发环境各自具有特定的优势或功能,可以满足不同类型的开发人员或特定的开发需求。然而,由于开发人员的机器和云环境之间的资源差异,几乎不可能在本地开发环境中复制基于 Kubernetes 的应用程序。此外,使用远程 KDE 会导致反馈循环缓慢,因为每次代码更改都需要进行容器化、推送到注册表以及部署到远程集群,才能获得最终结果。

快乐的开发人员才能构建出最好的应用程序, 行业领导者正在努力实现一种流畅的自助服务开发环境,该环境启动速度快、易于迭代,并且与生产环境的特征紧密匹配。这就产生了对一种解决方案的需求,该解决方案能够为团队提供两全其美的优势:远程/本地开发(Remocal 开发)。

关于这一新兴概念,开发者群体中存在一些误解,这引发了一个问题:“ WTF 是远程开发”?

什么是 Remocal 开发?

Remocal 开发环境弥合了本地和远程开发之间的差距。它描述了一种高效、简化的开发流程,开发人员可以在本地计算机上进行代码更改,并使用远程基础设施无缝地构建和部署。因此,开发人员可以在模拟云环境的真实环境中测试代码。

优点:

  • 开发人员体验: 开发人员可以利用他们熟悉的本地开发环境,以及他们喜欢的 IDE 和调试工具。Remocal 设置允许团队在由远程 Kubernetes 集群提供的更真实的、类似生产的环境中无缝地测试他们的代码。
  • 效率和生产力: Remocal 环境消除了在开发人员机器上进行复杂设置和配置的需要。通过一个简单的命令,开发人员可以快速观察代码更改的影响,而无需等待构建-推送-测试周期。这使得开发人员能够及早发现并修复问题,从而减少错误并实现更顺畅的部署。因此,开发过程得到了简化,开发人员可以专注于核心编码任务。
  • 成本效益: 在开发阶段,您可以利用开发人员的本地机器资源,从而减少对额外云资源的需求以及管理和维护这些资源的相关成本。
  • 可扩展性和灵活性: Remocal 开发环境允许开发人员享受远程和本地开发的优势。团队可以快速扩展 Kubernetes 集群(本地或远程),以满足其特定需求。它还使开发人员能够灵活地选择他们喜欢的工具和技术,从而允许他们在他们想要的环境和流程中工作。

使用 mirrord 优化您的软件开发生命周期

在众多新兴的 Remocal 开发解决方案中,mirrord 以其确保在云环境中顺利进行开发、测试和调试的能力而脱颖而出。

Mirrord 改变了我们处理应用程序测试和部署的方式,以改善整个开发人员体验。它的功能使团队能够无缝地 镜像远程集群的状态,同时提供对资源(环境变量、文件访问和网络)的访问,使您的本地代码能够访问 pod 可以访问的所有内容,包括集群外部的 API。

您的开发团队只需在 IDE 中点击几下,即可在其工作流程中快速采用 Remocal 开发方法。Mirrord 可以优化您的工作流程,确保一致性和紧密的反馈循环。借助 mirrord,开发人员现在可以快速迭代和测试更改,从而缩短发布周期、改善开发体验、节省成本并加快上市时间。

Kubernetes 开发的未来展望

有几个关键趋势影响着 Kubernetes 开发的未来,其重点是提高其性能,使其用户友好,并适应现代应用程序架构。许多工程团队正在努力通过迁移到 Remocal 开发来改善他们的开发体验和上市时间,同时降低成本。例如, Lyft 已在其工作流程中实施了 Remocal 开发方法,以消除复杂的设置和配置,并在节省成本的同时提高团队生产力。

Remocal 开发解决了许多工程团队在日常使用基于云的应用程序时面临的一个主要问题。

它有可能彻底改变团队和企业的 Kubernetes 工作流程。Remocal 开发提供了一种引人注目的解决方案,通过解决管理复杂依赖关系的挑战来优化开发过程。这使其成为希望优化其 Kubernetes 开发流程的公司的宝贵资产。

您是否找到了适合您团队的正确平衡点?您是否希望在您的微服务工作流程中探索 Remocal 开发方法?请联系 我们进行演示或浏览镜像 快速入门指南

本文在 云云众生 https://yylives.cc/)首发,欢迎大家访问。