2

我正在努力尝试在我们的项目中替换(改进)我们的部署过程,尽可能地使其自动化。目前我们正在使用纯 shell 脚本。我对 Fabric 和 Capistrano 进行了一些研究,看看它们是否可以帮助我们实现部署自动化。

部署工具(即 Capistrano、Fabric)与使用 shell 脚本的作用几乎相同。

除了拥有一门高级编程语言之外,与普通的 shell 脚本相比,使用部署还有什么优势?

4

2 回答 2

1

我认为部署的正确“适合”与部署的规模、复杂性和操作配置文件有很大关系。如果您的应用程序在单台机器上运行,并且您只偶尔启动一次新实例,并且您实际上可以完全在 shell 中成功地自动化它,那么请算上您的祝福并尽可能使用该 shell 脚本。简单是有价值的。

在某些时候,随着您的部署架构、集群规模、团队规模、登台/测试环境的数量、部署频率等的增长,使用 Fabric 或类似的东西升级到下一个复杂级别是有意义的。既有成本,也有优势。主要优点,或者我认为的方式,在 shell 脚本中很难满足的要求,例如同时远程部署到多个目标,将脚本幂等地重新应用到已经部署的实例。不要沉迷于高级语言(python、ruby 等)、您可以使用的第三方模块等的流畅性。坚持基础。只需为您真正需要满足要求的部署复杂性付费,当简单的脚本工作时,坚持使用它们。案例分析:许多 Solaris 以 Korn shell 脚本的形式存在,并且已经正常工作了 10 多年。少量的 Fabric/Capistrano/Puppet/Chef/Etc 编排一组可靠的 shell 脚本可以处理大部分中等范围的部署范围。

于 2013-04-01T07:37:34.827 回答
0

使用预先存在的工具的最大优势是,您不必为要部署的每个软件都重新发明轮子。Puppet Forge等存储库可能包含适合您的解决方案。如果他们不这样做,您可以随时与社区分享您的解决方案。交换条件等等。

于 2013-04-01T06:38:17.380 回答