資產納管的三種方式介紹

ops-coffee發表於2024-11-08

之前有過一系列的文章來介紹我們的多雲系統,多雲系統可以將不同雲廠商不同雲賬號不同雲區域下的資源進行集中管理,透過多雲系統,使用者可以像使用一朵雲一樣使用多雲,極大的提升了多雲使用的便捷性。雖然如今已經步入雲時代,多雲的使用十分廣泛,但IDC機房仍然存在,不少企業也都還是IDC機房託管的模式,尤其是一些傳統行業或是金融機構等。鑑於此,我們對多雲系統進行了全面的升級,升級成了全新的資產系統,不僅可以管理多雲資源,同時還能夠接入IDC機房資源,實現雲上雲下的統一管理

資產系統針對資源的納管提供了三種方式,分別是:多雲自動同步、Agent主動上報和手工新增,這篇文章將詳細介紹下這三種方式的設計、用法和區別。大概的圖示如下:

這裡邊有個資源池的概念,在之前「多雲系統之資源管理」的文章裡介紹過,資源池是個虛擬的池子,用來暫存雲上同步下來的資源,為什麼說是暫存,主要是因為資源池內的資源都是沒有專案歸屬的,屬於無人認領或暫未認領的無主資源,而所有的資源最終都應該歸屬於專案,以便於專案維護和成本核算。由此可知,一個資源要麼歸屬於專案,要麼暫存於資源池,正常情況下所有資源都應歸屬到專案,那資源池也應該是空的。資源池內的資源有兩種方式歸屬到專案,其一是透過動態規則自動處理,其二便是人工認領手動處理,這裡我們當然是推薦動態規則自動處理啦,減少人為介入,一切都自動化完成

還有個資源樹節點的概念,資源樹就是我們通常所說的服務樹,或者CI樹,都是一樣的東西,只是不同的地方叫法不一樣,這裡就統一叫資源樹好了,資源樹是一個樹狀結構,會有很多的節點,專案下的資源就隸屬於不同的節點,透過樹的方式去組織資源,可以很清晰的瞭解資源關係,使用起來也十分方便,應用特別廣泛。就像下方圖示的左側就是一個資源樹,資源歸屬到不同的樹節點,可以根據不同的資源節點動態獲取節點下的資源資料,使用起來清晰方便

有了這個基本的概念我們再來聊聊這三種資源納管的方式

多雲同步

首先是多雲同步,多雲同步是透過雲平臺的API或SDK,自動同步雲資源資料到資源池,這裡只需要新增雲平臺的賬號即可,自動同步程式會根據配置的時間週期自動去雲上拉取資源資料然後入庫,入庫時會自動判斷是更新資源屬性還是新建資源。新增還是更新的主要判斷依據是:雲賬號+雲區域+資源ID聯合唯一,正常情況下同一雲賬號同一雲區域下的資源ID是唯一的,所以遇到這三者一致的資源則更新,否則就新建。整體的邏輯如下圖所示

動態規則自動匹配需要資源具有一定的規律性,最常用的就是透過資源名稱來區別,例如一個專案A正式環境使用的Nginx伺服器,我們想要給歸屬到專案A下的資源樹節點ProjectA/PROD/Nginx下,那我們最好在資源命名時進行同一,例如都符合ProjectA-PROD-Nginx-{number}這樣的格式,那動態規則就比較好建立,所有名稱以ProjectA-PROD-Nginx-開頭的資源都自動給歸屬到資源樹節點ProjectA/PROD/Nginx

當然資源命名沒有那麼規範且數量不是很多的情況下,也可以直接在資源列表頁面,直接新增資源池內的資源到資源樹節點下,手動新增有一個前提,那就是資源已經在資源池裡了,資源到資源池裡除了多雲自動同步外,還有個方式那就是我們下邊會講到的Agent主動上報

多雲同步比較簡單,如果用到了雲,那首先推薦的就是這種方式進行資源納管,這裡的雲可以是公有云,例如阿里雲、騰訊雲、華為雲等等,或者是私有云,例如VMWare、OpenStack、OpenShift等等

Agent上報

除了多雲同步的方式進行資源納管之外,我們還提供了Agent,可以部署在伺服器上以實現資源主動上報統一納管,這種方式對於IDC之類沒有提供API/SDK獲取資源的方式來說非常有效,透過安裝客戶端Agent,自動上報雲資源資料,這裡只需要伺服器安裝Agent即可,Agent只要與伺服器連通,則會自動上報資源資料到資源池,然後配合動態規則自動將資源歸屬到資源樹節點,這個過程與多雲到自動納管邏輯一致

對於安裝了Agent的伺服器來說,除了資源先到資源池再配合動態規則自動歸屬到資源樹節點的管理方式外,Agent還提供直接歸屬到資源樹節點而不經過資源池的方式。這就涉及Agent的高階配置,Agent的配置檔案預設只需要配置一個Server伺服器的地址即可啟動,像下邊這樣

SERVER-ADDRESS: "wss://agent-server.ops-coffee.cn/api/v1/agent"

Agent啟動之後會與Server建立連線,Server透過週期任務把Agent上報的資源入庫,預設也是先進了資源池,但當Agent配置了引數BIZ-ID時,Server入庫則首先去匹配BIZ-ID所對應的資源樹節點是否存在,如果存在則直接給歸屬到資源樹節點下,不存在則進資源池。這樣的話,當使用者明確知道自己的資源歸屬到哪個資源樹節點時,則可以在Agent的配置檔案中新增BIZ-ID配置,像下邊這樣

SERVER-ADDRESS: "wss://agent-server.ops-coffee.cn/api/v1/agent"
BIZ-ID: "37"

當Server入庫資料時會先檢查ID為37的資源樹節點是否存在,如果存在則直接歸屬到節點,這樣就實現了Agent直接歸屬到節點,而無需經過資源池的步驟,這樣的話也就不需要動態規則自動匹配再歸屬到資源樹節點了,更加方便

手動新增

以上兩種方式無論是多雲自動同步還是Agent主動上報,都可以實現資源的自動入庫,自動歸屬到資源樹節點,這兩種方式都有一定的前提條件,要麼屬於雲資源可以自動同步,要麼安裝了Agent可以主動上報,如果不屬於雲資源,也不想安裝Agent,如何管理資源呢?那系統提供了一種最原始的方式,使用者自己手工錄入,或是透過Excel批次匯入資源

這兩種方式都比較原始,資源屬性的更新依賴人工操作,不像多雲同步或Agent上報,資源屬性的更新都可以自動完成,所有不是特殊情況都不建議使用,這裡就不多贅述了

至此,資產系統所支援的三種資源納管理介紹完畢

相關文章