principleMinor
Artifactory vs Git for Infrastructure Version Control / Configuration Management
Viewed 0 times
controlversioninfrastructureforgitmanagementconfigurationartifactory
Problem
I'm trying to understand the difference between managing configuration files for the purposes of simplifying automated deployment.
We have 5 environments to build. So far 2 have been built with no versioning at all. Right now we're using Artifactory to "manage" the rpm files. I've been tasked to "version control the other stuff". Right now, other stuff means a couple of properties files.
My question is, if I were to simply "version control the other stuff", I would store the properties files in Github, I'd then have Jenkins "build" then "deploy" it to Artifactory? Isn't it extremely difficult to manage infrastructure versioning without infrastructure as code?
My second question is, since our goals are to simplify automated deployment, shouldn't we be using Ansible (or puppet or chef but I like ansible). We could then store Ansible playbooks (and cloudformation templates, etc.) in Github. In this case, what binaries would there be to version?
We have 5 environments to build. So far 2 have been built with no versioning at all. Right now we're using Artifactory to "manage" the rpm files. I've been tasked to "version control the other stuff". Right now, other stuff means a couple of properties files.
My question is, if I were to simply "version control the other stuff", I would store the properties files in Github, I'd then have Jenkins "build" then "deploy" it to Artifactory? Isn't it extremely difficult to manage infrastructure versioning without infrastructure as code?
My second question is, since our goals are to simplify automated deployment, shouldn't we be using Ansible (or puppet or chef but I like ansible). We could then store Ansible playbooks (and cloudformation templates, etc.) in Github. In this case, what binaries would there be to version?
Solution
This is a simple thumb rule one could follow
- Use version control (git, svn, cvs) for the work product created by humans
- Use artifact management tool (artifactory, nexus, apache archiva) for the software bundle (artifacts) created by the system thru build or packaging process
HUMAN ==> System
GIT/SVN (build/packaging) artifactory/archivaCode Snippets
HUMAN ==> System
GIT/SVN (build/packaging) artifactory/archivaContext
StackExchange DevOps Q#1782, answer score: 9
Revisions (0)
No revisions yet.