Answers: <p>This is a simple thumb rule one could follow </p>
  
  <ul>
  <li>Use version control (git, svn, cvs) for the work product created by humans</li>
  <li>Use artifact management tool (artifactory, nexus, apache archiva) for the software bundle (artifacts) created by the system thru build or packaging process</li>
  </ul>
  
  <blockquote>
  <pre><code>HUMAN           ==&gt;            System
  GIT/SVN  (build/packaging)     artifactory/archiva
  </code></pre>
  </blockquote>
  
Answers: CC BY-SA 4.0
Answers: 2019-03-20T18:58:00.070Z
Answers: A colleague has recommended to me that Python Jupyter Notebooks should go in Artifactory (instead of git) because they are not only human readable. They also have XML and JavaScript and HTML. Does this argument make sense?
Answers: Bobby
Answers: CC BY-SA 3.0
Answers: 2017-08-21T07:26:37.180Z
Answers: 2017-08-21T07:26:37.180Z
Answers: Jeeva
Answers: <p>Version Control (using say Git) and Artifact Management (using Artifactory) are complementary. Version control is useful for easily browsing the historical changes and who made them. Artifact management tools can do this but it's clunky. Also they don't offer a fine grained view of changes, as one version change might involve a large amount of changes.</p>
  <p>When integrated with a workflow like feature branches, version control offers some real benefits around collaboration particularly for distributed teams.</p>
  <p>Some places use just version control with no artifact management, i.e. Reddit. They deploy to 800 servers 200 times a week using just Git. This may or may not be the best solution for you.</p>
  <p>An artifact can be many things, not just a binary. It can be a tar ball of files, an rpm, a virtual machine or a docker container. But I've not really seen artifact tools used to deploy configuration management, you could just deploy straight from Git or bundle it into a tarball or rpm.</p>
  
Answers: CC BY-SA 4.0
Answers: 2017-08-19T08:36:39.417Z
Answers: 2020-09-29T06:49:44.193Z
Answers: 2020-09-29T06:49:44.193Z
Answers: Robo
Body: <p>I'm trying to understand the difference between managing configuration files for the purposes of simplifying automated deployment.</p>
  
  <p>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.</p>
  
  <p>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?</p>
  
  <p>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?</p>
  
Tags: <ansible><configuration-management><artifacts><github><infrastructure>
Title: Artifactory vs Git for Infrastructure Version Control / Configuration Management
UserDisplayName: Khadijah Celestine
ThreadText: # Artifactory vs Git for Infrastructure Version Control / Configuration Management
  
  (Asked by: username_0 on 2017-08-18)
  
  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?
  
  **Tags:** ansible, configuration-management, artifacts, github, infrastructure
  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_3 on 2017-08-19. Score: 8 | Accepted answer
  
  Version Control (using say Git) and Artifact Management (using Artifactory) are complementary. Version control is useful for easily browsing the historical changes and who made them. Artifact management tools can do this but it's clunky. Also they don't offer a fine grained view of changes, as one version change might involve a large amount of changes.
  
  When integrated with a workflow like feature branches, version control offers some real benefits around collaboration particularly for distributed teams.
  
  Some places use just version control with no artifact management, i.e. Reddit. They deploy to 800 servers 200 times a week using just Git. This may or may not be the best solution for you.
  
  An artifact can be many things, not just a binary. It can be a tar ball of files, an rpm, a virtual machine or a docker container. But I've not really seen artifact tools used to deploy configuration management, you could just deploy straight from Git or bundle it into a tarball or rpm.
  
  
  ---
  
  ### Answer by username_1 on 2017-08-21. Score: 11
  
  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/archiva
  >
  > ```
  
  > **Comments:**
  > **username_2**: A colleague has recommended to me that Python Jupyter Notebooks should go in Artifactory (instead of git) because they are not only human readable. They also have XML and JavaScript and HTML. Does this argument make sense?  
  
  ---
  
  