Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Baking Custom AMIs Made Easy
June 12, 2014
Joe Block <jpb@numenta.com>
Why not just use configuration
management?
Instances would get the most current version of all
rpms, Python eggs, Ruby gem...
Reliability
If any of your upstream repositories have an issue,
suddenly you can’t scale up with configuration
management....
Rapid Response
When we scale up, we really want the
performance boost 5 minutes ago, not 10 minutes
from now.
Cost
A ten minute configuration run means you’re
paying for an extra hour of EC2 time every 6
instances.
So how do we make it less painful?
AMI Toolkit
• chef-solo / masterless puppet / ansible etc
• fpm - one line rpm creation
• packer - easy AMI building
• jen...
chef solo
• I’m not crazy, we use configuration
management to create the master AMIs.
• Keep the instances used in bake pr...
fpm
• Packing your app in rpm/deb files simplifies your
chef recipes - keep the app-specific things in the
app’s git repo
...
packer
• Supports multiple output formats - AWS,
VMWare, etc
• Simple JSON configuration files
• Can automatically copy th...
jenkins
• Keep the humans out of the loop
• Generate AMIs every commit
• Integration test every AMI build
AMI Toolkit Summary
• chef-solo / masterless puppet /ansible etc
• fpm - https://github.com/jordansissel/fpm
• packer - ht...
Lightning overview of creating custom AMIs
Upcoming SlideShare
Loading in …5
×

Lightning overview of creating custom AMIs

271 views

Published on

Slides from my lightning talk about baking custom AMIs using Jenkins

Published in: Technology, Self Improvement
  • Be the first to comment

  • Be the first to like this

Lightning overview of creating custom AMIs

  1. 1. Baking Custom AMIs Made Easy June 12, 2014 Joe Block <jpb@numenta.com>
  2. 2. Why not just use configuration management? Instances would get the most current version of all rpms, Python eggs, Ruby gems, etc
  3. 3. Reliability If any of your upstream repositories have an issue, suddenly you can’t scale up with configuration management. Or move to a new AZ.
  4. 4. Rapid Response When we scale up, we really want the performance boost 5 minutes ago, not 10 minutes from now.
  5. 5. Cost A ten minute configuration run means you’re paying for an extra hour of EC2 time every 6 instances.
  6. 6. So how do we make it less painful?
  7. 7. AMI Toolkit • chef-solo / masterless puppet / ansible etc • fpm - one line rpm creation • packer - easy AMI building • jenkins - trigger ami build every commit
  8. 8. chef solo • I’m not crazy, we use configuration management to create the master AMIs. • Keep the instances used in bake process out of your chef server = 1 less SPOF in your life. • No need to purge certs from resulting AMI
  9. 9. fpm • Packing your app in rpm/deb files simplifies your chef recipes - keep the app-specific things in the app’s git repo • Creating packages doesn’t have to be a PITA. fpm reduces package creation to a literal one-liner - fpm --verbose -s dir -t rpm --architecture noarch --name yourrpm.rpm --version 1.1.1 —iteration 3 -C /path/to/fakeroot etc
  10. 10. packer • Supports multiple output formats - AWS, VMWare, etc • Simple JSON configuration files • Can automatically copy the resulting AMIs to the regions you’re deployed in • Written in Go, no dependency hell to interfere with the other software installed on your build box
  11. 11. jenkins • Keep the humans out of the loop • Generate AMIs every commit • Integration test every AMI build
  12. 12. AMI Toolkit Summary • chef-solo / masterless puppet /ansible etc • fpm - https://github.com/jordansissel/fpm • packer - http://www.packer.io/ • S3 yum plugin - https://github.com/jbraeuer/yum- s3-plugin • jenkins - http://jenkins-ci.org/ Joe Block <jpb@numenta.com>

×