SlideShare ist ein Scribd-Unternehmen logo
1 von 64
Downloaden Sie, um offline zu lesen
Ge#ng	
  Started	
  with	
  Puppet	
  
@byron_miller	
   1	
  
@Byron_Miller	
  
@byron_miller	
   2	
  
#ATXPUG	
  
@byron_miller	
   3	
  
Meetup!	
  2nd	
  Tuesday	
  
@byron_miller	
   4	
  
How	
  I	
  got	
  Started	
  
•  Oracle	
  *.*	
  
•  Enterprise	
  Linux	
  
•  Needed	
  a	
  way	
  to	
  not	
  waste	
  every	
  Monday	
  and	
  
every	
  day	
  I	
  needed	
  to	
  refresh/clone	
  
•  Kill	
  technical	
  debt	
  
•  “Classic	
  Enterprise..”	
  
@byron_miller	
   5	
  
Vocabulary	
  
•  Convergence	
  –	
  stabilize	
  over	
  [me	
  
•  Idempotent	
  –	
  unchanged	
  element	
  when	
  
operated	
  on	
  by	
  itself	
  
•  Orchestra[on	
  –	
  Coordina[on	
  &	
  Management	
  
of	
  complex	
  systems	
  
•  Puppet	
  –	
  The	
  ecosystem	
  
•  Manifests	
  &	
  Modules	
  –	
  The	
  code	
  
@byron_miller	
   6	
  
More	
  Vocabulary	
  
•  ENC	
  –	
  External	
  Node	
  Classifier	
  
•  Mcollec[ve	
  –	
  orchestra[on	
  tool	
  set	
  
•  Hiera	
  –	
  key	
  value	
  lookup	
  system	
  
•  Node	
  –	
  Server/VM	
  
•  Facter	
  –	
  node	
  facts	
  
•  Types	
  &	
  Providers	
  –	
  Built	
  in	
  resources	
  you	
  
declare	
  in	
  puppet	
  manifests	
  
@byron_miller	
   7	
  
Theory	
  (is	
  where	
  it	
  starts)	
  
@byron_miller	
   8	
  
Begin	
  by	
  thinking	
  
•  Puppet	
  has	
  a	
  learning	
  curve	
  but	
  making	
  it	
  
work	
  for	
  your	
  organiza[on	
  is	
  up	
  to	
  how	
  you	
  
define	
  “ge#ng	
  things	
  done”	
  and	
  your	
  future	
  
•  The	
  “vocabulary”	
  and	
  “Verbiage”	
  of	
  puppet	
  is	
  
well	
  documented	
  &	
  simple	
  with	
  a	
  liele	
  
prac[ce	
  
•  Think	
  about	
  your	
  work	
  
•  Think	
  about	
  your	
  future	
  
@byron_miller	
   9	
  
Puppet	
  docs	
  	
  
•  The	
  Docs	
  
heps://docs.puppetlabs.com/	
  
	
  
•  Types	
  &	
  Providers	
  
heps://docs.puppetlabs.com/references/stable/
type.html	
  
	
  
	
  
@byron_miller	
   10	
  
Ge#ng	
  Started	
  –	
  Set	
  Goals	
  
•  What	
  is	
  your	
  goal(s)?	
  
•  How	
  do	
  you	
  measure	
  success	
  or	
  failure?	
  
•  What	
  is	
  your	
  Intent?	
  
Know	
  the	
  theory	
  of	
  your	
  desired	
  state	
  
@byron_miller	
   11	
  
How	
  do	
  you	
  work?	
  
•  Is	
  your	
  organiza[on	
  highly	
  constrained	
  &	
  
highly	
  ordered?	
  
•  Do	
  you	
  strive	
  for	
  self-­‐regula[ng	
  systems?	
  	
  
•  Is	
  your	
  goal	
  compliance?	
  	
  
•  Stability?	
  
•  Agility?	
  
@byron_miller	
   12	
  
Define	
  Workflow	
  
•  Simple	
  	
  
– Easy	
  to	
  install	
  &	
  Maintain	
  
•  Safe	
  
– Version	
  Control	
  -­‐	
  “Git	
  workflow”	
  
•  Secure	
  
– SSH	
  /	
  SSL	
  /	
  Accountability	
  
•  Scalable	
  
– Handle	
  1000s	
  of	
  nodes	
  
@byron_miller	
   13	
  
Modules	
  
•  Everyone’s	
  a	
  developer	
  
•  Style	
  Guide	
  
•  Testable	
  
	
  
@byron_miller	
   14	
  
Long	
  term..	
  
•  Simple	
  –	
  Don’t	
  add	
  complexity	
  
•  Safe	
  –	
  	
  Safe	
  to	
  fail	
  experimenta[on	
  
•  Secure	
  –	
  Auditable	
  
•  Scalable	
  –	
  Point	
  in	
  [me	
  convergence.	
  
@byron_miller	
   15	
  
Prac[ce	
  
•  Track	
  your	
  theories	
  
•  Test	
  your	
  theories	
  
•  Experiment	
  
•  Experiment	
  again	
  
•  Never	
  underes[mate	
  the	
  value	
  of	
  POC’s.	
  
@byron_miller	
   16	
  
Module	
  Development	
  
@byron_miller	
   17	
  
Be	
  Pragma[c	
  
@byron_miller	
   18	
  
Style	
  
•  Make	
  quality	
  a	
  requirement	
  
•  Know	
  when	
  to	
  stop	
  (don’t	
  over	
  op[mize)	
  
	
  
DRY	
  –	
  Don’t	
  repeat	
  yourself	
  
•  Imposed	
  Duplica/on	
  –	
  Apparent	
  lack	
  of	
  
choice	
  
•  Inadvertent	
  Duplica/on	
  –	
  Not	
  realize	
  that	
  
they’re	
  duplica[ng	
  informa[on	
  
•  Impa/ent	
  Duplica[on	
  –	
  lazy	
  /	
  duplicate	
  
because	
  it	
  seems	
  easier	
  
•  Interdeveloper	
  Duplica/on	
  –	
  Mul[ple	
  people	
  
on	
  teams	
  /	
  mul[ple	
  teams.	
  
Code	
  
•  Keep	
  low	
  level	
  knowledge	
  in	
  code	
  
•  Reserve	
  Comments	
  for	
  high	
  level	
  expecta[ons	
  
•  Foster	
  an	
  environment	
  where	
  it’s	
  easier	
  to	
  
find	
  and	
  reuse	
  exis[ng	
  stuff	
  than	
  to	
  write	
  it	
  
yourself.	
  
Scope	
  &	
  Avoid	
  Global	
  data	
  
•  Every	
  [me	
  you	
  reference	
  global	
  data	
  it	
  [es	
  
you	
  to	
  the	
  other	
  components	
  that	
  share	
  data	
  
•  Use	
  Scoping	
  
Manage	
  Complexity	
  
Complexity	
  is	
  generally	
  used	
  to	
  characterize	
  
something	
  with	
  many	
  parts	
  where	
  those	
  parts	
  
interact	
  with	
  each	
  other	
  in	
  mul[ple	
  ways.	
  
	
  
Orthogonal	
  -­‐	
  Safe	
  to	
  Fail	
  
•  Independent	
  /	
  lightly	
  coupled	
  systems	
  
– Eliminates	
  effects	
  of	
  unrelated	
  things	
  
– Design	
  self	
  contained	
  things	
  
•  Increased	
  produc[vity	
  &	
  contained	
  risk	
  
	
  
Prototype	
  (experiment)	
  
•  Architecture	
  
•  New	
  func[onality	
  in	
  exis[ng	
  systems	
  
•  Structure	
  or	
  contents	
  of	
  external	
  data	
  
•  Third	
  party	
  tools	
  or	
  components	
  
•  Performance	
  issues	
  
•  User	
  interface	
  /	
  experience	
  /	
  design	
  
Experiments	
  
•  Worry	
  less	
  about	
  correctness,	
  completeness,	
  
robustness	
  and	
  style.	
  
•  Focus	
  on	
  design	
  /	
  defini[on	
  
•  Is	
  coupling	
  minimized?	
  
•  Can	
  you	
  iden[fy	
  poten[al	
  sources	
  of	
  
duplica[on?	
  
	
  
Style	
  Guides	
  
•  heps://docs.puppetlabs.com/guides/
style_guide.html	
  
Test	
  
•  Loosely	
  coupled	
  systems	
  easier	
  to	
  test	
  –	
  
interac[ons	
  between	
  components	
  are	
  limited.	
  
– Unit	
  tes[ng	
  is	
  easier	
  
– Test	
  in	
  CI	
  pipeline	
  
•  Beaker	
  /	
  rspec	
  /	
  puppet	
  lint	
  
Refactor	
  
•  Avoid	
  code	
  rot.	
  	
  Don’t	
  let	
  bad	
  code	
  fester	
  and	
  
turn	
  all	
  your	
  code	
  into	
  abandonware	
  
•  Code	
  rot	
  will	
  keep	
  you	
  from	
  staying	
  current,	
  
maintaining	
  your	
  skills	
  and	
  generally	
  cause	
  
people	
  to	
  shy	
  away	
  from	
  platorm	
  for	
  new	
  
shiny	
  thing..	
  
It’s	
  code	
  
•  Version	
  control	
  
•  Test	
  
•  Refactor	
  
•  Share.	
  
•  forge	
  
Module	
  Template	
  
•  “puppet	
  module	
  generate”	
  –	
  use	
  the	
  boiler	
  
plate	
  scaffolding	
  
•  Use	
  Garethr’s	
  boiler	
  plate	
  –	
  nice	
  &	
  updated	
  
heps://github.com/garethr/puppet-­‐module-­‐
skeleton	
  
Data	
  Separa[on	
  
•  Hiera	
  
– Yaml,	
  Mysql,	
  GPG	
  etc..	
  
•  ENC	
   	
  	
  
– Puppet	
  PE	
  
– Foreman	
  
– Homemade	
  
– ?	
  
•  Single	
  source	
  of	
  truth..	
  	
  Anyone	
  have	
  any?	
  J	
  
Parameterized	
  Classes	
  
•  Great	
  for	
  ENCs	
  
•  Easy	
  to	
  set	
  default	
  values	
  
•  Portable	
  /	
  Shareable	
  	
  
•  Just	
  do	
  it..	
  	
  
Class	
  Inheritance	
  
•  Use	
  within	
  a	
  module	
  to	
  reduce	
  repe[[on	
  
(DRY)	
  
•  Inheri[ng	
  from	
  other	
  modules	
  decreases	
  
modularity,	
  but	
  hard	
  to	
  avoid	
  
– ENC	
  confusion	
  	
  
Code	
  Defensively	
  
•  Catch	
  unexpected	
  events	
  before	
  they	
  break	
  
things	
  –	
  gracefully	
  bow	
  out	
  if	
  you	
  don’t	
  support	
  
platorm	
  
–  Default	
  case	
  fail	
  on	
  unsupported	
  platorms	
  
•  Plan	
  for	
  Puppet	
  Future	
  parser	
  	
  	
  
–  Some	
  changes	
  /	
  restric[ons	
  
–  Expressions,	
  Lambdas,	
  Itera[ons	
  &	
  more	
  
heps://docs.puppetlabs.com/puppet/latest/
reference/experiments_future.html	
  
It’s	
  code	
  but…	
  
•  Don’t	
  think	
  of	
  it	
  as	
  “object	
  oriented”	
  from	
  a	
  
programmers	
  perspec[ve	
  
•  It’s	
  a	
  “Domain	
  Specific	
  Language”	
  (DSL)	
  used	
  
to	
  describe	
  a	
  desired	
  state.	
  
@byron_miller	
   36	
  
Prac[ce	
  
•  Vagrant	
  /	
  VM	
  instances	
  
– Build	
  /	
  test	
  /	
  deploy	
  
– Pull	
  modules	
  from	
  forge	
  
•  Read	
  
•  Test	
  
•  Deploy	
  
•  experiment	
  
@byron_miller	
   37	
  
Opera[ons	
  
@byron_miller	
   38	
  
More	
  Thinking	
  
•  How	
  do	
  we	
  work?	
  
•  What	
  should	
  we	
  automate?	
  
•  What	
  are	
  our	
  goals?	
  
•  Systems	
  thinking..	
  
•  Sense	
  Making..	
  
@byron_miller	
   39	
  
Sense	
  Making	
  
@byron_miller	
   40	
  
Simple	
  Domain	
  
•  Start	
  with	
  what	
  you	
  know	
  
•  Relieve	
  pain	
  points	
  
•  Remove	
  constraints	
  
•  “Cause	
  –	
  effect”	
  rela[onships	
  –	
  you	
  can	
  codify	
  
this	
  
@byron_miller	
   41	
  
Chaos	
  
@byron_miller	
   42	
  
Simple	
  -­‐>	
  Chaos	
  
•  When	
  simple	
  breaks	
  
– All	
  hell	
  breaks	
  loose.	
  
@byron_miller	
   43	
  
Infrastructure	
  	
  
•  as	
  code..	
  
Bus[ng	
  out	
  some	
  Deming..	
  
	
  
“As	
  a	
  System	
  of	
  profound	
  knowledge”	
  
A.  Apprecia[on	
  for	
  a	
  system	
  
B.  Theory	
  of	
  Varia[on	
  
C.  Theory	
  of	
  Knowledge	
  
D.  Psychology	
  
	
   @byron_miller	
   44	
  
Systems	
  Approach	
  
Taking	
  a	
  systems	
  approach	
  results	
  in	
  viewing	
  the	
  
organiza[on	
  in	
  terms	
  of	
  many	
  internal	
  and	
  
external	
  interrelated	
  connec[ons	
  and	
  
interac[ons	
  as	
  opposed	
  to	
  discrete	
  and	
  
independent	
  departments	
  or	
  processes	
  
governed	
  by	
  various	
  chains	
  of	
  command.	
  
	
  
Apprecia[on	
  for	
  a	
  system..	
  
@byron_miller	
   45	
  
Varia[on	
  
Why	
  did	
  something	
  go	
  wrong?	
  How	
  can	
  we	
  
repeat	
  success?	
  
	
  
Common	
  Cause	
  –	
  predictable	
  varia[on	
  within	
  a	
  
system	
  	
  
	
  
Special	
  Cause	
  –	
  unique	
  event	
  outside	
  the	
  system	
  
@byron_miller	
   46	
  
Knowledge	
  
	
  
•  Theory,	
  Experimenta[on,	
  Sta[s[cal	
  analysis,	
  
conveyed	
  meaning,	
  processes.	
  
“Informa)on	
  is	
  not	
  knowledge”	
  
	
   	
   	
   	
   	
   	
   	
   	
   	
  -­‐Deming	
  
@byron_miller	
   47	
  
Psychology	
  
•  Human	
  Systems	
  
•  Drive	
  out	
  Fear	
  
•  Mo[va[on	
  
@byron_miller	
   48	
  
Management	
  Is..	
  
•  Predic[on	
  
•  Theory	
  
– What	
  causes	
  posi[ve	
  interac[ons?	
  
– What	
  removes	
  conflict?	
  
•  Understanding	
  &	
  Conveying	
  meaning	
  of	
  a	
  
system	
  
•  People..	
  
	
  
@byron_miller	
   49	
  
Think	
  of	
  ecology	
  
•  Adopt	
  an	
  ecological	
  metaphor	
  
•  Codify	
  stories	
  
– Feedback	
  loops	
  
– Itera[ons	
  
– Tes[ng	
  
– Repor[ng	
  
@byron_miller	
   50	
  
The	
  system	
  
Intent..	
  
	
  
•  What	
  causes	
  behaviors	
  outside	
  the	
  system?	
  
	
  
“The	
  obliga[on	
  of	
  any	
  component	
  is	
  to	
  
contribute	
  its	
  best	
  to	
  the	
  system	
  but	
  it	
  will	
  not	
  
do	
  that	
  unless	
  the	
  system	
  is	
  managed”	
  
@byron_miller	
   51	
  
Future	
  Backwards	
  
@byron_miller	
   52	
  
Where	
  we	
  want	
  to	
  be	
  
Future	
  Backwards:	
  Perspec[ves	
  of	
  people	
  
within	
  an	
  organiza[on	
  give	
  them	
  a	
  limited	
  view	
  
of	
  the	
  present,	
  and	
  such	
  entrained	
  paeerns	
  of	
  
past	
  percep[on	
  can	
  determine	
  its	
  future.	
  
@byron_miller	
   53	
  
Your	
  future	
  
Ge#ng	
  there..	
  
•  Flow	
  
•  Measure	
  
•  Retrospec[ves	
  
•  Involve	
  Stakeholders	
  
•  Sense	
  -­‐>	
  Categorize	
  -­‐>	
  Respond	
  
“Bias	
  against	
  crea)vity	
  is	
  fueled	
  by	
  uncertainty”	
  
	
   	
   	
   	
   	
   	
   	
   	
   	
   	
  -­‐Deming	
  
@byron_miller	
   54	
  
Puppet	
  Opera[ons	
  
•  Develop	
  your	
  “System”	
  to	
  allow	
  
experimenta[on,	
  upkeep,	
  maintenance	
  and	
  
opera[onal	
  agility.	
  
•  Keep	
  it	
  Simple	
  
•  Grow	
  &	
  Learn	
  
•  Prac[ce	
  all	
  the	
  [me	
  
•  Prac[ce	
  More	
  
@byron_miller	
   55	
  
Ops	
  Pipeline	
  
•  Build	
  Build	
  Build	
  
– Just	
  like	
  code	
  rot,	
  don’t	
  have	
  server	
  rot	
  
	
  
CI	
  
•  Puppet	
  Lint	
  
•  Beaker/Rspec/ServerSpec	
  
•  Rubocop	
  
@byron_miller	
   56	
  
Keep	
  it	
  simple	
  
•  Decouple!	
  
– Use	
  Roles	
  &	
  Profiles	
  (the	
  one	
  “paeern”	
  I’ll	
  always	
  
recommend)	
  
– Hiera	
  is	
  your	
  friend,	
  but	
  don’t	
  go	
  too	
  nuts	
  
– Keep	
  your	
  ENC	
  simple	
  -­‐	
  categoriza[on	
  
@byron_miller	
   57	
  
Use	
  the	
  feedback	
  loops	
  
•  Pay	
  aeen[on	
  to	
  pipeline	
  
– Don’t	
  let	
  things	
  rot	
  
– Seek	
  out	
  improvements	
  
– Share	
  lessons	
  learned	
  
– Get	
  feedback	
  
•  Puppet	
  Reports..	
  
•  Puppet	
  Dashboard..	
  
•  Event	
  Inspector	
  (PE)..	
  (and	
  other	
  tools)	
  
@byron_miller	
   58	
  
Don’t	
  stop	
  Thinking	
  
•  Maintain	
  a	
  consistency	
  of	
  understanding	
  and	
  
effort	
  
•  Don’t	
  focus	
  on	
  local	
  op[mums	
  
•  Quality	
  starts	
  here	
  
•  Quality	
  starts	
  with	
  intent	
  
•  No	
  system	
  whatever	
  the	
  effort	
  put	
  in	
  will	
  be	
  
free	
  from	
  accident/incident/error	
  
@byron_miller	
   59	
  
Enable	
  People	
  
•  Puppet	
  enables	
  me	
  to	
  codify	
  to	
  “my	
  future”	
  
•  Puppet	
  enables	
  me	
  to	
  know	
  my	
  past	
  
@byron_miller	
   60	
  
Prac[ce	
  
•  Test	
  Upgrades	
  
•  Test	
  new	
  forge	
  modules	
  
•  “Safe	
  to	
  fail”	
  experimenta[on	
  
•  Serverspec..	
  Beaker..	
  	
  
@byron_miller	
   61	
  
Keep	
  trying	
  
•  Look	
  at	
  logs	
  
•  puppet	
  -­‐-­‐debug	
  –verbose	
  
•  Talk	
  to	
  community	
  
•  Use	
  the	
  dashboard	
  
•  puppet	
  -­‐-­‐help	
  
@byron_miller	
   62	
  
Community	
  
•  Google	
  Groups	
  
•  Twieer	
  
•  “Ask”	
  puppetlabs	
  
•  Online	
  Documenta[on	
  
•  IRC	
  	
  
•  User	
  Groups!!	
  
•  Sh*t	
  Gary	
  Says	
  -­‐	
  hep://garylarizza.com/	
  
	
  
@byron_miller	
   63	
  
Ques[ons?	
  
	
  
“Organiza)ons	
  which	
  design	
  systems…	
  are	
  constrained	
  to	
  
produce	
  designs	
  which	
  are	
  copies	
  of	
  the	
  communica)on	
  
structures	
  of	
  these	
  organiza)ons.”	
  
	
   	
   	
   	
   	
   	
   	
   	
  -­‐	
  M.	
  Conway	
  
	
  
@byron_miller	
   64	
  

Weitere ähnliche Inhalte

Was ist angesagt?

Using Puppet - Real World Configuration Management
Using Puppet - Real World Configuration ManagementUsing Puppet - Real World Configuration Management
Using Puppet - Real World Configuration Management
James Turnbull
 
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSAutomated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Bamdad Dashtban
 

Was ist angesagt? (20)

Introduction to gradle
Introduction to gradleIntroduction to gradle
Introduction to gradle
 
Coscup 2013 : Continuous Integration on top of hadoop
Coscup 2013 : Continuous Integration on top of hadoopCoscup 2013 : Continuous Integration on top of hadoop
Coscup 2013 : Continuous Integration on top of hadoop
 
Puppet evolutions
Puppet evolutionsPuppet evolutions
Puppet evolutions
 
Websockets: Pushing the web forward
Websockets: Pushing the web forwardWebsockets: Pushing the web forward
Websockets: Pushing the web forward
 
Testing at Stream-Scale
Testing at Stream-ScaleTesting at Stream-Scale
Testing at Stream-Scale
 
DevOps tools for winning agility
DevOps tools for winning agilityDevOps tools for winning agility
DevOps tools for winning agility
 
Using Puppet - Real World Configuration Management
Using Puppet - Real World Configuration ManagementUsing Puppet - Real World Configuration Management
Using Puppet - Real World Configuration Management
 
Getting started with sbt
Getting started with sbtGetting started with sbt
Getting started with sbt
 
[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...
[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...
[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...
 
RENCI User Group Meeting 2017 - I Upgraded iRODS and I still have all my hair
RENCI User Group Meeting 2017 - I Upgraded iRODS and I still have all my hairRENCI User Group Meeting 2017 - I Upgraded iRODS and I still have all my hair
RENCI User Group Meeting 2017 - I Upgraded iRODS and I still have all my hair
 
Puppet on a string
Puppet on a stringPuppet on a string
Puppet on a string
 
OpenStack Deployments with Chef
OpenStack Deployments with ChefOpenStack Deployments with Chef
OpenStack Deployments with Chef
 
Monitoring as an entry point for collaboration
Monitoring as an entry point for collaborationMonitoring as an entry point for collaboration
Monitoring as an entry point for collaboration
 
Testing the Enterprise layers, with Arquillian
Testing the Enterprise layers, with ArquillianTesting the Enterprise layers, with Arquillian
Testing the Enterprise layers, with Arquillian
 
Managing Complexity at Velocity
Managing Complexity at VelocityManaging Complexity at Velocity
Managing Complexity at Velocity
 
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
Leonid Vasilyev  "Building, deploying and running production code at Dropbox"Leonid Vasilyev  "Building, deploying and running production code at Dropbox"
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
 
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSAutomated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
 
Deploying Hadoop-Based Bigdata Environments
Deploying Hadoop-Based Bigdata EnvironmentsDeploying Hadoop-Based Bigdata Environments
Deploying Hadoop-Based Bigdata Environments
 
LasCon 2014 DevOoops
LasCon 2014 DevOoops LasCon 2014 DevOoops
LasCon 2014 DevOoops
 
SBT Crash Course
SBT Crash CourseSBT Crash Course
SBT Crash Course
 

Ähnlich wie Puppet Camp Austin 2015: Getting Started with Puppet

Driving application development through behavior driven development
Driving application development through behavior driven developmentDriving application development through behavior driven development
Driving application development through behavior driven development
Einar Ingebrigtsen
 
Clean code, Feb 2012
Clean code, Feb 2012Clean code, Feb 2012
Clean code, Feb 2012
cobyst
 
Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Into...
Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Into...Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Into...
Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Into...
Ortus Solutions, Corp
 

Ähnlich wie Puppet Camp Austin 2015: Getting Started with Puppet (20)

PuppetCamp Austin 2015 Talk - Getting started with puppet
PuppetCamp Austin 2015 Talk - Getting started with puppetPuppetCamp Austin 2015 Talk - Getting started with puppet
PuppetCamp Austin 2015 Talk - Getting started with puppet
 
ATXPUG Meetup 11/11/14 - Managing complexity in Puppet Code
ATXPUG Meetup 11/11/14 - Managing complexity in Puppet CodeATXPUG Meetup 11/11/14 - Managing complexity in Puppet Code
ATXPUG Meetup 11/11/14 - Managing complexity in Puppet Code
 
Driving application development through behavior driven development
Driving application development through behavior driven developmentDriving application development through behavior driven development
Driving application development through behavior driven development
 
Reducing inertia in organizations is the key to a successful DevOps transition
Reducing inertia in organizations is the key to a successful DevOps transitionReducing inertia in organizations is the key to a successful DevOps transition
Reducing inertia in organizations is the key to a successful DevOps transition
 
DevOpsDaysRiga 2018: Joep Piscaer - Reducing inertia with Public Cloud and Op...
DevOpsDaysRiga 2018: Joep Piscaer - Reducing inertia with Public Cloud and Op...DevOpsDaysRiga 2018: Joep Piscaer - Reducing inertia with Public Cloud and Op...
DevOpsDaysRiga 2018: Joep Piscaer - Reducing inertia with Public Cloud and Op...
 
Clean code presentation
Clean code presentationClean code presentation
Clean code presentation
 
Clean code
Clean codeClean code
Clean code
 
TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)
 
Cleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy ProjectsCleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy Projects
 
Generalization in Auto-Testing. How we put what we had into new Technological...
Generalization in Auto-Testing. How we put what we had into new Technological...Generalization in Auto-Testing. How we put what we had into new Technological...
Generalization in Auto-Testing. How we put what we had into new Technological...
 
Refactoring to Design Patterns
Refactoring to Design PatternsRefactoring to Design Patterns
Refactoring to Design Patterns
 
It's XP, Stupid
It's XP, StupidIt's XP, Stupid
It's XP, Stupid
 
Eurosport's Kodakademi #2
Eurosport's Kodakademi #2Eurosport's Kodakademi #2
Eurosport's Kodakademi #2
 
Introduction to the intermediate Python - v1.1
Introduction to the intermediate Python - v1.1Introduction to the intermediate Python - v1.1
Introduction to the intermediate Python - v1.1
 
Kku2011
Kku2011Kku2011
Kku2011
 
Programming in the large
Programming in the largeProgramming in the large
Programming in the large
 
Clean code, Feb 2012
Clean code, Feb 2012Clean code, Feb 2012
Clean code, Feb 2012
 
Software development fundamentals
Software development fundamentalsSoftware development fundamentals
Software development fundamentals
 
Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Adob...
Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Adob...Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Adob...
Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Adob...
 
Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Into...
Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Into...Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Into...
Introduction to Unit Testing, BDD and Mocking using TestBox & MockBox at Into...
 

Mehr von Puppet

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
Puppet
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
Puppet
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
Puppet
 

Mehr von Puppet (20)

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyaml
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
 
Puppet camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscode
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twenties
 
Applying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance code
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approach
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliance
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNow
 
Puppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet: The best way to harden Windows
Puppet: The best way to harden Windows
 
Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael Pinson
 
ServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin Reeuwijk
 
Take control of your dev ops dumping ground
Take control of your  dev ops dumping groundTake control of your  dev ops dumping ground
Take control of your dev ops dumping ground
 
100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User Group
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOps
 
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyThe Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
 

Kürzlich hochgeladen

%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 

Kürzlich hochgeladen (20)

WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 

Puppet Camp Austin 2015: Getting Started with Puppet

  • 1. Ge#ng  Started  with  Puppet   @byron_miller   1  
  • 4. Meetup!  2nd  Tuesday   @byron_miller   4  
  • 5. How  I  got  Started   •  Oracle  *.*   •  Enterprise  Linux   •  Needed  a  way  to  not  waste  every  Monday  and   every  day  I  needed  to  refresh/clone   •  Kill  technical  debt   •  “Classic  Enterprise..”   @byron_miller   5  
  • 6. Vocabulary   •  Convergence  –  stabilize  over  [me   •  Idempotent  –  unchanged  element  when   operated  on  by  itself   •  Orchestra[on  –  Coordina[on  &  Management   of  complex  systems   •  Puppet  –  The  ecosystem   •  Manifests  &  Modules  –  The  code   @byron_miller   6  
  • 7. More  Vocabulary   •  ENC  –  External  Node  Classifier   •  Mcollec[ve  –  orchestra[on  tool  set   •  Hiera  –  key  value  lookup  system   •  Node  –  Server/VM   •  Facter  –  node  facts   •  Types  &  Providers  –  Built  in  resources  you   declare  in  puppet  manifests   @byron_miller   7  
  • 8. Theory  (is  where  it  starts)   @byron_miller   8  
  • 9. Begin  by  thinking   •  Puppet  has  a  learning  curve  but  making  it   work  for  your  organiza[on  is  up  to  how  you   define  “ge#ng  things  done”  and  your  future   •  The  “vocabulary”  and  “Verbiage”  of  puppet  is   well  documented  &  simple  with  a  liele   prac[ce   •  Think  about  your  work   •  Think  about  your  future   @byron_miller   9  
  • 10. Puppet  docs     •  The  Docs   heps://docs.puppetlabs.com/     •  Types  &  Providers   heps://docs.puppetlabs.com/references/stable/ type.html       @byron_miller   10  
  • 11. Ge#ng  Started  –  Set  Goals   •  What  is  your  goal(s)?   •  How  do  you  measure  success  or  failure?   •  What  is  your  Intent?   Know  the  theory  of  your  desired  state   @byron_miller   11  
  • 12. How  do  you  work?   •  Is  your  organiza[on  highly  constrained  &   highly  ordered?   •  Do  you  strive  for  self-­‐regula[ng  systems?     •  Is  your  goal  compliance?     •  Stability?   •  Agility?   @byron_miller   12  
  • 13. Define  Workflow   •  Simple     – Easy  to  install  &  Maintain   •  Safe   – Version  Control  -­‐  “Git  workflow”   •  Secure   – SSH  /  SSL  /  Accountability   •  Scalable   – Handle  1000s  of  nodes   @byron_miller   13  
  • 14. Modules   •  Everyone’s  a  developer   •  Style  Guide   •  Testable     @byron_miller   14  
  • 15. Long  term..   •  Simple  –  Don’t  add  complexity   •  Safe  –    Safe  to  fail  experimenta[on   •  Secure  –  Auditable   •  Scalable  –  Point  in  [me  convergence.   @byron_miller   15  
  • 16. Prac[ce   •  Track  your  theories   •  Test  your  theories   •  Experiment   •  Experiment  again   •  Never  underes[mate  the  value  of  POC’s.   @byron_miller   16  
  • 19. Style   •  Make  quality  a  requirement   •  Know  when  to  stop  (don’t  over  op[mize)    
  • 20. DRY  –  Don’t  repeat  yourself   •  Imposed  Duplica/on  –  Apparent  lack  of   choice   •  Inadvertent  Duplica/on  –  Not  realize  that   they’re  duplica[ng  informa[on   •  Impa/ent  Duplica[on  –  lazy  /  duplicate   because  it  seems  easier   •  Interdeveloper  Duplica/on  –  Mul[ple  people   on  teams  /  mul[ple  teams.  
  • 21. Code   •  Keep  low  level  knowledge  in  code   •  Reserve  Comments  for  high  level  expecta[ons   •  Foster  an  environment  where  it’s  easier  to   find  and  reuse  exis[ng  stuff  than  to  write  it   yourself.  
  • 22. Scope  &  Avoid  Global  data   •  Every  [me  you  reference  global  data  it  [es   you  to  the  other  components  that  share  data   •  Use  Scoping  
  • 23. Manage  Complexity   Complexity  is  generally  used  to  characterize   something  with  many  parts  where  those  parts   interact  with  each  other  in  mul[ple  ways.    
  • 24. Orthogonal  -­‐  Safe  to  Fail   •  Independent  /  lightly  coupled  systems   – Eliminates  effects  of  unrelated  things   – Design  self  contained  things   •  Increased  produc[vity  &  contained  risk    
  • 25. Prototype  (experiment)   •  Architecture   •  New  func[onality  in  exis[ng  systems   •  Structure  or  contents  of  external  data   •  Third  party  tools  or  components   •  Performance  issues   •  User  interface  /  experience  /  design  
  • 26. Experiments   •  Worry  less  about  correctness,  completeness,   robustness  and  style.   •  Focus  on  design  /  defini[on   •  Is  coupling  minimized?   •  Can  you  iden[fy  poten[al  sources  of   duplica[on?    
  • 27. Style  Guides   •  heps://docs.puppetlabs.com/guides/ style_guide.html  
  • 28. Test   •  Loosely  coupled  systems  easier  to  test  –   interac[ons  between  components  are  limited.   – Unit  tes[ng  is  easier   – Test  in  CI  pipeline   •  Beaker  /  rspec  /  puppet  lint  
  • 29. Refactor   •  Avoid  code  rot.    Don’t  let  bad  code  fester  and   turn  all  your  code  into  abandonware   •  Code  rot  will  keep  you  from  staying  current,   maintaining  your  skills  and  generally  cause   people  to  shy  away  from  platorm  for  new   shiny  thing..  
  • 30. It’s  code   •  Version  control   •  Test   •  Refactor   •  Share.   •  forge  
  • 31. Module  Template   •  “puppet  module  generate”  –  use  the  boiler   plate  scaffolding   •  Use  Garethr’s  boiler  plate  –  nice  &  updated   heps://github.com/garethr/puppet-­‐module-­‐ skeleton  
  • 32. Data  Separa[on   •  Hiera   – Yaml,  Mysql,  GPG  etc..   •  ENC       – Puppet  PE   – Foreman   – Homemade   – ?   •  Single  source  of  truth..    Anyone  have  any?  J  
  • 33. Parameterized  Classes   •  Great  for  ENCs   •  Easy  to  set  default  values   •  Portable  /  Shareable     •  Just  do  it..    
  • 34. Class  Inheritance   •  Use  within  a  module  to  reduce  repe[[on   (DRY)   •  Inheri[ng  from  other  modules  decreases   modularity,  but  hard  to  avoid   – ENC  confusion    
  • 35. Code  Defensively   •  Catch  unexpected  events  before  they  break   things  –  gracefully  bow  out  if  you  don’t  support   platorm   –  Default  case  fail  on  unsupported  platorms   •  Plan  for  Puppet  Future  parser       –  Some  changes  /  restric[ons   –  Expressions,  Lambdas,  Itera[ons  &  more   heps://docs.puppetlabs.com/puppet/latest/ reference/experiments_future.html  
  • 36. It’s  code  but…   •  Don’t  think  of  it  as  “object  oriented”  from  a   programmers  perspec[ve   •  It’s  a  “Domain  Specific  Language”  (DSL)  used   to  describe  a  desired  state.   @byron_miller   36  
  • 37. Prac[ce   •  Vagrant  /  VM  instances   – Build  /  test  /  deploy   – Pull  modules  from  forge   •  Read   •  Test   •  Deploy   •  experiment   @byron_miller   37  
  • 39. More  Thinking   •  How  do  we  work?   •  What  should  we  automate?   •  What  are  our  goals?   •  Systems  thinking..   •  Sense  Making..   @byron_miller   39  
  • 41. Simple  Domain   •  Start  with  what  you  know   •  Relieve  pain  points   •  Remove  constraints   •  “Cause  –  effect”  rela[onships  –  you  can  codify   this   @byron_miller   41  
  • 43. Simple  -­‐>  Chaos   •  When  simple  breaks   – All  hell  breaks  loose.   @byron_miller   43  
  • 44. Infrastructure     •  as  code..   Bus[ng  out  some  Deming..     “As  a  System  of  profound  knowledge”   A.  Apprecia[on  for  a  system   B.  Theory  of  Varia[on   C.  Theory  of  Knowledge   D.  Psychology     @byron_miller   44  
  • 45. Systems  Approach   Taking  a  systems  approach  results  in  viewing  the   organiza[on  in  terms  of  many  internal  and   external  interrelated  connec[ons  and   interac[ons  as  opposed  to  discrete  and   independent  departments  or  processes   governed  by  various  chains  of  command.     Apprecia[on  for  a  system..   @byron_miller   45  
  • 46. Varia[on   Why  did  something  go  wrong?  How  can  we   repeat  success?     Common  Cause  –  predictable  varia[on  within  a   system       Special  Cause  –  unique  event  outside  the  system   @byron_miller   46  
  • 47. Knowledge     •  Theory,  Experimenta[on,  Sta[s[cal  analysis,   conveyed  meaning,  processes.   “Informa)on  is  not  knowledge”                    -­‐Deming   @byron_miller   47  
  • 48. Psychology   •  Human  Systems   •  Drive  out  Fear   •  Mo[va[on   @byron_miller   48  
  • 49. Management  Is..   •  Predic[on   •  Theory   – What  causes  posi[ve  interac[ons?   – What  removes  conflict?   •  Understanding  &  Conveying  meaning  of  a   system   •  People..     @byron_miller   49  
  • 50. Think  of  ecology   •  Adopt  an  ecological  metaphor   •  Codify  stories   – Feedback  loops   – Itera[ons   – Tes[ng   – Repor[ng   @byron_miller   50  
  • 51. The  system   Intent..     •  What  causes  behaviors  outside  the  system?     “The  obliga[on  of  any  component  is  to   contribute  its  best  to  the  system  but  it  will  not   do  that  unless  the  system  is  managed”   @byron_miller   51  
  • 53. Where  we  want  to  be   Future  Backwards:  Perspec[ves  of  people   within  an  organiza[on  give  them  a  limited  view   of  the  present,  and  such  entrained  paeerns  of   past  percep[on  can  determine  its  future.   @byron_miller   53  
  • 54. Your  future   Ge#ng  there..   •  Flow   •  Measure   •  Retrospec[ves   •  Involve  Stakeholders   •  Sense  -­‐>  Categorize  -­‐>  Respond   “Bias  against  crea)vity  is  fueled  by  uncertainty”                      -­‐Deming   @byron_miller   54  
  • 55. Puppet  Opera[ons   •  Develop  your  “System”  to  allow   experimenta[on,  upkeep,  maintenance  and   opera[onal  agility.   •  Keep  it  Simple   •  Grow  &  Learn   •  Prac[ce  all  the  [me   •  Prac[ce  More   @byron_miller   55  
  • 56. Ops  Pipeline   •  Build  Build  Build   – Just  like  code  rot,  don’t  have  server  rot     CI   •  Puppet  Lint   •  Beaker/Rspec/ServerSpec   •  Rubocop   @byron_miller   56  
  • 57. Keep  it  simple   •  Decouple!   – Use  Roles  &  Profiles  (the  one  “paeern”  I’ll  always   recommend)   – Hiera  is  your  friend,  but  don’t  go  too  nuts   – Keep  your  ENC  simple  -­‐  categoriza[on   @byron_miller   57  
  • 58. Use  the  feedback  loops   •  Pay  aeen[on  to  pipeline   – Don’t  let  things  rot   – Seek  out  improvements   – Share  lessons  learned   – Get  feedback   •  Puppet  Reports..   •  Puppet  Dashboard..   •  Event  Inspector  (PE)..  (and  other  tools)   @byron_miller   58  
  • 59. Don’t  stop  Thinking   •  Maintain  a  consistency  of  understanding  and   effort   •  Don’t  focus  on  local  op[mums   •  Quality  starts  here   •  Quality  starts  with  intent   •  No  system  whatever  the  effort  put  in  will  be   free  from  accident/incident/error   @byron_miller   59  
  • 60. Enable  People   •  Puppet  enables  me  to  codify  to  “my  future”   •  Puppet  enables  me  to  know  my  past   @byron_miller   60  
  • 61. Prac[ce   •  Test  Upgrades   •  Test  new  forge  modules   •  “Safe  to  fail”  experimenta[on   •  Serverspec..  Beaker..     @byron_miller   61  
  • 62. Keep  trying   •  Look  at  logs   •  puppet  -­‐-­‐debug  –verbose   •  Talk  to  community   •  Use  the  dashboard   •  puppet  -­‐-­‐help   @byron_miller   62  
  • 63. Community   •  Google  Groups   •  Twieer   •  “Ask”  puppetlabs   •  Online  Documenta[on   •  IRC     •  User  Groups!!   •  Sh*t  Gary  Says  -­‐  hep://garylarizza.com/     @byron_miller   63  
  • 64. Ques[ons?     “Organiza)ons  which  design  systems…  are  constrained  to   produce  designs  which  are  copies  of  the  communica)on   structures  of  these  organiza)ons.”                  -­‐  M.  Conway     @byron_miller   64