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