如何將應用一鍵部署至多個環境?丨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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...