使用开源工具在 Kubernetes 上开发

在几秒钟内使用 Crossplane 和 Okteto 进行云原生开发。
4 位读者喜欢这篇文章。
Ships at sea on the web

在过去五年中,应用程序的部署方式发生了巨大的转变。它已经从自托管基础设施转变为云和 Kubernetes 集群的世界。部署实践的这种变化为开发者世界带来了许多新事物,包括 容器云服务提供商配置容器编排等等。人们已经从编写单体应用转向由多个微服务组成的云原生应用程序。

虽然应用程序部署已经进步,但开发的工作流程和工具在很大程度上仍然停滞不前。它们没有完全适应,也没有感觉“原生”于这个云原生应用程序的美好新世界。这可能意味着糟糕的开发者体验,导致开发者生产力的大量损失。

但有一种更好的方法。如果您可以将 Kubernetes 和无限的云资源与您最喜欢的本地开发工具无缝集成,会怎么样?

当前云原生开发的状态

想象一下,您正在构建一个云原生应用程序,其中包括托管应用程序平台中的 Postgres 数据库、一个数据集和三个不同的微服务。

通常,这将涉及以下步骤

  1. 提交工单,让您的 IT 团队在您的公司 AWS 账户中预置数据库。
  2. 查阅文档,找到从您的预发布环境中获取上周数据库转储副本的位置(您没有在开发环境中使用生产数据,对吧?)。
  3. 弄清楚如何在您的本地机器上安装和运行服务一。
  4. 弄清楚如何在您的本地机器上安装和运行服务二。
  5. 弄清楚如何在您的本地机器上安装和运行服务三。

而这仅仅是开始。一旦您完成了代码更改,您就必须经历这些步骤,以便在实际环境中测试它们

  1. 创建一个 Git 分支
  2. 提交您的更改
  3. 想出一个有意义的提交信息
  4. 推送您的更改
  5. 在 CI 队列中等待轮到您
  6. CI 构建您的构件
  7. CI 部署您的应用程序
  8. 您最终验证您的更改

我曾与一些团队合作,这个过程耗时从几分钟到几个小时不等。但作为一名开发者,即使等待几分钟才能看到我的代码是否有效,也是一种糟糕的体验。它很慢、令人沮丧,并且让我害怕进行复杂的更改。

使用 Crossplane 和 Okteto 简化您的云原生开发工作流程

Crossplane 是一个开源项目,它将您的 Kubernetes 集群连接到外部的非 Kubernetes 资源,并允许平台团队构建自定义 Kubernetes API 以使用这些资源。这使您能够执行类似 kubectl apply -f db.yaml 的操作,以在任何云服务提供商中创建数据库。这使您的 DevOps 或 IT 团队能够让您访问云基础设施,而无需创建帐户、分发密码或手动限制您可以或不能做什么。这是自助服务的天堂。

Okteto CLI 是一个开源工具,使您能够直接在任何 Kubernetes 集群中构建、开发和调试云原生应用程序。您只需运行 okteto up,您的代码更改就会实时同步,而不是编写代码、构建,然后在 Kubernetes 中部署以查看您的更改。同时,您的应用程序在容器中热加载。它是云原生应用程序的快速内循环。

就其本身而言,这些工具中的每一个都非常有用,我建议您都尝试一下。Crossplane 和 Okteto 项目使您能够为您和您的团队构建出色的开发者体验,使构建云原生应用程序更容易、更快、更愉快。

这是我在上一节中提到的示例,但想象一下您正在使用 Crossplane 和 Okteto,而不是传统的设置

  1. 您输入 okteto up
  2. Okteto 在 Kubernetes 中部署您的服务,而 Crossplane 预置您的数据库(和数据!)。
  3. Okteto 同步您的代码更改,并在您的所有服务中启用热加载。

此时,您拥有了一个专属于您的 Kubernetes 实时环境。您节省了大量时间,无需通过 IT 部门、弄清楚本地依赖项以及记住运行每个服务所需的命令。而且由于一切都定义为代码,这意味着您团队中的每个人都可以以完全相同的方式获得他们的环境。无需云基础设施学位。

但还有一件事。每次您进行代码更改时,Okteto 都会自动刷新您的服务,而无需您提交代码。无需等待构件构建、无需重新部署您的应用程序或经历漫长的 CI 队列。您可以编写代码、保存文件,并在不到一秒钟的时间内看到您的更改在 Kubernetes 中实时运行。

这种快速的云原生开发体验怎么样?

进入云端

如果您正在构建旨在在 Kubernetes 中运行的应用程序,那么为什么不在 Kubernetes 中开发呢?

将 Crossplane 和 Okteto 结合使用,为您的团队提供快速的云原生开发工作流程。通过将 Crossplane 和 Okteto 引入您的团队

  • 您团队中的每个人都可以通过运行单个命令来启动一个完全配置的环境
  • 您的云开发环境涵盖基于 Kubernetes 的工作负载以及云服务
  • 您的团队可以共享单个 Kubernetes 集群,而不是必须在每台开发者机器、CI 管道等上启动一个集群
  • 您的开发环境看起来非常像您的生产环境
  • 您不必培训每位开发者关于 Kubernetes、容器、云服务提供商等等的知识。

只需输入 okteto up,您就可以在几秒钟内开始开发!

Portrait of Ramiro Berrelleza
Ramiro Berrelleza 是 Okteto 的创始人之一。他职业生涯的大部分时间(以及他的空闲时间)都用于构建云服务和开发者工具。在创立 Okteto 之前,Ramiro 曾在 Atlassian 担任架构师,并在 Microsoft Azure 担任软件工程师。他来自墨西哥,目前居住在奥克兰。

评论已关闭。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.