Garden.io:它是什么以及为什么要使用它?

简介: Garden.io:它是什么以及为什么要使用它?

准备好简化您的开发和运营流程了吗?在这份全面的指南中,我们将深入探讨 Garden.io 所提供的一切,从其强大的功能到其用户友好性。您不会想放弃 Garden.io 可以为您的应用程序带来的效率和生产力提升,无论它们的复杂程度如何。

什么是 Garden.io?

Garden.io 是一个云原生应用程序开发、测试和部署平台。它在名为“garden.yml”的配置文件中定义应用程序的构建和部署过程。它兼容包括JavaScript在内的多种编程语言,可用于使用React、VueJS、NodeJS等前后端技术开发的项目。

Garden.io 的开发是为了满足对管理和部署应用程序的标准化和适应性方法的需求,特别是在大型和复杂的环境中。它的创建是为了支持多种语言和框架,易于使用,可与 Docker 和 Kubernetes 等知名工具连接,并且非常灵活。

该平台自推出以来在开发人员中越来越受欢迎。

随着不断添加新功能和集成以满足公司和开发人员的需求,它不断扩展并变得更好。

动图

网络异常,图片无法展示
|

听起来很酷,对吧?😉

🤔 为什么要使用它?

网络异常,图片无法展示
|

我会给你一些为什么你应该在你的项目中使用 Garden.io 的理由:

  • Garden.io 允许您在单个配置文件中描述所有应用程序的依赖项、构建过程和部署配置,从而简化复杂的应用程序管理。
  • 通过为您提供定义管道构建、测试和部署方法的配置文件,使构建、测试和部署代码的整个过程自动化,CI/CD 流程得到简化。
  • Garden.io 可让您为项目设计一致的工作流程,包括用于开发、测试和交付代码的工具和流程。这可确保您的所有项目都遵守同一套标准和程序。
  • 它支持多种语言和框架,包括 Node.js、Python 和 Java,使其成为用于管理和部署应用程序的多功能且适应性强的解决方案。

让我们看一些有助于您更好地理解工作流的原则。

🤽‍♀️ DevOps

DevOps 是一种软件工程方法,它强调软件开发人员和信息技术 (IT) 专家之间的合作和沟通,同时实现软件交付和基础架构变更的自动化。

它旨在缩短开发生命周期并实现高质量软件的持续交付。

🔮 CI/CD

网络异常,图片无法展示
|

持续集成/持续部署简称为 CI/CD。它是一种试图提高软件交付速度、质量和可靠性的软件开发方法。

持续集成 (CI) 是一种频繁地将代码更改合并到中央存储库的技术,通常每天多次。这有助于开发人员在开发过程的早期识别和解决问题,而不是等到问题可能更难解决的后期阶段。

持续部署 (CD) 通过自动化将代码更改交付到生产的过程来扩展 CI。这意味着如果进行更改并成功集成到中央存储库中,它会立即部署到生产环境中,无需任何手动参与。

⚙️ 安装 Kubernetes、Docker 和 Garden.io

要使用 Garden.io,您必须首先在您的机器上安装 Kubernetes 和 Docker。您将需要这些,因为 Garden.io 依赖 Docker 和 Kubernetes 来管理和部署容器化应用程序。

📦 Kubernetes

使用 NPM 安装 Kubernetes:

npm install -g kubernetes-cli
复制代码

使用 Yarn 安装 Kubernetes:

yarn global add kubernetes-cli
复制代码

使用 Homebrew 安装 Kubernetes:

brew install kubernetes-cli
复制代码

🐳 Docker

使用 NPM 安装 Docker:

npm install -g docker
复制代码

使用 Yarn 安装 Docker:

yarn global add docker
复制代码

使用 Homebrew 安装 Docker:

brew install docker
复制代码

Garden.io

后面的工具安装完成后,就该安装 Garden.io 了。

brew tap garden-io/garden
brew install garden-cli
复制代码
安装脚本
curl -sfL https://git.io/get-garden | sh -s -- -b /usr/local/bin
复制代码

上面的说明是为 MacOS 设计的,但如果您使用的是 Windows 或 Linux,您可以在文档中阅读更多内容:https ://docs.garden.io/getting-started/1-installation 。

网络异常,图片无法展示
|

Garden.io 完成安装后,您应该会看到一个漂亮的终端,如上图所示!🤩

👨‍💻 设置 Garden.io

为了在您的项目中设置 Garden.io,请运行以下命令:

garden init
复制代码

然后,通过将以下示例添加到garden.yml文件中来配置项目,该文件是指定服务、任务、测试等的文件:

services:
  web:
    build: .
    ports:
      - target: 3000
        published: 3000
        protocol: tcp
复制代码

Garden.io 的配置现已完成(当然,基于您项目的具体需求)。

🚧 构建应用程序

在您的项目中设置 Garden.io 的配置后,您现在可以通过导航到项目目录并运行以下命令来运行它:

garden start
复制代码

现在您已经在项目中设置、配置了 Garden.io 并且正在运行,Garden 将启动项目并为您在garden.yml文件中定义的每个服务创建一个容器。如果您http://localhost:3000在浏览器中访问,您应该能够访问您的项目!🎉

🧪 测试应用程序

为了在您的 Garden.io 中设置测试(因为测试也很重要,对吗?😉),您可以首先在garden.yml文件中设置一个名为tests.

tests:
  my-tests:
    service: web
    command: npm run test
复制代码

在这里,您可以定义项目所需的特定测试。然后,当您运行以下命令时,您应该能够看到正在运行的测试套件:

garden test
复制代码

例如,此测试将npm run testweb服务中运行。看?在 Garden.io 中进行测试就像吃一片披萨一样简单!🍕

🚚 部署

现在的问题是:“如何使用 Garden.io 部署项目?” 🤔嗯,这也很简单!😀

您可以通过在garden.yml文件中创建目标环境部分来将其部署到各种云提供商和 Kubernetes 集群:

target:
  name: my-kubernetes-cluster
  provider: kubernetes
复制代码

在这个例子中,我们指定目标环境是一个名为 的 Kubernetes 集群my-kubernetes-cluster。请注意,您需要kubectl在您的机器上安装并有权访问它才能部署到 Kubernetes 集群。

然后,您运行以下命令来部署它:

garden deploy
复制代码

完成这些步骤后,Garden.io 将开始部署过程并在您的云提供商或 Kubernetes 集群中创建必要的资源。可以在你可爱的终端陪伴部署状态🥰

动图

网络异常,图片无法展示
|

然后,为了访问您部署的项目,打开部署环境的 URL 或 IP 地址,具体取决于您使用的特定云提供商或 Kubernetes 设置。完成这些步骤后,您可以看到 Garden.io 在设置、测试和部署您的项目时是多么容易使用😁

🌻 官方文档

🪴 Garden.io 的官方文档可在此处找到:https ://docs.garden.io/ -

它涵盖了您需要的所有详细信息。

网络异常,图片无法展示
|

他们写了多么漂亮的文档!👏


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
9月前
|
存储 固态存储 Java
文件IO讲解
文件IO讲解
94 0
day26-系统IO(2022.2.23)
day26-系统IO(2022.2.23)
|
存储 网络协议 数据挖掘
Linux高级IO(一)
Linux高级IO
102 0
|
存储 程序员 Linux
Linux高级IO(二)
Linux高级IO
158 0
|
XML 存储 SQL
3. IO
3. IO
140 0
|
缓存 安全 Java
|
存储 安全 NoSQL
聊聊IO
聊聊IO
175 0
聊聊IO
|
JavaScript 前端开发 PHP
PHPSocket.IO 是什么?
PHPSocket.IO 是什么?
284 0
|
数据库管理
(一)理解IO
Netty专栏
176 0
(一)理解IO
|
Java 开发者
各种 IO | 学习笔记
快速学习各种 IO。
152 0