我读过很多关于软件配置管理的文章(在互联网上,也在SWEBOK上),但是我不清楚SCM工具的目的是什么。或者,更确切地说,这些工具提供了其他工具所不能提供的东西。
假设我有一个具有以下工具的环境:
那么,我的问题是,这些SCM工具将提供什么?它们在哪方面是有用的?
发布于 2015-11-02 10:48:48
您提到的所有工具(Jenkins、ant、git )都有助于实际构建和测试您的工件。在java世界中,这通常是war,ear,或者只是压缩内部的应用程序。有时,对于复杂的应用程序,它可以是多个工件。对于其他编程平台,它可能会有所不同,DLL,多个不同平台的二进制文件等等。
现在假设您想部署您的应用程序。如果您有一个服务器,您可以手动或使用一些本地脚本。到目前为止还不错:)
但是,如果您有很多农场(一组机器),那么不同的农场应该具有不同的配置(数据库、不同的地理位置),如果您的应用程序可以横向扩展,以便向农场添加几个新的节点应该是一项琐碎的任务,该怎么办?QA团队可能只需要一个新的环境来运行他们的测试,您的性能团队可以请求一个新的环境,或者向这个农场添加节点来运行压力测试等等。现在,管理所有这些东西似乎很复杂。这就是像ansible,厨师,盐,木偶等工具进入游戏的地方。
这些实际上有助于自动化部署。它们可以提供部署配方,安装缺少的依赖项(为了运行您的项目,可能需要jre、特定版本的tomcat和静态内容的nginx )。所有这些都是在农场的层面上。
我知道这个答案过于通用,对于java开发人员来说可能不那么明显(我就是其中之一)。但是,如果您有一个系统/开发人员团队,他们应该立即指出这些工具的好处。
https://softwareengineering.stackexchange.com/questions/301443
复制相似问题