我正在嘗試在項目中替換(改進)我們的部署過程,儘可能地嘗試將其自動化。目前我們正在使用純shell腳本。我已經對Fabric和Capistrano做了一些研究,看他們是否可以幫助我們部署自動化。純shell腳本vs部署工具
部署工具(即Capistrano,Fabric)與使用shell腳本幾乎完全相同。
除了具有高級編程語言外,我還有什麼優勢可以使用部署與純shell腳本?
我正在嘗試在項目中替換(改進)我們的部署過程,儘可能地嘗試將其自動化。目前我們正在使用純shell腳本。我已經對Fabric和Capistrano做了一些研究,看他們是否可以幫助我們部署自動化。純shell腳本vs部署工具
部署工具(即Capistrano,Fabric)與使用shell腳本幾乎完全相同。
除了具有高級編程語言外,我還有什麼優勢可以使用部署與純shell腳本?
適合部署的「適合」我認爲與部署的大小,複雜性和操作配置文件有很大關係。如果您的應用程序在單臺計算機上運行,並且只需稍後啓動新實例,並且實際上可以在shell中成功自動完成這些實例,請計數您的祝福,並儘可能使用該shell腳本。簡單有價值。
在部署架構,集羣大小,團隊規模,分段/測試環境的數量,部署頻率等方面,隨着Fabric或其他類似技術的進一步發展,這些技術將變得更加複雜。有成本和優勢。我認爲主要的優點或真正的方式是在shell腳本中非常難以滿足的要求,例如同時遠程部署到多個目標,冪等重新將腳本重新應用到已部署的實例。不要陷入高級語言(python,ruby等)的光滑度,你可以使用的第三方模塊等等。堅持基礎知識。只需支付您真正需要滿足要求的部署複雜性,並在簡單腳本工作時,堅持使用它們。案例研究:許多Solaris作爲Korn shell腳本存在,並且已運行10年以上。少量的Fabric/Capistrano/Puppet/Chef/Etc編排了一套堅實的shell腳本,可以處理部署範圍的大部分中等範圍。
使用預先存在的工具的最大優勢是您無需重新發明您想要部署的每一款軟件。諸如Puppet Forge之類的資料庫可能包含適合您的解決方案。如果他們不這樣做,你可以隨時與社區分享你的解決方案。 Quid pro quo和所有。