我对持续部署流程的想法感到困惑。我正在努力理解这一点,所以我可能会错过/混合很多东西,所以请原谅我:
我有这样的流程:
a)部署(第一次)
- 从SCM构建软件包
- SSH进入云实例
- 设置灯泡
- 设置应用程序目录,创建符号链接,运行数据库迁移等...
- 运行apache / mysql -done
b)重新部署(第二次)
现在问题是我们将如何修补自上次部署以来我们所做的更改。让我们说我们有数据库更改以及源代码更改或错误修复。我想到的一些问题是如何
- 如何记住/存储每个部署配置(我们第一次运行的确切配置)
(如果我们配置了不同/多个部署服务器,则Db密码,主机名,IP地址以及我们与每个部署相关的不同配置选择)
- 假设我们的包构建基于svn / git export,所以我们不能使用svn / git update
在这种情况下,如何修补更改或最佳做法是什么?
- 自上次以来,我们可能会有应用程序累积的静态文件,例如附件/文档
如何处理那些属于应用程序的静态内容?
- 由于我在迁移工具(liquibase)下有数据库,因此将更改推送到服务器并不难。
但最佳流程是什么(例如备份...)
这些问题源于我对这些工具和技术的无知,并且不熟悉持续集成/交付/部署(如果可以的话)。
你可能会问我到目前为止做了些什么。我目前的部署工具包括bash + perl + liquibase。
每次我们进行更改时,我们都必须构建完整的构建包并运行相同的步骤。问题是
- 它不是完全自动的
- 我们必须记住每个实例的部署配置,
- 从旧部署目录中获取静态内容
- 使用带时间戳的符号链接
我目前的冒险是将我的所有构建/部署步骤迁移到Phing。我已经seen所以它没有详细解决我的问题。