Magallanes,Travis,Jenkins,Ansible之间的目的和区别

时间:2016-05-20 15:22:57

标签: jenkins deployment automation ansible travis-ci

我正在努力让自己更新工作流/部署自动化工具,但数量太多,我无法分辨出我找到的多种工具的目的差异。

到目前为止,我发现有趣的是:

Magallanes:

到目前为止我的理解:这是一个部署工具。其目的是使部署自动化,以便您可以摆脱大多数人为错误和时间来进行部署。

Travis:

到目前为止我所了解的内容:持续集成工具。它用于在提交/部署时自动化测试集成。但是......它能否自动化部署?我应该将它与Magallanes集成,以便Travis可以管理Magallanes的部署吗?

Jenkins:

到目前为止我所了解的内容:与Travis相同但不是作为服务,而是作为一种工具,您可以配置和安装。同样的疑虑,我可以自动化部署吗?只是测试集成?

Ansible:

到目前为止我所理解的是:多个任务的自动化,部署,服务配置管理...我想我可以摆脱Magallanes并使用Ansible,这是对的吗?我可以将Ansible与Travis整合吗?还是travis也是Ansible部署工作(目前我唯一感兴趣的自动化)?

你可以看到我迷失在这里。

哇:已经投了一票,我应该把它放在哪里?这是一个编程相关的问题,他们是编程相关的工具。

编辑:问题是我需要与团队和我正在开展的项目一起实施部署工具。

我怀疑的是,我应该使用哪种工具(或者我应该将哪些工具集成在一起)。例如:我知道Travis用于测试自动化,但我可以将其用于部署吗?正如我所说的,我应该将它与更面向部署的工具(Magallanes,或Ansible)一起使用......也许直接使用Git?

团队正在使用Filezilla上传产品和SVN作为代码共享工具(没有分支)......我在想Git(服务器端,再见,Filezilla)使用钩子和精细分支系统但是我知道有更好的方法和更完整的部署流程。

1 个答案:

答案 0 :(得分:3)

Travis和Jenkins都是持续集成工具。它们的主要目的是在所有提交上运行测试套件,但此类别中的某些工具也可以在构建过程中触发自动部署。编写需要编译的代码的人有时会谈论构建工件,这些是可以实际部署的东西,但是如果你使用PHP,你可能只是在做一个git pull或者在服务器上删除tarball,因此您不需要关心CI工具的这一方面。

我之前没有听说过Magallanes,但是,它似乎是一个部署工具。许多公司为其特定情况创建自己的部署工具,有时基于Capistrano或Fabric等工具。

Ansible是一个配置管理工具。这主要是用于管理服务器的配置,但作为附带的好处,因为它了解所有服务器,它还可以处理为它们部署新代码。此类别中的其他流行工具是Puppet,Chef和Salt。

这些工具都是关于预先存在的流程的自动化。所以,当你找到一遍又一遍的步骤时,去研究可以用什么工具来解决那个问题;我发现这比找到工具更好,并试图确定他们可以解决的问题。