pre 2012 — README.md with lots of Bash snippets circa 2013 — Vagrant with shared Chef cookbooks circa 2012 — GitHub's Boxen (Puppet recipes on local) future — ? Dev environments
A/B Tests Verdict::Experiment.define :my_experiment do # Block returns true if the subject # is qualified to participate. qualify { |subject, context| ... } groups do group :blue_button, 50 group :control, 50 end storage Verdict::Storage::MemoryStorage.new end github.com/shopify/verdict
A/B Tests case Verdict[:my_experiment].switch(checkout) when :blue_button # ... when :control # ... else # unqualified subjects end github.com/shopify/verdict
Secrets circa 2014 — Secrets stored in encrypted data bags in Chef. Devs pinged Ops to get secrets added/changed. Hard to trace changes to secrets. Hard to make changes.
Secrets circa 2014 — Secrets stored in encrypted data bags in Chef. Devs pinged Ops to get secrets added/changed. Hard to trace changes to secrets. tl;dr — It was pretty painful!
Secrets — EJSON github.com/shopify/ejson now — Secrets can be safely stored in app source. Anyone has access to change/add secrets. Only production servers can decrypt secrets. Secrets change synchronously with app source.
Secrets — EJSON github.com/shopify/ejson now — Secrets can be safely stored in app source. Anyone has access to change/add secrets. Only production servers can decrypt secrets. Secrets change synchronously with app source. tl;dr — A lot better!