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對OpsWorks服務的介紹:
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的自動化批量運維管理產品OpsWorks。
首先我們來到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的雲計算專家。