在 Walrus 平臺上,運維團隊在資源定義(Resource Definition)中聲明提供的資源類型,通過設(shè)置匹配規(guī)則,將不同的資源部署模板應(yīng)用到不同類型的環(huán)境、項目等。與此同時,研發(fā)人員無需關(guān)注底層具體實現(xiàn)方式,通過創(chuàng)建 Resource 對象聲明需要使用的資源類型及基本信息,就可以靈活地在各種環(huán)境中自動化創(chuàng)建所需資源并使用,進而屏蔽各類環(huán)境中基礎(chǔ)設(shè)施的復(fù)雜度,降低研發(fā)人員的認知負擔(dān)。
?文章來源:http://www.zghlxwxcb.cn/news/detail-837795.html
本教程將以 MySQL 數(shù)據(jù)庫為例演示如何使用 Walrus 部署多態(tài)應(yīng)用,即通過配置資源定義和資源兩個 API 對象將應(yīng)用快速部署到不同環(huán)境中。
?
概念介紹:資源定義
首先,讓我們了解一些相關(guān)概念。資源定義是 Walrus 構(gòu)建多云、混合基礎(chǔ)設(shè)施上層統(tǒng)一抽象的核心,它可以構(gòu)建多態(tài)應(yīng)用、簡化部署配置。
?
?
容器中存在多架構(gòu)的概念,即允許在同一個鏡像中包含不同架構(gòu)的鏡像 Manifest 配置,獲取鏡像時根據(jù)實際環(huán)境自動選擇合適鏡像,使得容器可以在不同硬件上無縫切換。Walrus 資源定義與此類似,它就是部署過程中的 Manifest,包含不同規(guī)則的配置,在部署時自動根據(jù)部署環(huán)境選擇合適的部署模板。
?
?
資源定義包括四個部分。
?
- 模板:通過自定義或使用開源模板抽象創(chuàng)建資源所需配置。
- 匹配規(guī)則:定義每個規(guī)則的匹配條件,當符合條件時使用的模板。
- 管理員配置:通過在匹配的規(guī)則下添加管理配置,最佳實踐等預(yù)定義配置,簡化用戶部署時配置。
- UI 樣式:根據(jù)需求定制的用戶界面樣式,屏蔽復(fù)雜度。
?
現(xiàn)在,我們一起來看看如何結(jié)合資源定義來屏蔽復(fù)雜度并部署多態(tài)應(yīng)用。
?
部署多態(tài)應(yīng)用
前提條件
在開始前,請準備相關(guān)資源并完成以下配置工作。
?
- 連接器配置。
進入 default 項目
> 連接器
> 新建連接器
,輸入名稱 alibaba, 選擇云廠商類型的連接器,類型選擇“Alibaba”,適用環(huán)境類型選擇“生產(chǎn)”,輸入其他信息完成配置。再次點擊新建連接器,輸入名稱 aws, 類型選擇“AWS”,適用環(huán)境類型選擇“生產(chǎn)”,輸入其他信息完成配置。
?
- 環(huán)境準備。
進入 default 項目
> 環(huán)境
> 新建環(huán)境
,輸入名稱 production,關(guān)聯(lián)剛才新建的名為 alibaba
的連接器,用作生產(chǎn)部署環(huán)境。再次新建環(huán)境,輸入名稱 dr,關(guān)聯(lián)剛才新建的名為 aws 的連接器,用作云災(zāi)備環(huán)境。加上 default
項目中自帶的 local
環(huán)境,我們現(xiàn)在一共有三個環(huán)境:local
,productio
n,dr
。
?
?
- 下載 Walrus CLI
這一步可參考 Walrus 官方文檔:https://seal-io.github.io/docs/zh/cli
?
配置資源定義
接下來我們將配置資源定義,這里以構(gòu)建一個多態(tài)的 mysql 數(shù)據(jù)庫為例。
?
- 資源定義規(guī)則配置
首先按照順序進入 運維中心
> 資源定義
> 新建資源定義
,輸入資源定義名稱 demo-mysql
,輸入類型 mysql
。接下來新建以下:
?
- 新建匹配規(guī)則
dev
用來表示開發(fā)環(huán)境的匹配規(guī)則和使用模板,添加選擇器,這里選擇環(huán)境名稱,輸入名稱local
,模板使用builtin/kubernetes-mysql
的最新版本,在預(yù)定義配置部分配好 cpu 和 memory 資源。 - 新建匹配規(guī)則
production
用來表示生產(chǎn)環(huán)境,添加選擇器,這里選擇環(huán)境名稱,輸入production
,模板使用builtin/alicloud-rds-mysql
的最新版本,在預(yù)定義配置部分配好Vpc Id
,這樣用戶在使用該資源定義創(chuàng)建資源時,就無需再填寫Vpc Id
,其他根據(jù)實際情況配置。 - 新建匹配規(guī)則
dr
用來表示災(zāi)備環(huán)境,添加選擇器,這里選擇環(huán)境名稱,輸入dr
,模板使用builtin/aws-rds-mysql
的最新版本,在預(yù)定義配置部分配好Vpc Id
,其他根據(jù)實際情況配置。
?
配置完成后包含以下匹配規(guī)則。
?
?
?
?
- 自定義 UI 樣式配置
完成規(guī)則配置后,Walrus 會根據(jù)配置的規(guī)則和預(yù)定義配置,智能渲染出 UI 樣式,管理員可以根據(jù)需求定制 UI 樣式。
?
然后進入運維中心
> 資源定義
> 找到對應(yīng)的資源定義 > UI Schema
,點擊預(yù)覽可看到自動生成的 UI 樣式。我們這里刪除一些復(fù)雜配置,留下常用配置支持用戶快速啟動,以下是配置完成的 UI 樣式。
?
?
部署多態(tài)應(yīng)用
使用上面配置好的資源定義就可以支持我們創(chuàng)建多態(tài)應(yīng)用了。這里我們按照以下步驟進行部署:
?
- 進入
應(yīng)用管理
> local 環(huán)境 > 新建資源。 - 輸入資源名稱,資源類型選擇我們剛新建的資源類型
mysql
,輸入架構(gòu),數(shù)據(jù)庫版本等配置,點擊保存并部署就可完成部署了。 - 進入 production 環(huán)境 > 新建資源,同樣選擇資源類型 mysql,輸入配置完成部署。
- 進入
dr
環(huán)境 > 新建資源,同樣選擇資源類型 mysql,輸入配置完成部署。 - 三個環(huán)境都創(chuàng)建了 mysql 類型的資源,
local
環(huán)境連接了 kubernetes 連接器,production
環(huán)境連接了alibaba
連接器,dr 環(huán)境連接了 aws 連接器,可以看到不同環(huán)境是否根據(jù)當前環(huán)境動態(tài)的創(chuàng)建了對應(yīng)的資源。
?
local 環(huán)境在 kubernetes 集群中創(chuàng)建了 mysql 容器。
?
?
production 環(huán)境在 alibaba 云中創(chuàng)建了 rds 服務(wù)。
?
?
?
dr 環(huán)境在 aws 云中創(chuàng)建了對應(yīng)的 rds 服務(wù)。
?
?
?
通過 Walrus File 部署多態(tài)應(yīng)用
除了通過 UI 部署多態(tài)應(yīng)用,還可以通過 Walrus file
達到同樣的效果。
?
- 準備
app.yaml
,內(nèi)容如下:
?
version: v1
resources:
- name: mysql
type: mysql
attributes:
architecture: standalone
database: mydb
engine_version: "8.0"
username: rdsuser
?
- 運行命令部署到不同環(huán)境。
?
# 部署到local環(huán)境
walrus apply -f app.yaml -p default -e local
# 部署到production環(huán)境
walrus apply -f app.yaml -p default -e production
# 部署到dr環(huán)境
walrus apply -f app.yaml -p default -e dr
?
通過 CLI 部署可以實現(xiàn)通過復(fù)用同一個 Walrus File,部署多態(tài)應(yīng)用到不同環(huán)境。
?
至此,我們實現(xiàn)了通過配置資源定義簡化應(yīng)用部署,并通過資源將其部署至多個環(huán)境中,極大程度為研發(fā)和運維團隊屏蔽基礎(chǔ)設(shè)施復(fù)雜度,減輕工作負擔(dān)。
?
Walrus 通過 XaC(一切即代碼)可以統(tǒng)一管理從底層基礎(chǔ)設(shè)施資源置備到上層應(yīng)用發(fā)布的應(yīng)用生命周期,和 CI 工具集成可以自動化 CI/CD 流水線交付。如果您被底層基礎(chǔ)設(shè)施繁瑣的配置流程所困擾或想要簡化應(yīng)用管理和部署流程,歡迎下載使用 Walrus。
?
Walrus GitHub 主頁:https://github.com/seal-io/walrus
Walrus 在線文檔:https://seal-io.github.io/docs/zh/文章來源地址http://www.zghlxwxcb.cn/news/detail-837795.html
到了這里,關(guān)于如何將應(yīng)用一鍵部署至多個環(huán)境?丨Walrus教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!