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