在日常工作中,我們一定遇到過需要快速構建系統的工作情形:
這些場景都展現著我們日常所遇的各種困難:
由此可見,自動化運維成了運維人員的業務剛需,各大雲廠商也相繼推出各自的資源編排服務(Resource Orchestration,以下簡稱 ROS)。ROS 的理念是“基礎設施即程式碼”,一方面是用程式碼思維的版本管理來記錄基礎設施變化,另一方面透過程式碼實現自動化運維,簡化編寫程式碼複雜度,使用者透過使用 Json / Yaml 格式模版描述多個雲計算資源(如 ECS、RDS、SLB)的配置、依賴關係等,並自動完成所有云資源在多個不同地域以及多個賬戶中的部署和配置,就像樂高積木一般,運維人員輕鬆完成搭建。
經過多次調研後,我們發現針對於雲伺服器最多的場景是基於雲伺服器“此刻的狀態”再建立 1-N 臺雲伺服器,新建立的雲伺服器系統盤和資料盤都是“此刻的狀態”。我們以一個網站服務為例,一般運維工程師會在系統盤或資料盤中安裝一些應用,如:Tomcat、Jenkins、MySql、網站自身的資料/檔案等等。如果需要再建立一臺雲伺服器與目前已有云伺服器的系統或資料狀態保持一致,可以將系統盤做成自定義映象,資料盤做成快照,然後再新購買雲伺服器時映象選擇該自定義映象,資料盤的快照選擇該快照,安全組的規則配置與原雲伺服器一致的規則,就可以建立一臺基於原雲伺服器“此刻狀態”的新雲伺服器。
如果只需建立這一臺雲伺服器且不需要記錄歷史狀態,上述方法是比較合適的。
但實際情況遠遠比這複雜得多,比如可能會頻繁建立/釋放雲伺服器;或者生成映象的操作人員與購買雲伺服器的人員不是同一個人,一但購買選項沒有選正確,新購的這臺雲伺服器就不能投入業務中,按量計費的需要再釋放,包年包月的需要等到到期釋放或者做資料遷移,勢必帶來成本損失;想記錄或跟蹤雲伺服器的歷史演變,如安全組配置變化、基礎映象等資訊,也需要單獨記錄。
面對上述問題,運維人員使用 ROS 的模板作為交付物,將資源固定引數在模板資源中定義,將可變引數在模板引數中定義,方便執行時輸入實際引數。這樣在頻繁建立雲伺服器時,只需要輸入可變引數中的內容即可,如映象 ID、快照 ID,或者克隆原雲伺服器,或者沒有可變引數,將所有定義都在資源中描述,根據實際業務要求進行模板編寫。模板也可以存放在 Github 中,可以像管理程式碼一樣跟蹤模板歷史,也可以基於模板之上建立適合於企業內部的運維工具,實現自動化運維,以“基礎設施即程式碼”的理念代替“重複勞動”。
我們可以看到 ROS 的強大特性:
在瞭解 ROS 的強大後,我們就在日常使用過程中會建立各種數量的 ROS 模板。這也就造成了我們在日常的運維管理中,需要更便捷的工具對模板進行管理。為了更好的管理本地與雲端的 ROS 模版,我們上線了 Alibaba Cloud Toolkit - Alibaba ROS Templates,透過一個資源配置檔案(.ros.config.yml),協助使用者對模板檔案進行管理操作。
說明:.ros.config.yml 檔案是 Alibaba ROS Templates 工具用於管理模板的原始檔。
第一步:在 IntelliJ IDEA 中開啟您的工程。
第二步:建立模板,有以下兩種建立方式:
注意:使用這種方式建立的模板不會被 Alibaba ROS Templates 工具管理。如需使用模板工具管理,則需要在 .ros.config.yml 檔案中增加模板路徑,並將模板移動至 JSON 和 YAML 資料夾下。
第三步:在 Resources 引數中輸入資源型別。
第四步:說明 Ctrl+ 滑鼠左鍵可實現引數位置與引數之間的跳轉, 使用 Ctrl+ 滑鼠懸浮可實現引數的懸浮資訊。模板管理功能操作說明如下表所示:
右鍵單擊本地模板,可根據需求進行操作:
功能操作說明如下:
右鍵單擊遠端模板,可根據需求進行操作:
功能操作說明如下:
說明雙擊遠端模板,預設會開啟一個臨時檔案,右鍵選單選擇 Alibaba Cloud ROS > Update Template,顯示對比遠端模板修改情況,可更新遠端模板。
資源棧管理
Alibaba Cloud Toolkit - Alibaba Cloud ROS (Alibaba Cloud View)是一個用於管理阿里雲資源編排產品(ROS)資源棧的工具,能幫助您便捷地管理遠端資源棧。
資源棧管理功能操作說明如下表所示:
關於 Cloud Toolkit
作為集開發、測試、診斷、部署為一體的免費本地多 IDE 外掛,Cloud Toolkit 幫助開發者真正實現任意伺服器或 ECS、EDAS、Kubernetes、SAE、函式計算等一鍵式研發部署,支援 Java 規約、高效執行終端命令和 SQL 等常見工具,研發速度提升 8 倍以上,大幅降低研發成本。
產品完全免費並覆蓋 IntelliJ IDEA、Eclipse、Pycharm、Maven、VS Code 等不同 IDE 環境。持續更新+社群支援,確保開發者放心使用,真正做到研發團隊降本提效。
本文為阿里雲原創內容,未經允許不得轉載。