{"id":367,"date":"2017-01-31T15:48:03","date_gmt":"2017-01-31T15:48:03","guid":{"rendered":"http:\/\/redmonk.com\/fryan\/?p=367"},"modified":"2017-05-07T22:34:12","modified_gmt":"2017-05-07T22:34:12","slug":"compliance-as-code-the-configuration-management-ecosystem","status":"publish","type":"post","link":"https:\/\/redmonk.com\/fryan\/2017\/01\/31\/compliance-as-code-the-configuration-management-ecosystem\/","title":{"rendered":"Compliance as Code: The Configuration Management Ecosystem"},"content":{"rendered":"<p><strong>TL; DR<\/strong> \u2013 Interest in Ansible outpaces competitors, SaltStack is making solid inroads. Puppet &amp; Chef remain strong. User bases remain relatively distinct from each other.<\/p>\n<p><strong>Update<\/strong>: February 28th. We referenced a recent\u00a0spike in issues in Ansible. Red Hat have clarified that Ansible modules have all been merged\u00a0into the main\u00a0repository.<\/p>\n<p>At RedMonk we have always taken a keen interest in the configuration management tools space, and have analysed it <a href=\"http:\/\/redmonk.com\/dberkholz\/2015\/04\/02\/quantifying-configuration-management-communities\/\">several<\/a> <a href=\"http:\/\/redmonk.com\/sogrady\/2015\/04\/02\/config-management-commiters\/\">times<\/a> in the <a href=\"http:\/\/redmonk.com\/sogrady\/2013\/12\/06\/configuration-management-2013\/\">past<\/a>. It is fair to say that configuration management tools are a well-established part of the enterprise software ecosystem at this point.<\/p>\n<p>While a lot of the current interest and coverage among early adopters is focused in the cloud native space, this somewhat distracts from the sheer size of addressable market available for configuration management tool vendors.<\/p>\n<p>All though the need for configuration management tools has been well established, and companies are more than aware of the benefits, a clear majority of large enterprises are still in the very early stages of adoption. Put more simply, if you think the millions of internal applications enterprises are running around the globe are going to migrate to a completely cloud native approach at any time soon, you are sorely mistaken. \u00a0At the same time enterprises have significant regulatory compliance overheads and need to work with auditors on a regular basis to ensure their technology stacks comply with the relevant regulations.<\/p>\n<p>Given these factors it is obvious why variants of the phrase \u2018<em>compliance as code<\/em>\u2019 are used by all the configuration management tool vendors. This is very direct, and sensible, marketing to CIOs and operations teams. We hear, on a reasonably frequent basis, about compliance and audit teams in large organisations using artefacts such as Puppet manifests and output logs for their auditing needs.<\/p>\n<p>Now the current cloud native focus of many is not an indication that developers are no longer using configuration management these tools \u2013 they do, in large numbers. In many of our conversations we hear a clear preference towards tools such as Chef and Ansible from developers. Differences can cause problems, and where operations teams and developers are using differing tools issues can, and do arise.<\/p>\n<p>For the purposes of this analysis, we have limited our scope to the configuration management tools we hear mentioned most frequently, these being <a href=\"https:\/\/www.chef.io\/\">Chef<\/a>, <a href=\"http:\/\/puppetlabs.com\">Puppet<\/a>, <a href=\"https:\/\/www.ansible.com\/\">Ansible<\/a> and <a href=\"https:\/\/saltstack.com\/\">Salt<\/a>. While tools such as Hashicorps <a href=\"https:\/\/www.terraform.io\/\">Terraform<\/a> are sometimes\u00a0referenced in the same context, they, in our opinion, fulfil a different need.<\/p>\n<h2>Community Migrations?<\/h2>\n<p>Firstly, we looked at the relationships between the various communities. Perhaps the most interesting aspect here is the lack of significant crossover between communities. This reflects many conversations we have \u2013 once operations teams have decided on a configuration management tool they tend to stick with it.<\/p>\n<p><a href=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-relpercents-20170130.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-368\" src=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-relpercents-20170130-300x168.png\" alt=\"l-cm-relpercents-20170130\" width=\"300\" height=\"168\" srcset=\"https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-relpercents-20170130-300x168.png 300w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-relpercents-20170130-768x431.png 768w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-relpercents-20170130-1024x575.png 1024w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-relpercents-20170130-1536x862.png 1536w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-relpercents-20170130-702x396.png 702w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-relpercents-20170130-480x269.png 480w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-relpercents-20170130-1117x627.png 1117w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>There is, however, more than enough crossover between communities to merit a slightly more detailed look. As you would expect we see a reasonable cross over between Chef and Puppet, at almost 15% of the overall population. More interestingly is the emergence of Salt as an alternative against all the other tools \u2013 particularly Ansible.<\/p>\n<p><a href=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-upstream-20170130-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-370\" src=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-upstream-20170130-1-300x168.png\" alt=\"l-cm-upstream-20170130\" width=\"300\" height=\"168\" srcset=\"https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-upstream-20170130-1-300x168.png 300w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-upstream-20170130-1-768x431.png 768w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-upstream-20170130-1-1024x575.png 1024w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-upstream-20170130-1-702x396.png 702w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-upstream-20170130-1-480x270.png 480w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-upstream-20170130-1.png 1104w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>As an aside, the second visualisation above has been created using <a href=\"https:\/\/github.com\/hms-dbmi\/UpSetR\">UpsetR<\/a>, a link to the academic paper describing Upset is given below.<\/p>\n<h2>Github Stars &amp; Twitter Followers<\/h2>\n<p>Across each of the configuration management tools we see a steady, consistent, level of growth over time, with the notable exception of Ansible which is on a far steeper trajectory. That said the interest level in Salt is substantial.<\/p>\n<p><a href=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-stars-20170130.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-371\" src=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-stars-20170130-300x300.png\" alt=\"l-cm-fw-stars-20170130\" width=\"300\" height=\"300\" srcset=\"https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-stars-20170130-300x300.png 300w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-stars-20170130-150x150.png 150w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-stars-20170130-768x768.png 768w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-stars-20170130-1024x1024.png 1024w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-stars-20170130-1536x1536.png 1536w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-stars-20170130-480x480.png 480w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-stars-20170130-627x627.png 627w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>While Github is always a useful source of information, Twitter followers also provide an interesting reference point. Here we see Puppet having almost as many followers as the other tools combined.<\/p>\n<p><a href=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-twitter-20170130.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-372\" src=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-twitter-20170130-300x168.png\" alt=\"l-cm-twitter-20170130\" width=\"300\" height=\"168\" srcset=\"https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-twitter-20170130-300x168.png 300w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-twitter-20170130-768x431.png 768w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-twitter-20170130-1024x575.png 1024w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-twitter-20170130-1536x862.png 1536w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-twitter-20170130-702x396.png 702w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-twitter-20170130-480x269.png 480w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-twitter-20170130-1117x627.png 1117w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h2>Commercial and Community Contributions<\/h2>\n<p>We next looked at the number of commits and issues for the core components of each tool. This obviously does not include plugins and so forth, where the clear majority of user contributions are made, and is just a reflection of the core platform. Where possible we have identified contributions from employees.<\/p>\n<p><a href=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-commits-20170130.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-373\" src=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-commits-20170130-300x300.png\" alt=\"l-cm-fw-commits-20170130\" width=\"300\" height=\"300\" srcset=\"https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-commits-20170130-300x300.png 300w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-commits-20170130-150x150.png 150w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-commits-20170130-768x768.png 768w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-commits-20170130-1024x1024.png 1024w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-commits-20170130-1536x1536.png 1536w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-commits-20170130-480x480.png 480w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-commits-20170130-627x627.png 627w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-issues-20170130.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-374\" src=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-issues-20170130-300x300.png\" alt=\"l-cm-fw-issues-20170130\" width=\"300\" height=\"300\" srcset=\"https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-issues-20170130-300x300.png 300w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-issues-20170130-150x150.png 150w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-issues-20170130-768x768.png 768w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-issues-20170130-1024x1024.png 1024w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-issues-20170130-1536x1536.png 1536w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-issues-20170130-480x480.png 480w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-Cm-fw-issues-20170130-627x627.png 627w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Over the last two years Ansible and Salt have been far more active developed, but in many ways this is not surprising given the relative ages of the projects.<\/p>\n<h3>Ansible<\/h3>\n<p>Red Hat dominate commits to Ansible, while the community creates a significant majority of all issues.<\/p>\n<p><a href=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Ansible-ccc-20170130.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-375\" src=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Ansible-ccc-20170130-300x300.png\" alt=\"l-cm-ansible-ccc-20170130\" width=\"300\" height=\"300\" srcset=\"https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Ansible-ccc-20170130-300x300.png 300w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Ansible-ccc-20170130-150x150.png 150w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Ansible-ccc-20170130-768x768.png 768w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Ansible-ccc-20170130-1024x1024.png 1024w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Ansible-ccc-20170130-1536x1536.png 1536w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Ansible-ccc-20170130-480x480.png 480w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Ansible-ccc-20170130-627x627.png 627w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a> <a href=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Ansible-cci-20170130.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-376\" src=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Ansible-cci-20170130-300x300.png\" alt=\"l-cm-ansible-cci-20170130\" width=\"300\" height=\"300\" srcset=\"https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Ansible-cci-20170130-300x300.png 300w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Ansible-cci-20170130-150x150.png 150w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Ansible-cci-20170130-768x768.png 768w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Ansible-cci-20170130-1024x1024.png 1024w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Ansible-cci-20170130-1536x1536.png 1536w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Ansible-cci-20170130-480x480.png 480w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Ansible-cci-20170130-627x627.png 627w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><del>As a side note, there has been a huge spike in the number of issues in Ansible recently which merits some further investigation, and we have asked Red Hat for some clarifications here.<\/del> Red Hat have clarified that the spike in issues is due to the fact that Ansible modules have all been merged\u00a0into the main\u00a0repository.<\/p>\n<h2>Chef<\/h2>\n<p>Chef employees contribute the majority of commits and issues for the core Chef project.<\/p>\n<p><a href=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Chef-ccc-20170130.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-377\" src=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Chef-ccc-20170130-300x300.png\" alt=\"l-cm-chef-ccc-20170130\" width=\"300\" height=\"300\" srcset=\"https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Chef-ccc-20170130-300x300.png 300w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Chef-ccc-20170130-150x150.png 150w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Chef-ccc-20170130-768x768.png 768w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Chef-ccc-20170130-1024x1024.png 1024w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Chef-ccc-20170130-1536x1536.png 1536w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Chef-ccc-20170130-480x480.png 480w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Chef-ccc-20170130-627x627.png 627w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a> <a href=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Chef-cci-20170130.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-378\" src=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Chef-cci-20170130-300x300.png\" alt=\"l-cm-chef-cci-20170130\" width=\"300\" height=\"300\" srcset=\"https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Chef-cci-20170130-300x300.png 300w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Chef-cci-20170130-150x150.png 150w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Chef-cci-20170130-768x768.png 768w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Chef-cci-20170130-1024x1024.png 1024w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Chef-cci-20170130-1536x1536.png 1536w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Chef-cci-20170130-480x480.png 480w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Chef-cci-20170130-627x627.png 627w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<h2>Salt<\/h2>\n<p>SaltStack employees make up most of the commits to Salt. On the issues front it is a somewhat more nuanced, with the community and SaltStack roughly tracking each other for issues logged.<\/p>\n<p><a href=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Saltstack-ccc-20170130.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-379\" src=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Saltstack-ccc-20170130-300x300.png\" alt=\"l-cm-saltstack-ccc-20170130\" width=\"300\" height=\"300\" srcset=\"https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Saltstack-ccc-20170130-300x300.png 300w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Saltstack-ccc-20170130-150x150.png 150w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Saltstack-ccc-20170130-768x768.png 768w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Saltstack-ccc-20170130-1024x1024.png 1024w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Saltstack-ccc-20170130-1536x1536.png 1536w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Saltstack-ccc-20170130-480x480.png 480w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Saltstack-ccc-20170130-627x627.png 627w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a> <a href=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Saltstack-cci-20170130.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-380\" src=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Saltstack-cci-20170130-300x300.png\" alt=\"l-cm-saltstack-cci-20170130\" width=\"300\" height=\"300\" srcset=\"https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Saltstack-cci-20170130-300x300.png 300w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Saltstack-cci-20170130-150x150.png 150w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Saltstack-cci-20170130-768x768.png 768w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Saltstack-cci-20170130-1024x1024.png 1024w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Saltstack-cci-20170130-1536x1536.png 1536w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Saltstack-cci-20170130-480x480.png 480w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Saltstack-cci-20170130-627x627.png 627w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<h3>Puppet<\/h3>\n<p>PuppetLabs employees are in the majority for both commits and issues for the core Puppet project.<\/p>\n<p><a href=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Puppet-ccc-20170130.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-381\" src=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Puppet-ccc-20170130-300x300.png\" alt=\"l-cm-puppet-ccc-20170130\" width=\"300\" height=\"300\" srcset=\"https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Puppet-ccc-20170130-300x300.png 300w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Puppet-ccc-20170130-150x150.png 150w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Puppet-ccc-20170130-768x768.png 768w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Puppet-ccc-20170130-1024x1024.png 1024w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Puppet-ccc-20170130-1536x1536.png 1536w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Puppet-ccc-20170130-480x480.png 480w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Puppet-ccc-20170130-627x627.png 627w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a> <a href=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Puppet-cci-20170130.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-382\" src=\"http:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Puppet-cci-20170130-300x300.png\" alt=\"l-cm-puppet-cci-20170130\" width=\"300\" height=\"300\" srcset=\"https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Puppet-cci-20170130-300x300.png 300w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Puppet-cci-20170130-150x150.png 150w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Puppet-cci-20170130-768x768.png 768w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Puppet-cci-20170130-1024x1024.png 1024w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Puppet-cci-20170130-1536x1536.png 1536w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Puppet-cci-20170130-480x480.png 480w, https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-Puppet-cci-20170130-627x627.png 627w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><strong>References<\/strong>: Lex A, Gehelenborg N (2014), &#8216;Points of view: Sets and intersections&#8217;, Nature Methods 11, 779. <a href=\"http:\/\/www.nature.com\/nmeth\/journal\/v11\/n8\/abs\/nmeth.3033.html\">Link<\/a><\/p>\n<p class=\"article-heading\"><strong>Disclaimers<\/strong>: Red Hat and Chef are RedMonk clients.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>TL; DR \u2013 Interest in Ansible outpaces competitors, SaltStack is making solid inroads. Puppet &amp; Chef remain strong. User bases remain relatively distinct from each other. Update: February 28th. We referenced a recent\u00a0spike in issues in Ansible. Red Hat have clarified that Ansible modules have all been merged\u00a0into the main\u00a0repository. At RedMonk we have always<\/p>\n","protected":false},"author":40,"featured_media":370,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20,27,39,15,9,40,17],"tags":[],"class_list":["post-367","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cio","category-cloud","category-configuration-management","category-developers","category-devops","category-featured-data","category-infrastructure"],"jetpack_featured_media_url":"https:\/\/redmonk.com\/fryan\/files\/2017\/01\/l-cm-upstream-20170130-1.png","_links":{"self":[{"href":"https:\/\/redmonk.com\/fryan\/wp-json\/wp\/v2\/posts\/367","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/redmonk.com\/fryan\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/redmonk.com\/fryan\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/redmonk.com\/fryan\/wp-json\/wp\/v2\/users\/40"}],"replies":[{"embeddable":true,"href":"https:\/\/redmonk.com\/fryan\/wp-json\/wp\/v2\/comments?post=367"}],"version-history":[{"count":0,"href":"https:\/\/redmonk.com\/fryan\/wp-json\/wp\/v2\/posts\/367\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/redmonk.com\/fryan\/wp-json\/wp\/v2\/media\/370"}],"wp:attachment":[{"href":"https:\/\/redmonk.com\/fryan\/wp-json\/wp\/v2\/media?parent=367"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/redmonk.com\/fryan\/wp-json\/wp\/v2\/categories?post=367"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/redmonk.com\/fryan\/wp-json\/wp\/v2\/tags?post=367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}