Java 不可知自动部署

Java 不可知自动部署,java,python,ruby,deployment,Java,Python,Ruby,Deployment,对于使用各种技术(不同的数据库、语言等)的各种服务器应用程序(web、套接字、守护进程),您使用什么来自动部署应用程序 这里我们使用Python、Java和Ruby,将来也可能使用其他语言 更新:我最终使用Puppet来管理所有服务器设置、配置和部署。为了触发新版本的部署,我最终使用了Python结构脚本。您可以使用Ant、Makefile或批处理脚本。或者它们的组合。我们使用Maven,并在需要时拉出ant插件。反过来,ant插件偶尔会调用一些本机脚本语言/应用程序/打包程序/任何东西,但我们

对于使用各种技术(不同的数据库、语言等)的各种服务器应用程序(web、套接字、守护进程),您使用什么来自动部署应用程序

这里我们使用Python、Java和Ruby,将来也可能使用其他语言


更新:我最终使用Puppet来管理所有服务器设置、配置和部署。为了触发新版本的部署,我最终使用了Python结构脚本。

您可以使用Ant、Makefile或批处理脚本。或者它们的组合。

我们使用Maven,并在需要时拉出ant插件。反过来,ant插件偶尔会调用一些本机脚本语言/应用程序/打包程序/任何东西,但我们发现,随着时间的推移,我们通常可以找到一个Maven或ant插件/任务来完成这项任务


您可能想查看连续部署,这是构建和CI领域目前非常热门的话题。

我使用Puppet进行服务器的一些部署/初始配置。Maven和Ant用于基于Java的项目。

对于Python,您可以使用Fabric或Paver 对于Ruby,有capistrano和“vlad部署者” 对于Java,它是Ant


对于PHP/Python项目,我还使用Peritor Webistrano,这是capistrano的一个简洁前端。这涉及到修改一些默认的方法来删除rails特定的内容,但是一旦你正确设置了它,这是值得的。

我认为你最好的选择是使用maven。即使maven主要用于Java项目,您也可以使用正确的插件(或您编写的插件)将任何东西部署到任何地方。

您可以将maven、ant、ivy以及hudson一起用于Java项目。

我们将ant或maven用于我们内部的不同项目(取决于需要和项目的年限…)。我们倾向于使用Jenkins(以前称为Hudson)作为构建和部署工具


然后,我们鼓励开发人员编写不会硬编码到DB、URL等的代码。当在应用服务器中运行时,我们尝试通过容器(即数据源、纯JMS API等)进行抽象。我们倾向于通过在运行时查找的属性文件来抽象环境细节。属性文件的路径将在服务器上定义为变量。通过这种方式,我们可以灵活地一次性构建代码,并将其转移到所有环境中。

选择KWateeSDCM。它提供了一个简单的web GUI,不需要晦涩难懂的脚本,并通过REST API与构建链进行了很好的集成。

我只希望看到一个应用程序的答案。我知道没有银弹,但至少有一个部署应用程序适用于Python、Ruby和Java。