Web applications 您使用什么来部署Web应用程序?

Web applications 您使用什么来部署Web应用程序?,web-applications,deployment,automation,Web Applications,Deployment,Automation,我们希望自动化Web应用程序的部署,特别是从本地开发到远程服务器时 我们当前的堆栈是远程LAMP,本地MAMP,但我感兴趣的是,不管环境如何,人们通常使用什么来完成此任务 我说的不仅仅是移动文件,我还想考虑其他任务,例如: 设置数据库模式 管理配置 部署所需的杂项任务(创建日志文件等) rsync->很棒的工具 但是,答案取决于你的环境。您使用什么进行源代码管理?构建系统使用什么?等等 web服务器的部署只不过是一个“cp”命令,具体取决于更改了哪些文件。您需要构建一个流程来跟踪更改的文件,从

我们希望自动化Web应用程序的部署,特别是从本地开发到远程服务器时

我们当前的堆栈是远程LAMP,本地MAMP,但我感兴趣的是,不管环境如何,人们通常使用什么来完成此任务

我说的不仅仅是移动文件,我还想考虑其他任务,例如:

  • 设置数据库模式
  • 管理配置
  • 部署所需的杂项任务(创建日志文件等)
rsync->很棒的工具

但是,答案取决于你的环境。您使用什么进行源代码管理?构建系统使用什么?等等


web服务器的部署只不过是一个“cp”命令,具体取决于更改了哪些文件。您需要构建一个流程来跟踪更改的文件,从源代码管理中提取这些文件,然后推送这些更改。处理PHP文件时,如何知道要推送哪些文件?这就是问题所在。你解决了,你会没事的。cp文件和“部署”文件的工具是最简单的部分。

我们在需要启动时使用“svn导出”。使我们的代码处于修订控制之下,并允许我们在测试箱或本地计算机上积极开发它。

在可能的情况下,我更喜欢自动化部署,例如使用Ant,即使FTP部署也可以相当容易地处理。自动化部署,就像自动化构建一样,消除了过程中的猜测工作和错误,根据定义,至少为新程序员提供了理解过程所需的最低限度的文档(即构建脚本)。

我是一个.NET的家伙,所以对我们来说,这是CruiseControl+nant


不过,我听说了很多关于他的好消息

我还没有尝试过,但我正在考虑将来使用:

Fabric是一个简单的Python远程部署工具

它设计用于并行或串行地将文件上载到多个服务器,并在这些服务器上运行shell命令。这些命令分组在任务(常规python函数)中,并在“fabfile”中指定

它有点像一个简化了的Capistrano,只是它是在Python中,不希望您部署Rails应用程序,“put”命令可以工作

与Capistrano不同,Fabric希望保持小、轻、易于更改且不受任何特定框架的约束


在以前的公司中使用的东西之一是——信不信由你——RPM文件。当我们构建软件时,它的所有不同部分都将打包成RPM文件,然后部署到服务器上

  • 集群中的主服务器有一个所有服务器及其角色的列表,用于确定每个服务器需要哪些包
  • 部署阶段将检查每台服务器上的版本,并确定哪些服务器需要升级。每台服务器都将获得所需的任何新软件包的副本
  • 每个服务器都将通过部署脚本安装其包,部署脚本将管理安装前和安装后的检查和任务
  • 部署脚本将触发一个单独的流程,即配置管理系统,以读取配置模板,为服务器所需的任何服务(基于其角色列表)生成配置文件,并将这些文件分发到服务器
  • 部署系统将为每个系统生成需要采取的操作(要重新启动的服务)的列表,并将这些操作呈现给管理更新的操作员。然后,操作员将执行重新启动(如果更新发生在客户机的计划维护窗口期间,或者我们有一份工作单,用于中午服务重新启动),或者为夜间工作人员创建一张带有待完成任务列表的工单
  • RPM是一种可怕的黑客攻击,但由于我们的客户都在运行Red Hat Linux(根据我们的要求),所以它非常有意义。如果我有选择的话,我会选择像Debian或Ubuntu这样的系统,并建立一个所有系统都可以使用的存储库。尽管如此,它仍然适用于数百个客户端,总共有数千台服务器。非常整洁。

    适用于这种情况。它来自RubyonRails生态系统,最初与部署Rails应用程序紧密相关。因为很多人已经注意到它对于远程服务器控制很方便,所以它变得更加通用

    无需额外设置,Capistrano:

    • 使用SSH连接到应用程序服务器
    • 将最新源代码从Subversion签出到一个新的、注明日期的文件夹
    • 通过更新一两个符号链接来激活新版本
    • 重新加载应用程序服务器
    所有这些都具有回滚功能

    另一个好的选择是使用操作系统的打包系统(RPM、deb/apt等)。这往往需要对您的操作系统及其策略有很好的熟悉程度,但如果您知道自己在做什么,则与其他工具非常适合。

    有关fabric的更多详细信息: