我试图了解管理配置文件之间的区别,以简化自动化部署。

我们有5种环境可以构建。到目前为止,已经构建了2个版本,完全没有版本控制。现在,我们正在使用Artifactory来“管理” rpm文件。我的任务是“版本控制其他内容”。现在,其他东西意味着几个属性文件。

我的问题是,如果我只是简单地“版本控制其他东西”,我会将这些属性文件存储在Github中,然后詹金斯有没有“建造”然后“部署”到Artifactory?

我的第二个问题是,由于我们的目标是简化自动化部署,因此我们不应该使用Ansible(或者使用up或厨师,我喜欢ansible)。然后,我们可以在Github中存储Ansible剧本(以及cloudformation模板等)。在这种情况下,版本将包含哪些二进制文件?

#1 楼

版本控制(使用Git)和工件管理(使用Artifactory)是互补的。版本控制对于轻松浏览历史更改及其创建者很有用。工件管理工具可以做到这一点,但是很麻烦。此外,它们也无法提供细致的变更视图,因为一个版本变更可能涉及大量变更。
当与功能分支(如功能分支)集成时,版本控制可为协作带来一些实际好处,特别是对于分布式团队而言。
有些地方只使用版本控制,而没有工件管理,即Reddit。他们仅使用Git即可每周200次部署到800台服务器。这可能不是您的最佳解决方案。
工件可以有很多东西,而不仅仅是二进制文件。它可以是文件的tar文件,rpm,虚拟机或docker容器。但是我还没有真正看到用于部署配置管理的工件工具,您可以直接从Git部署或将其捆绑到tarball或rpm中。

#2 楼

这是一条简单的经验法则,可以遵循


对人类创建的工作产品使用版本控制(git,svn,cvs)
使用工件管理工具(artifactory,nexus) ,apache archiva),用于通过构建或打包过程由系统创建的软件包(工件)


HUMAN           ==>            System
GIT/SVN  (build/packaging)     artifactory/archiva



评论


一位同事向我建议Python Jupyter Notebooks应该放在Artifactory(而不是git)中,因为它们不仅易于阅读。它们还具有XML,JavaScript和HTML。这个说法有意义吗?

– Bobby
19年3月20日在18:58