Dave Anderson of Ammeon at PuppetCamp Dublin '12
Upcoming SlideShare
Loading in...5
×
 

Dave Anderson of Ammeon at PuppetCamp Dublin '12

on

  • 1,039 views

Dave Anderson of Ammeon at PuppetCamp Dublin '12, speaking on: ...

Dave Anderson of Ammeon at PuppetCamp Dublin '12, speaking on:
- Dynamic re/generation of manifests
- Several features that aren't in puppet today but would be cool to have
- Experience embedding puppet in a software product (as opposed to ad-hoc devops)

@supergingerdave

Statistics

Views

Total Views
1,039
Views on SlideShare
1,039
Embed Views
0

Actions

Likes
0
Downloads
5
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n\n
  • \n\n
  • 8 years old\nparent is Logica, Grandparent is Aldiscon\n150 people\n\nHuge range of projects and customers\n\nTypical engagement: knotty, bespoke, complex, mission critical ... NDA \n
  • Building a Product for a Customer, not for us\n\nPuppet solves one of the problems that we are trying to solve\n
  • Continuous integration. PuppetLint of course. Automated deployment into a remote lab is ... challenging! Tens of systems deployed several times each day\n\nStretch metaphor: specify desired state, ability to check state, correcting change is within our control. Sometimes all we should do is report and pause\n\n\n\n
  • Continuous integration. PuppetLint of course. Automated deployment into a remote lab is ... challenging! Tens of systems deployed several times each day\n\nStretch metaphor: specify desired state, ability to check state, correcting change is within our control. Sometimes all we should do is report and pause\n\n\n\n
  • Continuous integration. PuppetLint of course. Automated deployment into a remote lab is ... challenging! Tens of systems deployed several times each day\n\nStretch metaphor: specify desired state, ability to check state, correcting change is within our control. Sometimes all we should do is report and pause\n\n\n\n
  • Good old OO principle, High Cohesion Low Coupling\n\nOO principles are A Good Thing\n\nWhile writing a puppet module, the first requirement is that the platform installs the relevant packages for the module. Generally the next requirement is to set up configuration before the services can be started.\nWhen a class is self contained, the user does not need to concern themselves with the exact package, file or service names. A class can be required as a whole.\n\n\n
  • \n\n
  • \n\n
  • Intra node dependencies\nAnyone got a good recipe?\n\nRobustness\nPuppetMaster should never ever fail due to dodgy manifests\n\nAvailability\nDon't restart services except during a maintenance window thankyou\n\n\n\n
  • \n\n
  • \n\n

Dave Anderson of Ammeon at PuppetCamp Dublin '12 Dave Anderson of Ammeon at PuppetCamp Dublin '12 Presentation Transcript

  • Puppet Python Product PuppetCamp Dublin Dave Anderson 6th July 2012
  • 10 Slides / 30 Mins• A Python Puppet Product• Tips & Pitfalls• Puppet doesnt solve ...
  • Puppet in a ProductWe love Puppet so much,we built a product round it! The ProductCrew of 40+ devops The Customer NDA NDA
  • Puppet + Python = 👍• Great docs, examples, user community
  • Puppet + Python = 👍• Great docs, examples, user community• Main Puppet "API" we use is files - strange!
  • Puppet + Python = 👍• Great docs, examples, user community• Main Puppet "API" we use is files - strange!• Continuous Integration: PuppetLint ...
  • Puppet + Python = 👍• Great docs, examples, user community• Main Puppet "API" we use is files - strange!• Continuous Integration: PuppetLint ...• Managing hardware and infrastructure stretches the metaphor (and then Razor popped up!)
  • Top Tip: Dependencies packages -> config -> servicesThis pattern utilises the concept of keepingpackages, configuration and services classesself contained and separate from each other require => Service[aservice], Service[anotherservice], Service[andanother] 💚 require => Class[amodule::services]
  • Top Worry: Import
  • Top Worry: ImportWe have a tree of sites anduse import to import thenodes for each site.e.g. site1 may importnode1.pp and node2.ppImport is deprecated ...
  • Top Worry: ImportWe have a tree of sites anduse import to import thenodes for each site.e.g. site1 may importnode1.pp and node2.ppImport is deprecated ...http://projects.puppetlabs.com/issues/12930
  • Challenges👾 👾 👾 👾 👾 👾• Intra-node dependencies (stages++)• Robustness• Availability control• Introspection of puppet master model• Recipes for Upgrade
  • Contributions• Currently we have contributed ... nothing :(• Challenges: Python/Ruby, Cautious Customer• Many "infrastructure" modules such as HP ILO, IPMI, EMC (Hello Razor ...)
  • dave.anderson@ammeon.com @supergi ngerdave