For almost two years, Salesforce has been using Puppet to deploy continuously into test environments and twice a week into production. Test environments are never a perfect match with production, so let me walk you through the strategies we've evolved to perform the final stages of testing directly in production. I'll talk about our custom ENC, how we package & deploy, feature flagging with Hiera, and how we use directory environments to canary our releases, serving a unique set of Hiera data, ENC, and Puppet modules between each release.
I'm a software developer and DevOps advocate, architecting & implementing datacenter automation solutions for Salesforce. I've been using Puppet to turn infrastructure into code, helping produce repeatable and testable datacenters with minimal human interaction. I've watched our Puppet codebase grow from a proof of concept to a self-service platform regularly deploying into production.