scalable, regionally fault tolerant, fast, and PCI level 1 compliant Reasons for SOA: Rewrite any service in any language at any time Scale any service independently PCI Requirement 2.2.1: Implement only one primary function per server our situation... Friday, April 5, 13
& infrastructure tools • Full control of networking • Full control of provisioning • High priorities • Autoscaling ability, even if we write it ourselves • no single-datacenter solutions Friday, April 5, 13
could use bundler groups Reviewing gem updates • pull latest gems into development • diff lock file for version detail • check out code and diff between versions Issues • isn’t the swiftest process ever • changelogs – thank you to those who care geminator Friday, April 5, 13
available system updates. Lets us assign risk rank quickly by also scraping CVE issues related to updates. Instances are replaced within a given timeframe based on the risk of the applicable updates. PATCHINATOR Friday, April 5, 13
between tests We run CI every time: • we apply system updates • we apply gem updates • we tag code for release • we modify a puppet manifest • change any firewall rules always integrating Friday, April 5, 13
useful version information. 3 stages of deployment: • Stage 0 AMI comes from Ubuntu • Stage 1 AMI all our puppet manifests and updates • Stage 2 AMI production-ready w/ our code Can deploy new versions of everything within 10 minutes. deployinator Friday, April 5, 13
AWS REST API vs aws-sdk gem • hack around with API • then write scripts • isn’t always the swiftest • takes multiple calls to jump down the tree • Load Balancers • Re-register instances when cold • Randomly takes “forever” Friday, April 5, 13
thinking about disposability in your env • use vagrant to learn some automation • find your puppet/chef/vlad deployment groove • write your own automation scripts • build AMIs and deploy from them • keep your AMIs updated Friday, April 5, 13