Oneops運維繫統

不明白的某某某發表於2022-03-23

 

       背景:公司對接其他系統時都會將業務分為幾大模組由不同的人員去開發部署。那麼部署方式為傳統方式登入伺服器,然後操作。所以每次上線我們可能都需要等待別的同事操作完才能操作自己所負責的業務系統。針對以上場景在公司做了一個小的運維站點:主要解決業務系統的在iis上建立、釋出、回滾、刪除等操作。同時提供操作步驟實時頁面輸出


      主題:為了解決上面的問題,便捷性,做出如下結構:

         OneopsClient:前臺專案:提供功能:

           (1):登入時選擇操作環境,切換環境

           (2):使用者管理:新增,刪除 可操作Oneops站點的使用者

           (3):伺服器管理:新增,刪除Oneops管理的伺服器

           (4):應用管理:檢視各伺服器上站點資訊;向伺服器新增,釋出程式;回滾程式,刪除程式;實時展示操作步驟

        OneopsServer:後端執行具體操作業務服務。將在需要管控的伺服器上部署

 

對應我們的專案層次圖如下:

 

 

 

專案使用技術點:.netcore3.1   Efcore   Sqlite  Redis  SignalR Jwt  (Rabbitmq)

 

 功能圖解釋:

登入,選擇操作環境:

 

這一步我們將拿到對應環境的token,在後面請求中使用

使用者管理:

這一步我們將可以新增或者刪除操作Oneops賬戶

 

伺服器管理:

 

 當我們新增伺服器時,那麼需要將OneopsServer在此伺服器上部署,刪除時 Oneops將不再對此服務管控

 

應用管理:

 

 我們將展示所有新增伺服器上iis站點資訊,可根據ip或者站點名去搜尋。

 

新增應用程式:

 

新增應用程式時,將要提供你為站點取得名稱,要部署的機器ip(可同時釋出多臺伺服器),站點使用的埠號,支援建立.netcore  和Framwork型別的應用程式,和繫結的域名 和站點建立時對應專案的實體地址,最後上傳我們的專案壓縮包(壓縮包需要帶版本號目前是以_X)來表示 可在專案原始碼中更改

 

釋出:用來我們迭代過程中更新我們專案版本

 

 

 這裡會帶出我們選擇要釋出專案的名稱以及你選擇的同一應用不同伺服器的資訊(多臺伺服器同一專案同時釋出)列出最大版本號,上傳時版本號不能低於最大的版本號。

 

回滾:

 

 回滾時目前只能單臺伺服器回滾。會載入出之前釋出過的專案檔名讓選擇。目前只會儲存最近的三個回滾包,需要改動可以在配置檔案中更改回滾包數量

刪除:

 

 目前也是隻能單個操作 將刪除應用程式和應用程式池

 

日誌:功能展示沒有開放   可以自行連結到自己公司的elk或者檔案等

 實時步驟資訊展示:

 

 

 任何操作都會實時展示出服務端具體在做什麼。綠色程式碼步驟通過,紅色資訊為某一步驟失敗

Ps:步驟資訊展示 本來是用rabbitmq +SignalR 實現 但是 mq並不能保證我們訊息的順序性會導致步驟資訊錯亂  程式碼保留了 但是最後換成了api回撥+SignalR 

github地址:https://github.com/NeverGiveUpChange/Oneops

其他不多寫了 我要準備準備去面試了,有大佬公司有坑位的 可以告知一下

 

 

 感謝。

 

相關文章