[英]Sending a file to multiple servers
我正在远程Windows服务器上开发一个Web项目(用.Net框架构建),这个项目连接到我的SQL server management studio
的数据库,现在在多个其他远程Windows服务器上存在相同的Web项目链接到相同的数据库,现在我在我的项目中更改页面的代码或在我的数据库中添加/删除table
或stored procedure
,是否有一种方法(或已经存在的软件)将部署我对所有的更改其他(或者如果我不想将更改部署到所有服务器,则选择多个服务器)?
如果是我,我会站在某个地方的git服务器(云或本地虚拟机),创建一个名为Prod
或Stable
的分支,并在夜间创建一个脚本(PowerShell,如果服务器是windows,bash on other else)或从小时工作拉出那个分支。 彻底测试后才推到那个分支。 如果您的代码需要编译,您可以选择在提交之前编译一次(在这种情况下您可能会提交releases
),或者在提取之后在每个端点上编译。 我会有拉动的脚本也编译并重新启动服务(只有在拉动中有新的东西)。
您可以通过以下两件事来实现这一目标:
假设您有6个服务器和2个分支A和B.因此,您必须创建6个发布配置文件。 然后,您可以选择要在哪里部署的分支。 例如,您可以在服务器1,3和4上部署分支B.
对于代码库,您可以使用Git Hooks。
https://gist.github.com/noelboss/3fe13927025b89757f8fb12e9066f2fa
对于数据库,也许您可以使用迁移或类似的东西。 您需要提供有关数据库的更多信息,是否将数据库存储在多个服务器上等。
如果同一个Web项目连接到同一个数据库并且数据库发生了变化,我怀疑您需要更新所有Web应用程序以确保数据库更改不会破坏任何应用程序并保持所有应用程序更新以防止任何落在了后面。
您应该考虑使用Azure Devops来构建和部署应用程序并更新数据库。
如果使用Entity Framework,则可以在启动时运行迁移,并在手动部署或使用devops自动部署时让应用程序更新数据库。
要在多个服务器上维护软件更新,你可以使用Git with hooks,post-receive hook就是你需要的。
我们的想法是使用一台服务器作为您的远程存储库,并在此配置后接收挂钩以更新同一服务器和其他服务器中的代码库。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.