在AWS云端運行應用的好的一面是什么?你可以完全控制所運行的每一種虛擬機實例的類型,以及你在上面部署的代碼。那么不好的一面是什么?你負責配置和部署這些實例當你設置和運行幾個VM實例,手工操作運作的很好。但是一旦你需要配置多種實例,就是時候自動化這個流程了。這也是OpsWorks起作用的地方。
用OpsWorks自動化部署
OpsWorks是AWS中的一種自動化部署工具,你可以在一中較高的系統抽象層工作。并非人工配置每一個組件的每一個細節,OpsWorks運行的腳本可以執行這些動作。OpsWorks使用開源配置工具Chef;腳本范圍廣泛,或者是Chef中大家所說的“coobook”,可以自由幫助新用戶用OpsWorks開始工作,而且無需自定制代碼。
OpsWorks圍繞三層模型組織任務,即堆棧、圖層面板和應用。
堆棧是最高層次的抽象,而且定義了你的系統的整個配置。堆棧包括資源,比如服務器、數據庫和負載均衡器。
圖層面板用來配置子系統,比如一套Web服務器或者一個數據庫服務器。圖層面板規定了一套資源,可以作為邏輯單元來管理,包括實例、EBS容量和彈性IP地址。
應用涉及你運行在服務器上的軟件。你可以簡單規定AWS可以在哪里找到應用代碼,OpsWorks就可以為你運行這個代碼。
OpsWorks局限性和優勢
亞馬遜OpsWorks是一種免費的工具,可以幫助自動化耗時的任務,但是并不是沒有問題。雖然它支持亞馬遜Linux和Ubuntu操作系統,但是不支持微軟Windows。此外,OpsWorks中默認的限制是20個堆棧,每個運行20個圖層面板和20個應用。由于實例只能用Chef方法設置,你無法依賴用戶數據配置實例。高級用戶可能會遇到這個問題。
OpsWorks的一個優勢在于為AWS CloudWatch自動化收集CPU、內存和系統負載的性能數據,AWS CloudWatch提供了圖形化的實例性能報告,也提供預警,因此你可以觸發事件,比如通知,當特殊事件發生或者你超過了資源閥值。
使用腳本管理配置幫助改善了部署一致性,而且減少了錯誤的風險。OpsWorks允許管理員管理多種腳本的使用,從而管理整個部署管徑。當實例頻繁開啟,運行一段時間,然后關閉時,這一點非常重要。當同多種部署環境工作時,比如開發、測試和生產,OpsWorks有助于管理。