如何将应用一键部署至多个环境?丨Walrus教程

2024-03-09 21:36

本文主要是介绍如何将应用一键部署至多个环境?丨Walrus教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在 Walrus 平台上,运维团队在资源定义(Resource Definition)中声明提供的资源类型,通过设置匹配规则,将不同的资源部署模板应用到不同类型的环境、项目等。与此同时,研发人员无需关注底层具体实现方式,通过创建 Resource 对象声明需要使用的资源类型及基本信息,就可以灵活地在各种环境中自动化创建所需资源并使用,进而屏蔽各类环境中基础设施的复杂度,降低研发人员的认知负担。

 

本教程将以 MySQL 数据库为例演示如何使用 Walrus 部署多态应用,即通过配置资源定义和资源两个 API 对象将应用快速部署到不同环境中。

 

概念介绍:资源定义

首先,让我们了解一些相关概念。资源定义是 Walrus 构建多云、混合基础设施上层统一抽象的核心,它可以构建多态应用、简化部署配置。

 

image.png

 

容器中存在多架构的概念,即允许在同一个镜像中包含不同架构的镜像 Manifest 配置,获取镜像时根据实际环境自动选择合适镜像,使得容器可以在不同硬件上无缝切换。Walrus 资源定义与此类似,它就是部署过程中的 Manifest,包含不同规则的配置,在部署时自动根据部署环境选择合适的部署模板。

 

image.png

 

资源定义包括四个部分。

 

  • 模板:通过自定义或使用开源模板抽象创建资源所需配置。
  • 匹配规则:定义每个规则的匹配条件,当符合条件时使用的模板。
  • 管理员配置:通过在匹配的规则下添加管理配置,最佳实践等预定义配置,简化用户部署时配置。
  • UI 样式:根据需求定制的用户界面样式,屏蔽复杂度。

 

现在,我们一起来看看如何结合资源定义来屏蔽复杂度并部署多态应用

 

部署多态应用

前提条件

在开始前,请准备相关资源并完成以下配置工作。

 

  1. 连接器配置。

进入 default 项目 > 连接器> 新建连接器,输入名称 alibaba, 选择云厂商类型的连接器,类型选择“Alibaba”,适用环境类型选择“生产”,输入其他信息完成配置。再次点击新建连接器,输入名称 aws, 类型选择“AWS”,适用环境类型选择“生产”,输入其他信息完成配置。

 

  1. 环境准备。

进入 default 项目 > 环境> 新建环境,输入名称 production,关联刚才新建的名为 alibaba 的连接器,用作生产部署环境。再次新建环境,输入名称 dr,关联刚才新建的名为 aws 的连接器,用作云灾备环境。加上 default 项目中自带的 local 环境,我们现在一共有三个环境:localproduction,dr

 

image.png

 

  1. 下载 Walrus CLI

这一步可参考 Walrus 官方文档:https://seal-io.github.io/docs/zh/cli

 

配置资源定义

接下来我们将配置资源定义,这里以构建一个多态的 mysql 数据库为例。

 

  1. 资源定义规则配置

首先按照顺序进入 运维中心 > 资源定义 > 新建资源定义,输入资源定义名称 demo-mysql,输入类型 mysql。接下来新建以下:

 

  • 新建匹配规则 dev 用来表示开发环境的匹配规则和使用模板,添加选择器,这里选择环境名称,输入名称 local,模板使用 builtin/kubernetes-mysql 的最新版本,在预定义配置部分配好 cpu 和 memory 资源。
  • 新建匹配规则 production 用来表示生产环境,添加选择器,这里选择环境名称,输入 production,模板使用 builtin/alicloud-rds-mysql 的最新版本,在预定义配置部分配好 Vpc Id,这样用户在使用该资源定义创建资源时,就无需再填写 Vpc Id,其他根据实际情况配置。
  • 新建匹配规则 dr 用来表示灾备环境,添加选择器,这里选择环境名称,输入 dr,模板使用 builtin/aws-rds-mysql 的最新版本,在预定义配置部分配好 Vpc Id,其他根据实际情况配置。

 

配置完成后包含以下匹配规则。

 

image.png

 

image.png

 

image.png

 

  1. 自定义 UI 样式配置

完成规则配置后,Walrus 会根据配置的规则和预定义配置,智能渲染出 UI 样式,管理员可以根据需求定制 UI 样式。

 

然后进入运维中心 > 资源定义 > 找到对应的资源定义 > UI Schema,点击预览可看到自动生成的 UI 样式。我们这里删除一些复杂配置,留下常用配置支持用户快速启动,以下是配置完成的 UI 样式。

 

image.png

 

部署多态应用

使用上面配置好的资源定义就可以支持我们创建多态应用了。这里我们按照以下步骤进行部署:

 

  1. 进入 应用管理 > local 环境 > 新建资源。
  2. 输入资源名称,资源类型选择我们刚新建的资源类型 mysql,输入架构,数据库版本等配置,点击保存并部署就可完成部署了。
  3. 进入 production 环境 > 新建资源,同样选择资源类型 mysql,输入配置完成部署。
  4. 进入 dr 环境 > 新建资源,同样选择资源类型 mysql,输入配置完成部署。
  5. 三个环境都创建了 mysql 类型的资源,local 环境连接了 kubernetes 连接器,production 环境连接了 alibaba 连接器,dr 环境连接了 aws 连接器,可以看到不同环境是否根据当前环境动态的创建了对应的资源。

 

local 环境在 kubernetes 集群中创建了 mysql 容器。

 

image.png

 

production 环境在 alibaba 云中创建了 rds 服务。

 

image.png

 

image.png

 

dr 环境在 aws 云中创建了对应的 rds 服务。

 

image.png

 

image.png

 

通过 Walrus File 部署多态应用

除了通过 UI 部署多态应用,还可以通过 Walrus file 达到同样的效果。

 

  1. 准备 app.yaml,内容如下:

 

version: v1
resources:- name: mysqltype: mysqlattributes:architecture: standalonedatabase: mydbengine_version: "8.0"username: rdsuser

 

  1. 运行命令部署到不同环境。

 

# 部署到local环境
walrus apply -f app.yaml -p default -e local# 部署到production环境
walrus apply -f app.yaml -p default -e production# 部署到dr环境
walrus apply -f app.yaml -p default -e dr

 

通过 CLI 部署可以实现通过复用同一个 Walrus File,部署多态应用到不同环境。

 

至此,我们实现了通过配置资源定义简化应用部署,并通过资源将其部署至多个环境中,极大程度为研发和运维团队屏蔽基础设施复杂度,减轻工作负担。

 

Walrus 通过 XaC(一切即代码)可以统一管理从底层基础设施资源置备到上层应用发布的应用生命周期,和 CI 工具集成可以自动化 CI/CD 流水线交付。如果您被底层基础设施繁琐的配置流程所困扰或想要简化应用管理和部署流程,欢迎下载使用 Walrus。

 

Walrus GitHub 主页:https://github.com/seal-io/walrus
Walrus 在线文档:https://seal-io.github.io/docs/zh/

这篇关于如何将应用一键部署至多个环境?丨Walrus教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/792007

相关文章

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

MySQL Workbench 安装教程(保姆级)

《MySQLWorkbench安装教程(保姆级)》MySQLWorkbench是一款强大的数据库设计和管理工具,本文主要介绍了MySQLWorkbench安装教程,文中通过图文介绍的非常详细,对大... 目录前言:详细步骤:一、检查安装的数据库版本二、在官网下载对应的mysql Workbench版本,要是

SpringBoot配置Ollama实现本地部署DeepSeek

《SpringBoot配置Ollama实现本地部署DeepSeek》本文主要介绍了在本地环境中使用Ollama配置DeepSeek模型,并在IntelliJIDEA中创建一个Sprin... 目录前言详细步骤一、本地配置DeepSeek二、SpringBoot项目调用本地DeepSeek前言随着人工智能技