首页 / 知识

关于.net:自动部署Web应用程序?

2023-04-14 07:49:00

关于.net:自动部署Web应用程序?

Automate Deployment for Web Applications?

我的团队目前正在尝试自动化.Net和PHP Web应用程序的部署。 我们希望简化部署,并避免手动进行操作带来的麻烦和许多麻烦。

我们需要一种解决方案,使我们能够:

1
2
3
4
- Compile the application  
  - Version the application with the SVN version number
  - Backup the existing site
  - Deploy to a web farm

我们所有的应用程序都使用SVN进行源代码控制,而我们的.Net应用程序使用CruiseControl。
我们一直在尝试使用MSBuild和NAnt部署脚本,但效果有限。 过去我们也曾使用Capistrano,但希望尽可能避免使用Ruby。

还有其他可以帮助我们的部署工具吗?


谢谢大家的建议。我们检查了所有内容,但经过仔细考虑,我们决定结合使用CruiseControl,NAnt,MSBuild和MSDeploy。

本文包含一些重要信息:
将MSBuild与CruiseControl.NET集成

我们的解决方案大致如下:

  • 开发人员构建应用程序的"调试"版本并运行单元测试,然后签入SVN。
  • CruiseControl看到更新并调用我们的构建脚本...

    • 在构建数据库上运行所有新迁移
    • 将配置文件替换为构建服务器配置
    • 构建应用程序的"调试"配置
    • 运行所有单元和集成测试
    • 构建应用程序的"部署"配置

      • 使用当前的主要/次要版本和SVN修订版对DLL进行版本控制,例如1.2.0.423
      • 将此新版本移至我们构建服务器上的" release"文件夹
      • 删除不需要的文件
    • 根据需要更新构建服务器上的IIS

然后,当我们验证了一切准备就绪可以进行直播/分阶段时,我们运行另一个脚本以:

  • 在实时/临时服务器上运行迁移
  • MSDeploy:存档当前的实时/暂存站点
  • MSDeploy:将站点从生成同步到实时/暂存

到了这个阶段还不太好,但是现在它的工作原理很像:D

随着我们对流程的更改,我将尝试使此答案保持更新,因为SA上现在似乎存在一些类似的问题。


我使用Puppet,Makefiles来构建RPM,而Bamboo用Bamboo来为我做这件事。我的系统没有直接应用,并且我不熟悉Windows世界,但是有一些可移植的模式。

我的make设置使我能够为构成我的应用程序的所有内容(php库,php网站,perl模块,C应用程序等)构建RPM。这可以手动调用,也可以通过Bamboo调用。我将这些RPM转移到yum repo和puppet句柄中,以确保在群集中安装了最新(或正确)版本的软件。

您可以自动将软件包构建到MSI中吗?我认为Puppet可以管理Windows中软件包和版本的安装。


我已经使用Visual Build Pro多年了,它非常漂亮,易于使用,并且内置了许多标准操作(如您提到的操作)。


我为此使用msdeploy。它工作完美。

关于蚂蚁;对于.NET平台,我们拥有NAnt,您可以将其与MSDeploy结合使用;您可以从Nant脚本调用MSDeploy。

编辑:
只是为了弄清楚;您可以使用msdeploy进行所有操作。不需要使用Nant。


没有人提到Final Builder http://www.finalbuilder.com。 它与Visual build Pro相当。 良好的GUI,可用于创建自动化的构建部署工具


而不是使用xcopy,我们设法使用带有UNC地址的-source:dirpath命令来连接具有msdeploy的服务器。关键是ignoreAcls = true,并删除对msdeploy字符串中的用户名和密码的调用:

1
msdeploy -verb:sync -source:dirpath=\\build\e$\app -dest:dirpath=\\live\d$\app,ignoreAcls=true

该示例将站点从构建服务器的E驱动器部署到实时服务器上的D驱动器。在实时服务器上公开共享或此级别的磁盘访问时,需要考虑一些安全方面的考虑。我们目前正在研究使用受限访问共享文件夹。

然后,我们将此输出通过管道传输到日志文件,然后将其移至备份存档以供参考。日志文件记录了哪些文件被移动以及何时被移动。使用输出管道命令继续上面的示例:

1
... > E:\archive\msdeploy.log


Nant应该存在的唯一原因是,您拥有一个类似于Ant的框架,在其中我们可以使用.NET语言集编写Tasks。如果您不想让纯净的.NET开发人员编写自定义任务,我看不出您无法使用Ant的任何原因。仅仅因为您使用.NET语言编写应用程序,并不意味着您必须使用.NET构建工具。


检出Setup Factory(来自靛蓝玫瑰)。它的功能相当强大。它使用Windows安装程序API。它可能可以满足您的需求。


布。似乎很小,简单,程序上。用Ruby编写,因为Ruby是不可以的(为什么?)。


应用程序自动部署操作解决方案

最新内容

相关内容

热门文章

推荐文章

标签云

猜你喜欢