Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Puppet at 3scale

Puppet at 3scale

Puppet camp Munich talk about scaling puppet, puppet workflow, dynamic environments.

Rhommel Lamas

November 27, 2013
Tweet

More Decks by Rhommel Lamas

Other Decks in Technology

Transcript

  1. Scale experience •Physical servers Xtratelecom.es. •AWS and other cloud providers

    like Rackspace at Wuaki.tv and 3scale.net. Who am I? Wednesday, November 27, 13
  2. Scale experience •Physical servers Xtratelecom.es. •AWS and other cloud providers

    like Rackspace at Wuaki.tv and 3scale.net. Who am I? Config Management • Worked with CFEngine2 for 2 years. • Puppet user since 2009. Wednesday, November 27, 13
  3. Scale experience •Physical servers Xtratelecom.es. •AWS and other cloud providers

    like Rackspace at Wuaki.tv and 3scale.net. Who am I? Config Management • Worked with CFEngine2 for 2 years. • Puppet user since 2009. Obsessed about config management. Wednesday, November 27, 13
  4. What is 3scale? 3scale provides tools such as traffic management,

    API administration, traffic reports, and more, to help companies publicize their APIs easily and power new types of connected applications. Wednesday, November 27, 13
  5. Scalability is the ability of a system, network, or process

    to handle a growing amount of work in a capable manner or its ability to be enlarged to accommodate that growth. Wikipedia What does scaling stands for? Wednesday, November 27, 13
  6. • How many people do we need to scale our

    system infrastructure? What are our scaling needs? Wednesday, November 27, 13
  7. • How many people do we need to scale our

    system infrastructure? • How many environments and systems can our team maintain? What are our scaling needs? Wednesday, November 27, 13
  8. • How many people do we need to scale our

    system infrastructure? • How many environments and systems can our team maintain? • Can we delegate configurations easily to our team members? What are our scaling needs? Wednesday, November 27, 13
  9. • Purpose of Puppet environments. • Puppet environments at 3scale.

    Puppet dynamic environments Wednesday, November 27, 13
  10. /etc/puppet auth.conf autosign.conf config.ru hiera.yaml hipchat.yaml fileserver.conf unicorn.rb environments Puppet

    environments at 3scale environments production manifests production.pp preview.pp nodes production webserver.pp preview webserver.pp modules nginx hieradata common.yaml production.yaml preview.yaml Capfile preview staging Wednesday, November 27, 13
  11. • Purpose of Puppet environments. • Puppet environments at 3scale.

    • Puppet development workflow (Git). • Puppet-lint • Puppet-rspec • Code Review Puppet dynamic environments Wednesday, November 27, 13
  12. • Since July 2013 we are running Puppet 3.0+. Puppet

    at 3scale. Wednesday, November 27, 13
  13. • Since July 2013 we are running Puppet 3.0+. •

    Puppet master setup. Puppet at 3scale. Wednesday, November 27, 13
  14. • Since July 2013 we are running Puppet 3.0+. •

    Puppet master setup. • Nginx + Unicorn. Puppet at 3scale. Wednesday, November 27, 13
  15. • Since July 2013 we are running Puppet 3.0+. •

    Puppet master setup. • Nginx + Unicorn. • 15 minutes splay with a $runinterval/2 splaylimit. Puppet at 3scale. Wednesday, November 27, 13
  16. • Since July 2013 we are running Puppet 3.0+. •

    Puppet master setup. • Nginx + Unicorn. • 15 minutes splay with a $runinterval/2 splaylimit. • Using DNS SRV records. Puppet at 3scale. Wednesday, November 27, 13
  17. • Since July 2013 we are running Puppet 3.0+. •

    Puppet master setup. • Nginx + Unicorn. • 15 minutes splay with a $runinterval/2 splaylimit. • Using DNS SRV records. • The foreman as our ENC. Puppet at 3scale. Wednesday, November 27, 13
  18. • Since July 2013 we are running Puppet 3.0+. •

    Puppet master setup. • Nginx + Unicorn. • 15 minutes splay with a $runinterval/2 splaylimit. • Using DNS SRV records. • The foreman as our ENC. • Puppetdb and hiera. Puppet at 3scale. Wednesday, November 27, 13
  19. • Since July 2013 we are running Puppet 3.0+. •

    Puppet master setup. • Nginx + Unicorn. • 15 minutes splay with a $runinterval/2 splaylimit. • Using DNS SRV records. • The foreman as our ENC. • Puppetdb and hiera. •MCollective with Rabbitmq connector. Puppet at 3scale. Wednesday, November 27, 13
  20. [main] confdir = /etc/puppet logdir = /var/log/puppet vardir = /var/lib/puppet

    ssldir = /var/lib/puppet/ssl rundir = /var/run/puppet factpath = $vardir/lib/facter templatedir = $confdir/templates prerun_command = /etc/puppet/etckeeper-commit-pre postrun_command = /etc/puppet/etckeeper-commit-post pluginsync = true pluginsource = puppet:///plugins use_srv_records = true srv_domain = 3scale.net [master] environment = production manifest = $confdir/environments/$environment/manifests/ $environment.pp modulepath = $confdir/environments/$environment/modules [agent] classfile = $vardir/classes.txt environment = production localconfig = $vardir/localconfig pluginsync = true report = true splay = true runinterval = 3600 summarize = true Wednesday, November 27, 13
  21. ROUTE 53 _x-puppet._tcp.3scale.net _x-puppet-ca._tcp.3scale.net Puppet Master + RabbitMQ Cluster +

    MCollective Client + PuppetDB + The Foreman RabbitMQ Load Balancer PostgreSQL RDS MultiAZ Puppet Master + RabbitMQ Cluster + MCollective Client + PuppetDB + The Foreman Puppet Master + RabbitMQ Cluster + MCollective Client + PuppetDB + The Foreman Puppet Agent + Mcollective Server Puppet Agent + Mcollective Server Puppet Agent + Mcollective Server Wednesday, November 27, 13
  22. • Puppet-lint is your friend and it will help others

    to understand your code, so USE IT. What nobody will tell you about puppet. Wednesday, November 27, 13
  23. • Puppet-lint is your friend and it will help others

    to understand your code, so USE IT. • Puppet-rspec will help you find errors on early stages so TEST your modules. What nobody will tell you about puppet. Wednesday, November 27, 13
  24. • Puppet-lint is your friend and it will help others

    to understand your code, so USE IT. • Puppet-rspec will help you find errors on early stages so TEST your modules. • Don’t code remotely on your servers, use your local development environment and git. What nobody will tell you about puppet. Wednesday, November 27, 13
  25. • Puppet-lint is your friend and it will help others

    to understand your code, so USE IT. • Puppet-rspec will help you find errors on early stages so TEST your modules. • Don’t code remotely on your servers, use your local development environment and git. • Read puppet documentation on every version. What nobody will tell you about puppet. Wednesday, November 27, 13
  26. • Puppet-lint is your friend and it will help others

    to understand your code, so USE IT. • Puppet-rspec will help you find errors on early stages so TEST your modules. • Don’t code remotely on your servers, use your local development environment and git. • Read puppet documentation on every version. • Be careful about dependencies. What nobody will tell you about puppet. Wednesday, November 27, 13
  27. • Puppet-lint is your friend and it will help others

    to understand your code, so USE IT. • Puppet-rspec will help you find errors on early stages so TEST your modules. • Don’t code remotely on your servers, use your local development environment and git. • Read puppet documentation on every version. • Be careful about dependencies. • Once you start to puppetize you become an Addict. What nobody will tell you about puppet. Wednesday, November 27, 13
  28. Rhommel Lamas Twitter: @rhoml Thank you. at 3scale we’re hiring

    http://3scale.net/jobs Speakerdeck: @rhoml Wednesday, November 27, 13