了解持续部署

时间:2014-12-29 06:01:21

标签: php deployment phing continuous-deployment

我对持续部署流程的想法感到困惑。我正在努力理解这一点,所以我可能会错过/混合很多东西,所以请原谅我:

我有这样的流程:

a)部署(第一次)

  • 从SCM构建软件包
  • SSH进入云实例
  • 设置灯泡
  • 设置应用程序目录,创建符号链接,运行数据库迁移等...
  • 运行apache / mysql -done

b)重新部署(第二次)

现在问题是我们将如何修补自上次部署以来我们所做的更改。让我们说我们有数据库更改以及源代码更改或错误修复。我想到的一些问题是如何

  • 如何记住/存储每个部署配置(我们第一次运行的确切配置) (如果我们配置了不同/多个部署服务器,则Db密码,主机名,IP地址以及我们与每个部署相关的不同配置选择)
  • 假设我们的包构建基于svn / git export,所以我们不能使用svn / git update 在这种情况下,如何修补更改或最佳做法是什么?
  • 自上次以来,我们可能会有应用程序累积的静态文件,例如附件/文档 如何处理那些属于应用程序的静态内容?
  • 由于我在迁移工具(liquibase)下有数据库,因此将更改推送到服务器并不难。 但最佳流程是什么(例如备份...)

这些问题源于我对这些工具和技术的无知,并且不熟悉持续集成/交付/部署(如果可以的话)。

你可能会问我到目前为止做了些什么。我目前的部署工具包括bash + perl + liquibase。 每次我们进行更改时,我们都必须构建完整的构建包并运行相同的步骤。问题是

  • 它不是完全自动的
  • 我们必须记住每个实例的部署配置,
  • 从旧部署目录中获取静态内容
  • 使用带时间戳的符号链接

我目前的冒险是将我的所有构建/部署步骤迁移到Phing。我已经seen所以它没有详细解决我的问题。

1 个答案:

答案 0 :(得分:0)

  1. 要自动配置,请查看puppet
  2. 将您的数据库方案和示例数据置于源代码管理之下,将其部署为真实代码!