如何將應用一鍵部署至多個環境?丨Walrus教程
在 Walrus 平臺上,運維團隊在資源定義(Resource Definition)中宣告提供的資源型別,透過設定匹配規則,將不同的資源部署模板應用到不同型別的環境、專案等。與此同時,研發人員無需關注底層具體實現方式,透過建立 Resource 物件宣告需要使用的資源型別及基本資訊,就可以靈活地在各種環境中自動化建立所需資源並使用,進而遮蔽各類環境中基礎設施的複雜度,降低研發人員的認知負擔。
本教程將以 MySQL 資料庫為例演示如何使用 Walrus 部署多型應用,即透過配置資源定義和資源兩個 API 物件將應用快速部署到不同環境中。
概念介紹:資源定義
首先,讓我們瞭解一些相關概念。資源定義是 Walrus 構建多雲、混合基礎設施上層統一抽象的核心,它可以構建多型應用、簡化部署配置。
容器中存在多架構的概念,即允許在同一個映象中包含不同架構的映象 Manifest 配置,獲取映象時根據實際環境自動選擇合適映象,使得容器可以在不同硬體上無縫切換。Walrus 資源定義與此類似,它就是部署過程中的 Manifest,包含不同規則的配置,在部署時自動根據部署環境選擇合適的部署模板。
資源定義包括四個部分。
- 模板:透過自定義或使用開源模板抽象建立資源所需配置。
- 匹配規則:定義每個規則的匹配條件,當符合條件時使用的模板。
- 管理員配置:透過在匹配的規則下新增管理配置,優秀實踐等預定義配置,簡化使用者部署時配置。
- UI 樣式:根據需求定製的使用者介面樣式,遮蔽複雜度。
現在,我們一起來看看如何 結合資源定義來遮蔽複雜度並部署多型應用。
部署多型應用
前提條件
在開始前,請準備相關資源並完成以下配置工作。
- 聯結器配置。
進入
default 專案
>
聯結器
>
新建聯結器
,輸入名稱 alibaba, 選擇雲廠商型別的聯結器,型別選擇“Alibaba”,適用環境型別選擇“生產”,輸入其他資訊完成配置。再次點選新建聯結器,輸入名稱 aws, 型別選擇“AWS”,適用環境型別選擇“生產”,輸入其他資訊完成配置。
- 環境準備。
進入
default 專案
>
環境
>
新建環境
,輸入名稱 production,關聯剛才新建的名為
alibaba
的聯結器,用作生產部署環境。再次新建環境,輸入名稱 dr,關聯剛才新建的名為 aws 的聯結器,用作雲災備環境。加上
default
專案中自帶的
local
環境,我們現在一共有三個環境:
local
,
productio
n,
dr
。
- 下載 Walrus CLI
這一步可參考 Walrus 官方文件:
配置資源定義
接下來我們將配置資源定義,這裡以構建一個多型的 mysql 資料庫為例。
- 資源定義規則配置
首先按照順序進入
運維中心
>
資源定義
>
新建資源定義
,輸入資源定義名稱
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
,其他根據實際情況配置。
配置完成後包含以下匹配規則。
- 自定義 UI 樣式配置
完成規則配置後,Walrus 會根據配置的規則和預定義配置,智慧渲染出 UI 樣式,管理員可以根據需求定製 UI 樣式。
然後進入
運維中心
>
資源定義
> 找到對應的資源定義 >
UI Schema
,點選預覽可看到自動生成的 UI 樣式。我們這裡刪除一些複雜配置,留下常用配置支援使用者快速啟動,以下是配置完成的 UI 樣式。
部署多型應用
使用上面配置好的資源定義就可以支援我們建立多型應用了。這裡我們按照以下步驟進行部署:
- 進入
應用管理
> local 環境 > 新建資源。 - 輸入資源名稱,資源型別選擇我們剛新建的資源型別
mysql
,輸入架構,資料庫版本等配置,點選儲存並部署就可完成部署了。 - 進入 production 環境 > 新建資源,同樣選擇資源型別 mysql,輸入配置完成部署。
- 進入
dr
環境 > 新建資源,同樣選擇資源型別 mysql,輸入配置完成部署。 - 三個環境都建立了 mysql 型別的資源,
local
環境連線了 kubernetes 聯結器,production
環境連線了alibaba
聯結器,dr 環境連線了 aws 聯結器,可以看到不同環境是否根據當前環境動態的建立了對應的資源。
local 環境在 kubernetes 叢集中建立了 mysql 容器。
production 環境在 alibaba 雲中建立了 rds 服務。
dr 環境在 aws 雲中建立了對應的 rds 服務。
透過 Walrus File 部署多型應用
除了透過 UI 部署多型應用,還可以透過
Walrus file
達到同樣的效果。
- 準備
app.yaml
,內容如下:
version: v1resources: - name: mysql type: mysql attributes: architecture: standalone database: mydb engine_version: "8.0" username: rdsuser
- 執行命令部署到不同環境。
# 部署到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 主頁:
Walrus 線上文件:
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70026925/viewspace-3008444/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 10分鐘內一鍵部署環境及應用
- 一鍵化安裝 docker,一鍵化部署 lnmp+Redis 環境,快速部署 Laravel 環境DockerLNMPRedisLaravel
- 用 Vagrant 一鍵部署開發環境 kafka 叢集開發環境Kafka
- 使用Docker 一鍵部署 LNMP+Redis 環境DockerLNMPRedis
- [譯] 教學:如何使用實際按鈕將應用程式部署到生產環境
- 如何將SAP Multi Target應用部署到SAP雲平臺的Cloud Foundry環境去Cloud
- 在生產環境使用Docker部署應用Docker
- 快速教程|如何在 AWS EC2上使用 Walrus 部署 GitLabGitlab
- Linux 環境下如何安裝部署 RocketMQ 教程LinuxMQ
- 【唯實踐】容器環境應用一鍵拉起實踐
- RAC環境中的應用程式部署——RAC部署和效能
- Walrus 實用教程|Walrus + Gitlab,打通CI/CD 自動化交付!Gitlab
- 將Java應用部署到SAP雲平臺neo環境的兩種方式Java
- Istio實踐(1)-環境搭建及應用部署
- Websphere Application Server 環境配置與應用部署WebAPPServer
- 將ASP.NET Core應用程式部署至生產環境中(CentOS7)ASP.NETCentOS
- 最簡單的nginx教程 - 如何把一個web應用部署到nginx上NginxWeb
- Oracle RAC一鍵部署001(主機環境校驗)Oracle
- 介紹RAC環境中的應用程式部署——RAC部署和效能
- 手把手帶你離線部署Walrus,體驗極簡應用交付
- vcenter6.7生產環境叢集部署及應用
- 分散式儲存在雲環境下的應用和部署分散式
- oneinstack 另一個 lnmp環境一鍵安裝工具LNMP
- Gilt如何將微服務部署到AWS環境,介紹ION-Roller微服務
- 環境配置難?教你一鍵幫你搞定伺服器環境部署伺服器
- PHP 一鍵 Docker LNMP 環境PHPDockerLNMP
- 熱部署一般用在測試環境, 生產環境用分散式配置中心熱部署分散式
- Websphere Application Server 環境配置與應用部署最佳實踐WebAPPServer
- 為 Node.js 應用建立一個更安全的沙箱環境Node.js
- 如何一鍵退出所有應用程式?
- 部署Java環境Java
- CloudBase Framework丨第一個 Deno 部署工具是如何打造的?CloudFramework
- 用travis和git hook搞個一鍵部署GitHook
- 實用教程丨如何將實時資料顯示在前端電子表格中(一)前端
- 如何輕鬆建站?站點一鍵部署搭建(詳細教程)
- 利用 Docker 一鍵搭建 LNMP 環境DockerLNMP
- zabbix一鍵安裝lnmp環境LNMP
- 一鍵RAC環境配置指令碼指令碼