We have a number of infrastructure as code (IaC) tools available to us (although it feels like none of them really do infrastructure as code, or configuration management really), and the more I use them, the more I wonder about whether we have the right level of shareable units.
I'll use Chef as an example of what I mean here, but one of the things I think about is Chef cookbooks. There is so much frustration with community cookbooks, essentially these libraries of deploying and configuring a specific piece of software and they are both too complex and not feature rich enough for folks. We debate over "best practices".
It feels like part of the problem is we don't have the right level to look at from a unit that is shared. Or maybe we don't have enough standards in place to solve the problem within operating systems and software.
Is it possible to share infrastructure as code across organizations? or even within an organization? Do we just not have the right level of shareable units?
With tools like ARM templates and Cloudformation some of our IaC options change. I still don't want to write json or yaml for abstracting out infrastructure and those become even harder to share as a practice to learn from across companies.