天天看點

減少運維工作量,如何通過 ROS 輕松實作資源編排新方式資源棧管理關于 Cloud Toolkit首屆雲原生微服務大會

減少運維工作量,如何通過 ROS 輕松實作資源編排新方式資源棧管理關于 Cloud Toolkit首屆雲原生微服務大會

在日常工作中,我們一定遇到過需要快速建構系統的工作情形:

  • 作為資源管理人員,需要接收一定數量以及配置的資源申請,這些申請要求網絡、儲存設備按需到位;
  • 作為開發人員,需要将一套開發環境,複制一份測試環境以及線上環境;
  • 架構師規劃一套系統,需要在雲上進行搭建。

這些場景都展現着我們日常所遇的各種困難:

  • 對各類雲端資源需要進行廣泛支援與管理:這其中需要包括常用基礎IaaS 資源及 PaaS 服務,比如主機、路由器、負載均衡器等計算網絡資源以及各種資料庫、緩存、大資料、存儲服務;
  • 資源編排使用難度大:技術棧複雜而難用,實作複雜拓撲關系需要系統化知識與豐富經驗;
  • 大量機械重複的手動配置操作:不僅是各資源及其拓撲關系按配置進行手工部署,各資源間的拓撲關系更是令人頭疼;
  • 學習成本高:過往的資源管理依賴于通過指令行調用API 的方式,提升了操作難度和學習成本。

由此可見,自動化運維成了運維人員的業務剛需,各大雲廠商也相繼推出各自的資源編排服務(Resource Orchestration,以下簡稱 ROS)。ROS 的理念是“基礎設施即代碼”,一方面是用代碼思維的版本管理來記錄基礎設施變化,另一方面通過代碼實作自動化運維,簡化編寫代碼複雜度,使用者通過使用 Json / Yaml 格式模版描述多個雲計算資源(如 ECS、RDS、SLB)的配置、依賴關系等,并自動完成所有雲資源在多個不同地域以及多個賬戶中的部署和配置,就像樂高積木一般,運維人員輕松完成搭建。

經過多次調研後,我們發現針對于雲伺服器最多的場景是基于雲伺服器“此刻的狀态”再建立 1-N 台雲伺服器,新建立的雲伺服器系統盤和資料盤都是“此刻的狀态”。我們以一個網站服務為例,一般運維工程師會在系統盤或資料盤中安裝一些應用,如:Tomcat、Jenkins、MySql、網站自身的資料/檔案等等。如果需要再建立一台雲伺服器與目前已有雲伺服器的系統或資料狀态保持一緻,可以将系統盤做成自定義鏡像,資料盤做成快照,然後再新購買雲伺服器時鏡像選擇該自定義鏡像,資料盤的快照選擇該快照,安全組的規則配置與原雲伺服器一緻的規則,就可以建立一台基于原雲伺服器“此刻狀态”的新雲伺服器。

如果隻需建立這一台雲伺服器且不需要記錄曆史狀态,上述方法是比較合适的。

但實際情況遠遠比這複雜得多,比如可能會頻繁建立/釋放雲伺服器;或者生成鏡像的操作人員與購買雲伺服器的人員不是同一個人,一但購買選項沒有選正确,新購的這台雲伺服器就不能投入業務中,按量計費的需要再釋放,包年包月的需要等到到期釋放或者做資料遷移,勢必帶來成本損失;想記錄或跟蹤雲伺服器的曆史演變,如安全組配置變化、基礎鏡像等資訊,也需要單獨記錄。

面對上述問題,運維人員使用 ROS 的模闆作為傳遞物,将資源固定參數在模闆資源中定義,将可變參數在模闆參數中定義,友善運作時輸入實際參數。這樣在頻繁建立雲伺服器時,隻需要輸入可變參數中的内容即可,如鏡像 ID、快照 ID,或者克隆原雲伺服器,或者沒有可變參數,将所有定義都在資源中描述,根據實際業務要求進行模闆編寫。模闆也可以存放在 Github 中,可以像管理代碼一樣跟蹤模闆曆史,也可以基于模闆之上建立适合于企業内部的運維工具,實作自動化運維,以“基礎設施即代碼”的理念代替“重複勞動”。

我們可以看到 ROS 的強大特性:

  • 可讀、易編寫的文本檔案:運維人員可以直接編輯 JSON 格式文本,或使用 ROS 控制台提供的可視化編輯器編輯模闆。通過 SVN、Git 等版本控制工具控制模闆版本,以達到控制基礎設施版本目的。也可通過 API、SDK 等方式将 ROS 的編排能力與自己的應用進行整合,實作基礎設施即代碼(Infrastructure as Code);
  • 标準化的資源和應用傳遞方式:獨立軟體供應商(ISV)可以通過 ROS 模闆傳遞包含雲資源和應用的整體系統和解決方案。ISV 可以通過這種傳遞方式,整合阿裡雲的資源和 ISV 的軟體系統,實作統一傳遞;
  • 通過資源棧(Stack)統一管理一組雲資源(一個資源棧即為一組阿裡雲資源):對于雲資源建立、删除、克隆等操作,以資源棧為機關來完成。在 DevOps 實踐中,可以使用 ROS 克隆開發環境、測試環境和線上環境,實作應用的整體遷移、擴容。

在了解 ROS 的強大後,我們就在日常使用過程中會建立各種數量的 ROS 模闆。這也就造成了我們在日常的運維管理中,需要更便捷的工具對模闆進行管理。為了更好的管理本地與雲端的 ROS 模版,我們上線了 Alibaba Cloud Toolkit - Alibaba ROS Templates,通過一個資源配置檔案(.ros.config.yml),協助使用者對模闆檔案進行管理操作。

說明:.ros.config.yml 檔案是 Alibaba ROS Templates 工具用于管理模闆的源檔案。

第一步:在 IntelliJ IDEA 中打開您的工程。

第二步:建立模闆,有以下兩種建立方式:

  • 在 IntelliJ IDEA 中右鍵單擊您的工程名稱,選擇 New > AlibabaCloud ROS YAML Template 或選擇 New > AlibabaCloud ROS JSON Template。

注意:使用這種方式建立的模闆不會被 Alibaba ROS Templates 工具管理。如需使用模闆工具管理,則需要在 .ros.config.yml 檔案中增加模闆路徑,并将模闆移動至 JSON 和 YAML 檔案夾下。

  • 打開 IntelliJ IDEA 右邊框 Alibaba ROS Templates 工具,單擊 Create,輸入模闆的名稱,選擇模闆的類型,建立本地模闆。

第三步:在 Resources 參數中輸入資源類型。

  • AlibabaCloud ROS YAML Template 示例
減少運維工作量,如何通過 ROS 輕松實作資源編排新方式資源棧管理關于 Cloud Toolkit首屆雲原生微服務大會
  • AlibabaCloud ROS JSON Template 示例
減少運維工作量,如何通過 ROS 輕松實作資源編排新方式資源棧管理關于 Cloud Toolkit首屆雲原生微服務大會

第四步:說明 Ctrl+ 滑鼠左鍵可實作參數位置與參數之間的跳轉, 使用 Ctrl+ 滑鼠懸浮可實作參數的懸浮資訊。模闆管理功能操作說明如下表所示:

減少運維工作量,如何通過 ROS 輕松實作資源編排新方式資源棧管理關于 Cloud Toolkit首屆雲原生微服務大會

右鍵單擊本地模闆,可根據需求進行操作:

減少運維工作量,如何通過 ROS 輕松實作資源編排新方式資源棧管理關于 Cloud Toolkit首屆雲原生微服務大會

功能操作說明如下:

  • Upload:上傳模闆
  • Rename:重命名模闆名稱
  • Delete:删除本地模闆

右鍵單擊遠端模闆,可根據需求進行操作:

減少運維工作量,如何通過 ROS 輕松實作資源編排新方式資源棧管理關于 Cloud Toolkit首屆雲原生微服務大會

功能操作說明如下:

  • Download:下載下傳模闆
  • Properties:檢視模闆屬性資訊
  • Delete:删除遠端模闆

說明輕按兩下遠端模闆,預設會打開一個臨時檔案,右鍵菜單選擇 Alibaba Cloud ROS > Update Template,顯示對比遠端模闆修改情況,可更新遠端模闆。

資源棧管理

Alibaba Cloud Toolkit - Alibaba Cloud ROS (Alibaba Cloud View)是一個用于管理阿裡雲資源編排産品(ROS)資源棧的工具,能幫助您便捷地管理遠端資源棧。

  • 在 IntelliJ IDEA 中打開您的工程;
  • 在 IntelliJ IDEA 視窗中選擇 Alibaba Cloud View > Alibaba Cloud ROS,可根據您的需求進行相關操作。
減少運維工作量,如何通過 ROS 輕松實作資源編排新方式資源棧管理關于 Cloud Toolkit首屆雲原生微服務大會

資源棧管理功能操作說明如下表所示:

減少運維工作量,如何通過 ROS 輕松實作資源編排新方式資源棧管理關于 Cloud Toolkit首屆雲原生微服務大會
  • Resources:顯示該資源棧内的所有資源資訊
  • Parameters:顯示該資源棧的參數資訊

關于 Cloud Toolkit

作為集開發、測試、診斷、部署為一體的免費本地多 IDE 插件,Cloud Toolkit 幫助開發者真正實作任意伺服器或 ECS、EDAS、Kubernetes、SAE、函數計算等一鍵式研發部署,支援 Java 規約、高效執行終端指令和 SQL 等常見工具,研發速度提升 8 倍以上,大幅降低研發成本。

産品完全免費并覆寫 IntelliJ IDEA、Eclipse、Pycharm、Maven、VS Code 等不同 IDE 環境。持續更新+社群支援,確定開發者放心使用,真正做到研發團隊降本提效。

對應下載下傳傳送門

  • IntelliJ 、PyCharm、PhpStorm:https://developer.aliyun.com/article/687264
  • Eclipse:https://developer.aliyun.com/article/673562
  • **Visual Studio Code **:https://marketplace.visualstudio.com/items?spm=5176.11997469.1283546…7a8f4e2bIgRa0P&itemName=alibabacloud-cloudtoolkit.toolkit-vscode&ssr=false#overview

附産品使用文檔:https://help.aliyun.com/document_detail/29968.html

首屆雲原生微服務大會

首屆雲原生微服務大會 PC 端位址:https://developer.aliyun.com/topic/microservices2020#/

“阿裡巴巴雲原生關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,做最懂雲原生開發者的公衆号。”

繼續閱讀