3

产品是不断开发的 CMS,并且总是会推出新功能补丁。该产品托管在多台服务器上,其中一些我只有 FTP 凭据和对 db 的访问权限,而另一些我有完全的 root 访问权限。现在,一旦新功能在测试后发布,我就必须手动 ftp 文件并在所有服务器上运行 SQL 查询。这是非常耗时、容易出错且效率低下的。我怎样才能使它更健壮、更简单或自动化它的一部分?CMS 基于 PHP、MySQL、JS、HTML 和 CSS。管理部分对所有人来说都是通用的。皮肤和一些自定义模块是为不同的客户开发的,我们唯一更新的部分是管理。

更新

为了管理我们使用 GIT 的代码,SQL 不是这个 GIT 结构的一部分,我将与产品经理/所有者交谈以使其处于版本控制之下。

4

2 回答 2

2

这是未打包代码的大问题之一。

就个人而言,我有一个 PHAR,它在执行时会将代码提取到特定文件夹并执行所需的查询。

于 2012-08-06T17:44:28.663 回答
1

我已经在数十台服务器上运行 Web 部署,每月处理数亿访问者。

SQL 变更管理永远是一头野兽。您唯一的希望是在内部滚动自己(我所做的)或使用EMS DB Comparer之类的东西。

要处理文件同步,您将需要许多工具,所有工具都经过专业设计,可以协同工作,包括:

  1. 源代码版本控制(bzr、svn等),即正确分支(需要stable分支、dev分支、testing分支),
  2. 持续集成服务器,
  3. 每台服务器都支持 SFTP,
  4. 希望通过单元和综合测试来确定构建质量,
  5. 每台服务器上的rsync,
  6. 构建脚本(我在 Phing 中做这些),
  7. 部署脚本(也在 Phing 中),
  8. 知识。

一般过程大约需要 20 小时进行彻底研究,大约需要 40 小时进行设置。当我起草文档时,涉及到 40 多个不同的步骤。创建 SQL 更改管理实用程序又花了 20-30 个小时。再加上另外 10 小时的测试,您将看到一个 100 到 120 小时的项目,但它可以为您在未来的拙劣部署中节省大量时间,并将部署时间减少到单击按钮所需的时间。

这就是为什么我对设置整个过程进行咨询的原因,在客户的网络上设置通常需要大约 5 个小时。

于 2012-08-06T17:51:02.733 回答