我们刚为新系统安装了新服务器,我想知道应该做些什么来使我的新代码尽可能高效,以及如何组织它.
我想要一个很好的解决方案,所以我不需要在一年后重新组织它(例如),我想要最好的实践和技术,以确保我的代码能够存活足够长的时间,以避免以后重新使用它.这里没有框架使用
这是我的新环境:
我的想法是镜像它们(Web服务器),然后将代码从SVN推送到所有服务器.这个好吗?
Boo*_*eus 36
您可以将代码集中在一个公共文件夹中(创建一个脚本,将所有代码复制到8个服务器或使用NFS).
此集中式代码可以位于SVN中的一个或多个存储库中.所以当你推动时,你只需推动你需要推动的东西.
例如,您可以为自己的PHP库创建1个存储库(数据库类,xml,imap等...).在一个简单的结构中,当你调用这些文件时,你只需:
require('/web/lib/DatabaseMySQL.class.php');
Run Code Online (Sandbox Code Playgroud)
这样,您就可以在同一个地方知道所有需要的文件,并且非常易于维护.特别是如果您的代码需要需要文件的必需文件.
您可以根据需要创建任意数量的存储库,如果您不想混淆文件,请重复此操作 - 例如第三方(Smarty,phpmailer)与您创建的代码.
另一件事是,不要重新发明轮子.有很多好的代码可能会做你已经需要做的事情.就像发送电子邮件(phpmailer或任何其他人)或模板系统(Smarty或任何其他人).这样,您可以使用相同的开发时间和更新(如果可用),只需下载,复制(如果您在存储库中提交,则进行提交)并推送.
脚本VS NFS.
创建一个脚本以便在8个Web服务器中推送所有代码很容易.这样做的缺点是你需要确保每个服务器上的所有文件夹和所有文件都是相同的,以避免错误.此外,如果您的网络存在延迟或推送期间连接丢失,则某些服务器将不具有相同的代码.再次,更多的错误.与NFS解决方案相比,运行起来要快一些.
创建NFS修复上述问题,因为您只使用1个位置,但如果该位置丢失,则所有服务器将无法正常运行.因此,当您推送代码时,您只需推送到1个位置,所有其他服务器自动拥有新代码.你需要知道的东西,这比代码直接在硬盘上要慢一点.
这是您可以使用的示例脚本:
您可以创建一个.sh脚本,将脚本中的代码(例如,从存储库中签出的代码)复制到所有服务器,如下所示:
// file: pushcode.sh
#!/bin/bash
/usr/bin/rsync -avz --exclude='.svn' -e ssh /path/to/code/checkedout/ user@server1:/path/to/code
/usr/bin/rsync -avz --exclude='.svn' -e ssh /path/to/code/checkedout/ user@server2:/path/to/code
Run Code Online (Sandbox Code Playgroud)
使这个脚本可执行并运行它:
./pushcode.sh
Run Code Online (Sandbox Code Playgroud)
为了确保代码正确复制而不提示每次密码,您必须绕过ssh登录.
这是一个你可能喜欢的好的:https://serverfault.com/questions/195035/linux-nfs-performance-vs-other-fss