Secondly, when evaluating new IT hardware and software assets for potential adoption, you need to institute a much stronger requirement for programmability and open APIs. Complete automation of your infrastructure requires programmatic access, and it’s simply insufficient to only have control via graphical interfaces. This isn’t just about provisioning and configuration support via such APIs, you also need to ensure that vendors are providing reliable APIs to get sufficiently detailed status. A core tenet of DevOps is the ability to measure the state of your infrastructure for future improvement and this really needs to be automated programmatically. Ideally these APIs for automation and measurement are simple, easy to adopt, and accessible to people who aren’t full-time software engineers. Thus, beware of complex, language-specific APIs, and strongly lean towards vendors using simple HTTP or REST APIs and standard, easily parsable data formats like JSON.
–Nigel Kersten, Puppet Lab’s CIO. Also, see this interview I did with Nigel way back in 2008 when Nigel was using Puppet to manage the Mac desktops (!) at Google.