广告

Garden自动化Kubernetes的构建、部署和测试

  • 浏览(500)
  • 评论(0)
  • 译者:k8s

许多创业者会告诉你,他们的公司是从挫折中成长起来的,但就Garden.io而言,首席执行官Jon Edvald表示,它是愤怒的产物——开发人员用一整天设置Kubernetes环境并等待测试完成,浪费了太多时间。

他解释说,2017年在柏林的Clue工作时,“我构建了定制的内部工具,以尝试保持开发者体验正常,使团队能够轻松地测试更改,获得开发环境。很多我们现在可能认为理所当然的工具都不存在。”

“我与DevOps的一群首席技术官和人们进行了交谈。他们分享了类似的故事……这就是机会所在。”

当时的过程是一系列git提交、推送和等待。人们对CI/CD系统中的所有东西是如何组合在一起的知之甚少,开发和测试环境也不一定与生产环境类似。

他说:“整个行业进入反馈循环的时间太长,这会让人感到沮丧,浪费很多时间。”

“Garden解决了云原生领域的一个真正需求,即平台越复杂,开发人员越多,开发人员和生产之间的差距就越大。但如果你想要快速的功能开发和高质量的代码,关键是让差距尽可能小。Garden解决了这个问题,并以一种非常适合Kubernetes的方式做到了这一点。”Buoyant首席执行官William Morgan说。

想想基础设施即代码

通过Garden automation,开发人员可以为集成测试、手动QA和持续集成工作流创建短暂的测试和预览环境,并更快地获得反馈。他们不必再陷入配置和管理临时环境的泥潭。

“一名开发人员可以从笔记本电脑上从头开始启动整个环境。可以拆掉它,重新启动它,都有很好的工具,可以将所做的任何更改尽快解决到运行环境中。可以从CI和CD上运行完全相同的工具和配置。这样两者之间的摩擦就不存在了。”

“这基本上意味着你在任何时候都可以随时掌握CI/CD自动化的全部功能。我认为,这真的是处理越来越分散、越来越复杂的云系统的唯一明智的方法,它们需要将所有这些不同的移动部件集合起来,才能真正拥有一个完全运行的系统。”

Edvald说,在与声明性基础设施即代码的的关系方面,它与Terraform非常相似。

它使用该公司所称的Stack Graph,这是一个基于有向无环图(DAG)的框架,允许你将堆栈的完整描述编码为直观的YAML声明,捕获所有组件之间的关系。

配置文件位于每个模块旁边,即基本单元建筑。它可以对应于Dockerfile及其关联代码、远程Docker镜像、Helm图表、OpenFaaS功能等。Garden扫描这些配置文件(甚至跨多个存储库),验证它们,并将它们编译成一个图形,描述构建、部署和测试应用程序所涉及的所有步骤。

Garden通过将当前代码与以前构建、部署和测试的版本进行比较,使用该图来检测何时需要重新构建、重新测试模块或重新部署服务。

无论是在开发人员的笔记本电脑上还是在CI/CD系统中,它都以同样的方式工作。

当你使用一个共享的Kubernetes集群运行Garden时,Garden有自己的命名空间和一组小的服务,每个开发人员在集群中都有一个私有命名空间,他们可以在其中启动在该命名空间中运行的应用程序的完整实例,并在其中进行开发和测试。

“Garden.io是我们的云原生开发环境的一个组成部分。它解决了我们开发过程的内部循环。它允许我们释放开发人员机器上的资源,并在远程Kubernetes集群中运行。代码更改不仅部署在这些远程集群中,而且我们还能够将其与构成产品的其他服务不断集成——所有这些都是如此。”InfluxData部署工程经理Patricia(Pat)Gaughen说。

“我们研究了其他解决方案,感觉Garden将帮助减轻开发人员系统的负担,并允许开发人员快速行动。”

基于TypeScript

尽管该公司迄今为止一直专注于Kubernetes的开发,但它决定从更广阔的视角出发,将Typescript作为其主要语言。

“我们仍然可以将其作为单个二进制文件分发,因此用户不必在意。首先,我们不仅仅把Kubernetes作为目标平台(这是今天的主要任务),但我们想从更长远的角度来看无服务器平台,以及各种不同的目标平台。”

尽管Golang在该领域占据主导地位,这一决定在一定程度上是出于个人偏好。“我们希望网站和UI端的类型和语言与引擎本身保持一致,这基本上可以减少开发过程中的许多潜在问题。”

它的许多用户来自Docker Compose等工具,而Kubernetes生态系统在此期间也有所增长,由此产生了Okteo、Tilt和DevSpace等竞争对手。

超越Kubernetes

Edvald与联合创始人Thor Sigurdsson和Bas Peters在2018年以“copyleft”Mozilla Public License 2.0许可将Garden作为开源项目发布。Edvald说,该核心将始终是开源的,尽管该公司还提供企业版和托管版。

未来,该公司希望简化OpenCore,让新用户更容易访问它,并增加与第三方系统(如安全工具)的集成。

“我们正在开发一个套件集成,你基本上只需提供一个API密钥即可,Garden已经知道所有容器镜像、Kubernetes清单和Helm图表,并且可以将这些数据传输到一个安全解决方案,该解决方案将扫描这些漏洞。这是我们正在探索的一条途径的一个例子,不仅仅是构建和部署一个应用程序,还包括验证和理解它。”Edvald说。

原文链接:

https://thenewstack.io/garden-automates-kubernetes-building-deploying-testing/

  • 分享到:
  • icon
  • icon
  • icon
  • icon
箭头