不可知论自动化部署

3
你会用什么工具自动部署应用程序到各种服务器应用程序(网站、套接字、守护进程),这些应用程序使用不同的技术(不同的数据库、编程语言等)?
在这里,我们使用Python、Java和Ruby,并且将来可能还会使用其他语言。
更新:我最终使用Puppet来管理所有服务器设置、配置和部署。为了触发部署新版本,我最终使用Python Fabric脚本。

我希望能够看到只需一个应用程序即可获得答案。我知道并不存在万能解决方案,但至少有一个适用于Python、Ruby和Java的部署应用程序。 - hgf
8个回答

3

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


2

选择KWateeSDCM。它拥有直观的Web界面,不需要复杂的脚本,并通过REST API与您的构建链很好地集成。


2

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


1

我们使用Maven,并在需要时提取ant-plugin。反过来,ant-plugin非常偶尔会调用一些本地脚本语言/应用程序/打包程序/等等,但随着时间的推移,我们通常可以找到一个Maven或ANT插件/任务来完成工作。

你可能想查一下持续部署,这是构建和CI领域中目前非常热门的话题。


1

对于Python,您可以使用Fabric或Paver。 对于Ruby,有Capistrano和“Vlad the Deployer”。 对于Java,它是Ant。

对于PHP / Python项目,我还使用Peritor Webistrano,这是一个漂亮的capistrano前端。它涉及更改一些默认配方以删除特定于Rails的内容,但是一旦正确设置它很值得。


1

我认为你最好的选择是使用Maven。即使Maven主要用于Java项目,但通过正确的插件(或编写您自己的插件),您可以在任何地方部署任何东西。


1

你可以在Java项目中使用Maven、Ant、Ivy和Hudson。


1

我们在内部使用Ant或Maven处理不同的项目(根据需要以及项目年限而定...)。 我们倾向于使用Jenkins(以前称为Hudson)作为构建和部署工具。

然后,我们鼓励开发人员编写不会针对DB、URL等进行硬编码的代码。当在应用服务器中运行时,我们通过容器(即数据源、纯JMS API等)进行抽象。 我们通常通过属性文件来抽象环境特定信息,在运行时查找。 属性文件的路径要定义为服务器上的变量。 这样一来,我们就可以足够灵活地构建代码,并将其移动到所有环境中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接