DevOps on AWS之OpsWorks初體驗
AWS OpsWorks 是一款配置管理服務,提供 Chef 和 Puppet 的託管EC2虛擬機器例項。Chef 和 Puppet 是自動化平臺,允許使用者使用程式碼來自動配置伺服器。使用者藉助OpsWorks可以使用 Chef或Puppet 自動完成所有 EC2 例項或本地計算環境中的伺服器配置、部署和管理。OpsWorks 提供三種產品:AWS Opsworks for Chef Automate、AWS OpsWorks for Puppet Enterprise 和 AWS OpsWorks Stacks。
引用AWS官網https://docs.aws.amazon.com
AWS OpsWorks for Chef Automate:一款完全託管的配置管理服務,可託管 Chef Automate,後者是出自 Chef 的一套用於配置管理、確保合規性與安全性以及持續部署的自動化工具。
AWS OpsWorks for Puppet Enterprise:一個完全託管的配置管理服務,它託管 Puppet Enterprise,後者是一套來自 Puppet 的用於基礎設施和應用程式管理的自動化工具。
AWS OpsWorks Stacks:一款應用程式和伺服器管理服務。利用 OpsWorks Stacks,客戶可以將自己的應用程式塑造成一個包含不同層級
上圖:一個典型的OpsWorks Stack的層級關係架構圖,由負載均衡+應用伺服器+資料庫叢集組成。
傳統環境DevOps VS 基於OpsWorks的DevOps
傳統環境中使用DevOps解決方案往往需要手動對相關的工具Server端伺服器進行部署並在客戶端上安裝agent。而OpsWorks可以讓客戶免除安裝這些agent的時間和Server端伺服器需要付出的資源開銷和維護精力,維護好chef/puppet的狀態檔案即可。
長話短說,讓我們通過動手實驗來親自體驗一下AWS的自動化批量運維管理產品
首先我們來到AWS webconsole介面,開啟OpsWorks服務
上圖:點選Add your first stack開始OpsWorks探索之旅。
上圖:我們選擇一個Node.js app的Sample stack進行建立。
上圖:在建立好後選擇Explore the sample stack。
上圖:進入Node.js APP Server介面後可以看到chef recipe的URL,我們點選右上角的Instance按鍵去啟動EC2 Instance。
上圖:點選start。EC2啟動後會自動的安裝chef的agent並拉取chef的配置狀態檔案並且會按照chef recipe定義的檔案進行伺服器的軟體安裝和配置等工作。
上圖:已經啟動並拉取了chef recipe的EC2相關資訊。可以選擇SSH,Run Command等操作。
上圖:點選EC2的URL可以訪問由OpsWorks建立的拉取了Chef recipe的Node.JS APP。
上圖:通過Add Layer。可以輕鬆的增加業務伺服器,比如此處我們再增加一個PHP服務的Layer。同樣的PHP Layer的伺服器會在啟動時自動的安裝chef agent並載入recipe。使用者只需維護好chef recipe即可。
總結一下:OpsWorks作為一種典型的AWS公有云自身的DevOps產品,確實擁有不少優勢例如配置管理簡單,圖形化功能強大邏輯清晰以及與AWS其他雲元件的契合度好的諸多特點。如果客戶公司有擅長使用puppet,chef等工具的DevOps工程師,很推薦使用OpsWorks。如果客戶公司的DevOps對puppet,chef等並不熟悉,可以推薦使用Ansible或者Terraform等第三方產品用於AWS雲平臺的運維工作,也是不錯的選擇。
by:白刃霜飛
多年海內外系統,網路,資訊保安從業經驗。參與並主導多個世界500強企業大型IT專案,現任職於Simba Innvation的雲端計算專家。