如何將應用一鍵部署至多個環境?丨Walrus教程

来源:https://www.cnblogs.com/sealio/p/18060435
-Advertisement-
Play Games

在 Walrus 平臺上,運維團隊在資源定義(Resource Definition)中聲明提供的資源類型,通過設置匹配規則,將不同的資源部署模板應用到不同類型的環境、項目等。與此同時,研發人員無需關註底層具體實現方式,通過創建 Resource 對象聲明需要使用的資源類型及基本信息,就可以靈活地在 ...


在 Walrus 平臺上,運維團隊在資源定義(Resource Definition)中聲明提供的資源類型,通過設置匹配規則,將不同的資源部署模板應用到不同類型的環境、項目等。與此同時,研發人員無需關註底層具體實現方式,通過創建 Resource 對象聲明需要使用的資源類型及基本信息,就可以靈活地在各種環境中自動化創建所需資源並使用,進而屏蔽各類環境中基礎設施的複雜度,降低研發人員的認知負擔。

 

本教程將以 MySQL 資料庫為例演示如何使用 Walrus 部署多態應用,即通過配置資源定義和資源兩個 API 對象將應用快速部署到不同環境中。

 

概念介紹:資源定義

首先,讓我們瞭解一些相關概念。資源定義是 Walrus 構建多雲、混合基礎設施上層統一抽象的核心,它可以構建多態應用、簡化部署配置。

 

 

容器中存在多架構的概念,即允許在同一個鏡像中包含不同架構的鏡像 Manifest 配置,獲取鏡像時根據實際環境自動選擇合適鏡像,使得容器可以在不同硬體上無縫切換。Walrus 資源定義與此類似,它就是部署過程中的 Manifest,包含不同規則的配置,在部署時自動根據部署環境選擇合適的部署模板。

 

 

資源定義包括四個部分。

 

  • 模板:通過自定義或使用開源模板抽象創建資源所需配置。
  • 匹配規則:定義每個規則的匹配條件,當符合條件時使用的模板。
  • 管理員配置:通過在匹配的規則下添加管理配置,最佳實踐等預定義配置,簡化用戶部署時配置。
  • UI 樣式:根據需求定製的用戶界面樣式,屏蔽複雜度。

 

現在,我們一起來看看如何結合資源定義來屏蔽複雜度並部署多態應用

 

部署多態應用

前提條件

在開始前,請準備相關資源並完成以下配置工作。

 

  1. 連接器配置。

進入 default 項目 > 連接器> 新建連接器,輸入名稱 alibaba, 選擇雲廠商類型的連接器,類型選擇“Alibaba”,適用環境類型選擇“生產”,輸入其他信息完成配置。再次點擊新建連接器,輸入名稱 aws, 類型選擇“AWS”,適用環境類型選擇“生產”,輸入其他信息完成配置。

 

  1. 環境準備。

進入 default 項目 > 環境> 新建環境,輸入名稱 production,關聯剛纔新建的名為 alibaba 的連接器,用作生產部署環境。再次新建環境,輸入名稱 dr,關聯剛纔新建的名為 aws 的連接器,用作雲災備環境。加上 default 項目中自帶的 local 環境,我們現在一共有三個環境:localproduction,dr

 

 

  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,其他根據實際情況配置。

 

配置完成後包含以下匹配規則。

 

 

 

 

  1. 自定義 UI 樣式配置

完成規則配置後,Walrus 會根據配置的規則和預定義配置,智能渲染出 UI 樣式,管理員可以根據需求定製 UI 樣式。

 

然後進入運維中心 > 資源定義 > 找到對應的資源定義 > UI Schema,點擊預覽可看到自動生成的 UI 樣式。我們這裡刪除一些複雜配置,留下常用配置支持用戶快速啟動,以下是配置完成的 UI 樣式。

 

 

部署多態應用

使用上面配置好的資源定義就可以支持我們創建多態應用了。這裡我們按照以下步驟進行部署:

 

  1. 進入 應用管理 > local 環境 > 新建資源。
  2. 輸入資源名稱,資源類型選擇我們剛新建的資源類型 mysql,輸入架構,資料庫版本等配置,點擊保存並部署就可完成部署了。
  3. 進入 production 環境 > 新建資源,同樣選擇資源類型 mysql,輸入配置完成部署。
  4. 進入 dr 環境 > 新建資源,同樣選擇資源類型 mysql,輸入配置完成部署。
  5. 三個環境都創建了 mysql 類型的資源,local 環境連接了 kubernetes 連接器,production 環境連接了 alibaba 連接器,dr 環境連接了 aws 連接器,可以看到不同環境是否根據當前環境動態的創建了對應的資源。

 

local 環境在 kubernetes 集群中創建了 mysql 容器。

 

 

production 環境在 alibaba 雲中創建了 rds 服務。

 

 

 

dr 環境在 aws 雲中創建了對應的 rds 服務。

 

 

 

通過 Walrus File 部署多態應用

除了通過 UI 部署多態應用,還可以通過 Walrus file 達到同樣的效果。

 

  1. 準備 app.yaml,內容如下:

 

version: v1
resources:
  - name: mysql
    type: mysql
    attributes:
      architecture: standalone
      database: mydb
      engine_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/


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 聲明測試表,供文章案例使用 CREATE TABLE `cs` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `num` int(10) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoD ...
  • Slow Log 簡介 用於記錄執行時間超過指定值的 SQL 語句的詳細信息,多用於調試和監控。 配置 因為開啟會略微影響性能,所以預設沒有開啟,所以需要配置。 查看是否開啟 show variables like '%slow%'; + + + | Variable_name | Value | ...
  • 註:以下所有內容均為自己總結的筆記,涉及底層原理,難度對標18K-25K薪資,偏理論,不保證百分百準確性。 索引查找快速的原理? 創建索引的本質是排序,排好序之後再找數據就快了。 對於B+tree索引,B+tree對數據排序後採用多路查找思想的非線性查找方案,減少了大量的查詢次數,從而避免多次磁碟i ...
  • 本文分享自華為雲社區《守護更多女性健康,華為雲GeminiDB助力美柚完成資料庫高效穩定遷移》,作者:華為雲頭條。 陽春三月,“三八”國際婦女節悄然而至。在社會快速發展的今天,女性力量在各個領域大放異彩,儘管女性成長路上可能會風雨兼顧,但是關註自己、保持身心健康才能走得更遠、看到更美的風景。美柚作為 ...
  • SQLQueryStress是SQL Server資料庫的一個壓測工具,這裡不打算介紹這款工具,而是淺析一下SQLQueryStress工具的一些指標涵義。如有疏漏或不足之處,敬請指正。 如下截圖所示,你會看到下麵一些指標 那麼對應指標的具體含義是啥呢?下麵表格整理了這些指標的含義; 很多同學對於C ...
  • 本期課程將從管理平臺的架構出發,結合平臺的實例管理、實例升級、容災管理和監控告警的功能和操作介紹,全面覆蓋日常運維操作,帶您理解並熟練運用GaussDB運維平臺完成運維工作。 ...
  • 索引相關 類型隱式轉換 大坑 **欄位filed1是varchar類型,且加了索引,如果 where filed1 = 123; type 可能是all,因為123是數字類型,mysql內部會用函數做隱式轉換,用了函數,索引就失效了。** 大數據深度分頁,用主鍵 select field1,fiel ...
  • 推薦:SQL語句執行順序相關問題。 MySQL Server架構 分層概述 MySQL Server架構可抽象為3層。 連接層:驗證用戶名密碼,認證成功後,獲取當前賬號的許可權並緩存,並分配TCP連接池和線程池資源。 處理層:實現核心的處理功能。 存儲層:將處理後的數據高性能安全的寫入磁碟,或從磁碟中 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...