我购买2台专用服务器(一台用于实时主机,另一台用于分段环境)。
四个问题:
如何保持活着的服务器与登台服务器同步? 目标是每天运行同步,但是我不能承受任何停机时间,因此在同步过程中,可以暂存镜像生产,但用户可以使用生产吗? 以及如何像cron工作自动化这个过程?
我需要推送文件从分期到生产,我假设这是通过FTP或如何自动化这也从一些工具?
对于我的登台服务器,如何在内部保护它? 我有我的主要域名,例如: www.example.com因此,在prod服务器上,这个URL应该可以被互联网上的每个人使用。 在登台服务器上,相同的URL只能由内部人员使用。 我不能使用子目录,因为我有很多子域/子目录已经作为网站的一部分,我想保留适当的QA的准确的URL结构。
我需要使用版本控制的代码,所以我认为SVN是要安装在两个服务器上,他们可以同步,虽然我不知道如何分离他们之间的SVN环境?
我的数据库是MySQL和MagnoDB。
你将不得不原谅我的例子,我是一个Windows系统pipe理员,但在Unix上存在相同的工具,我敢肯定。
如何保持活着的服务器与登台服务器同步?
对于HTML和外围文件,这很简单。 只需在计划的时间每天运行同步。 我使用robocopy ,但是我相信rysnc会在* nix上做同样的工作。
目标是每天运行同步,但是我不能承受任何停机时间,因此在同步过程中,可以暂存镜像生产,但用户可以使用生产吗?
通常不是。 如果你需要这样做,那么你实际需要的是两个分期系统。 其中一人活着,其中一人闲着。 你总是同步到空闲的,同步完成后,把分段系统切换到空闲的系统,这样空闲的一个变为活着,老的活跃的一个接收到下一个更新。
当然,这意味着当服务器切换angular色时,所有用户都将被踢出系统。 你说他们都必须100%的时间,但真的,你能买得起一分钟一天吗? 如果你在凌晨3点(或者一天的另一个安静时间)这样做,那么影响应该是最小的。
以及如何像cron工作自动化这个过程?
对此没有简单的答案。 我们对Windows和MSSQL所做的工作是从现场到分段执行robocopy以更新所有静态文件,然后通过暂存数据库执行MSSQL备份/还原。 这是所有脚本,每周星期天早上1点运行一次。
我需要将文件从暂存到生产,我假设这是通过FTP完成的,或者如何从一些工具自动执行此操作?
有很多很多的方法来做到这一点。 看看这个网站,之前已经有人问过。 rsync可能是最好的方式。
对于我的登台服务器,如何保护它在内部?…我不能使用子目录,因为我有很多子域/子目录已经作为网站的一部分,我想保留正确的URL结构适当的QA。
你需要一个分离的DNS。 您的QA用户所在的DNS服务器需要返回与公共用户不同的Alogging。 有没有简单的方法来做到这一点。 就个人而言,我们所做的只是使用不同的主机名,所以不用www.example.com ,内部DNS为staging.example.com提供额外的Alogging。 Alogging不会暴露在互联网上,所以只有办公室内的人员或VPN才能访问它。
我需要使用版本控制的代码,所以我认为SVN是要安装在两个服务器上,他们可以同步,虽然我不知道如何将它们分开在SVN环境之间?
SVN是这样做的好方法。 当我们需要部署到仅仅登台,而不是现场时,我们分叉代码,然后在登台服务器上签出。 这样,关键的更新仍然可以在准备就绪时部署到实时系统,但是分段系统正在testing一个不能生产的代码库。 然后,当我们完成后,我们重新合并到主干,重新检查登台服务器,以便他们都回到同一个系统。