用了兩週開源堡壘機OneTerm,我有一些建議

ops-coffee發表於2024-03-25

上一篇文章分享了一款簡潔且強大的開源堡壘機OneTerm,功能完善,程式碼簡單,GO語言開發,用來學習很合適,拿來自用也沒問題。堡壘機該有的核心功能基本都有了,方便與自有系統整合,我使用了兩週,功能上沒有什麼大問題,但仍然發現了一些有待提升的地方,這篇文章從我個人使用的角度來寫下我自己覺得有哪些是可以最佳化的,僅一家之言,官方覺得有道理可以採納,也算回饋社群,覺得說錯了也不必較真哈,畢竟我個人認知有限

Web終端

我們平常使用堡壘機最多的功能應該就是登陸系統控制檯,OneTerm支援Linux終端使用,也能透過配置在客戶端上使用,不過這些都比較麻煩,我們平常用的最多的還是Web控制檯,那Web控制檯的使用體驗就十分重要了,OneTerm的Web終端連線在工作臺頁面

這個頁面上點內容比較多,有我的資產、最近回話和個人資訊,我個人覺得Web連線是個十分重要點功能,連線資產點頁面應該簡潔,只包含我的資產這塊的內容即可,左側目錄樹,右側主機,點選連線直接開啟web終端,還有就是突出最重要的「連線」按鈕,而弱化是否可連線的狀態顯示,這裡總感覺那個綠色的「連線」狀態是可以點選的

堡壘機可以支援多個不同的賬號登陸連線,這個比我之前設計的好多了,我之前寫的堡壘機沒考慮過多賬號登陸的問題,支援多賬號登陸顯然更好,不過當一個主機只配置了一個登陸賬號時就沒必要彈出賬號選擇框了,直接連線即可,只在主機配置多個登陸賬號時彈框讓使用者選擇登陸賬號,簡化使用邏輯

OneTerm的Web終端是新開一個瀏覽器標籤顯示的,最大化了內容區域,不過似乎有些小bug,例如不會隨著瀏覽器視窗的改變自動調整終端的展示大小,就是自動resize操作,我之前自己寫WebSSH的時候處理過終端視窗自適應Resize的問題,應該是類似的,終端視窗除了這個bug外,還有一些可以最佳化的地方,例如新的Tab頁面Title最好改成主機的IP或名稱,這樣讓我明確的知道開啟的這個視窗是哪個主機的,不然一次連線的主機多了很容易出錯

其實更好的處理方式我覺得是一個頁面多標籤的形式,而非開多個頁面,多頁面間頻繁切換還是非常麻煩的。這個頁面可以參考Xshell或是MobaXterm之類成熟的SSH客戶端,左側目錄樹,顯示所有目錄及主機資訊,右側多標籤顯示操作視窗,使用體驗比較好,並且也符合大眾的操作習慣

資料互通

OneTerm支援與自家的CMDB聯動,可以同步CMDB的資料到堡壘機,這個非常棒,打破不同系統間的資料壁壘,做到資料統一,基礎資料只有一份保證CMDB資料權威。這跟我之前的理念一致,CMDB要想資料準確,靠制度和規範是不行的,必須要透過技術的手段來保證。上層應用強依賴是個很好的方式,CMDB作為唯一資料來源,如果資料不準確,直接影響到上層應用的正常服務,所以要想上層應用正常,會倒逼CMDB資料準確

不過Oneterm的問題在於,目前只能同步了主機資源,而沒有目錄,一個專案多個不同環境和版本,建立十幾個甚至幾十個目錄樹都很正常,如果不能按目錄樹來同步的話,那要想堡壘機的目錄樹跟CMDB的目錄樹保持一致,就要建立十幾個甚至幾十個目錄和同步規則,確實麻煩,如果能選擇目錄樹同步,那將大大降低使用成本,同時也能保證CMDB目錄樹與OneTerm完全一致,個人覺得更加符合使用習慣

頁面統一

用過一些國外的產品,像CDN領域最為知名的兩家廠商CloudFlare和Akamai,發現他們的產品幾乎每個頁面都不一樣,而我們國內的產品做到了頁面及操作的統一,這個並不是說哪個好哪個不好,或許是文化差異導致習慣不同而已,不過我個人更喜歡國內這種統一的,頁面統一,操作統一,雖然可能看上去沒什麼花樣和新意,但卻降低來使用成本,看到一個頁面大概就知道什麼資訊在哪裡,該如何操作,而不用學習每個頁面的使用

OneTerm在某些地方沒有統一,例如新增資產時的授權賬號是從賬號列表裡選擇的,而建立閘道器時的賬號是單獨的,要輸入賬號密碼資訊,是否也可以從賬號列表裡選擇,這樣維護上比較統一,賬號只儲存在一個地方

例如資產管理下閘道器列表、賬號列表、安全設定右上角都有個「建立」按鈕,但資產列表右上角沒有,要點選目錄樹節點才顯示,這裡可以理解點了目錄樹節點顯示「建立」按鈕之後預設填充節點至表單,不過似乎也不影響在未選中任何節點時「建立」資產

當然這些都不是啥大問題,僅僅是不夠統一而已

後記

  1. 這些僅僅是與我個人使用習慣不完全相符而已,也並不一定都是問題,或許我覺得是bug,只是使用姿勢不對的feature而已

  2. 我們總是很容易發現別人的問題,卻很難發現自己的問題。發現問題相對容易,但真的要改正問題就很難,不一定難在改正的方法,更多的時候可能是我們直面問題的勇氣

  3. 沒有設計完美的產品,所有的好產品都是在使用中不斷打磨出來的,一款產品如果真的重視使用者使用體驗,願意持續不斷的去最佳化,那距離它成為真的好用的產品差的只是時間而已

相關文章