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.
Ikke test
Puppet-koden
din!
Oslo Puppet Meetup
på Twitter eller Freenode
@beddari
1. Status
Hva kan vi om testing av infrastruktur-kode?
Vi skiller kodemiljøene fra
hverandre
Kanskje en branch, deretter dev, test, qa før prod
Vi itererer raskt i dev-
miljøet
Vagrant, VMware, OpenStack, LXC/Docker
Vi validerer syntaks og
kodestil automatisk
Integrert med versjonskontroll og CI
Vi kjører unit- og
integrasjonstesting
Modules/cookbooks/bundles er kodekomponenter
Hmm .. gjør vi egentlig det?
Vi overvåker og måler
infrastrukturen
Vi overvåker og måler
infrastrukturen tjenestene
OK, men det gjør vi jo? Det gjør vel alle?
- Ja, i prod!
2. Hva er
egentlig
infrastruktur-
kode?
Ikke ditt typiske utviklingsprosjekt, nei
Det egentlige artifaktet er
et dynamisk system!
Start-tilstanden vil ofte være ukjent
Kjøring av koden har flere
inputs enn dine!
Ikke anta for mye om miljøet
Koden beskriver en
tilstand!
Dersom tilstandsbeskrivelsen er korrekt, hva er igjen å
teste?
Tradisjonell testing treffer
ikke godt nok!
Unit- og integrasjonstester gir mindre gevinst
3. Test-
pyramiden
faller?
.. eller hvorfor infra-kodere liker iskrem
Originalen
Mike Cohn, (2009)Succeeding with Agile
Pyramiden 2.0
Robert C. Martin, (2011)The Clean Coder
4. Løsninger?
Endeling kan vi snakke om verktøy!
ogServerspec mspectator
rspec-system
Serverspec
Verktøy og bibliotek for utside-inn testing av server-
infrastruktur
@beddari tidlig i 2013:
Hurra!
Dette er jo enn veldig veldig VELDIG god ide!
Alle kan skrive tester med
serverspec
Ops? Det er bare bash med en wrapper rundt!
Dev? Det er rspec, du kan jo det/lærer d...
Både et verktøy i seg selv og et
bibliotek
Ferdig util for å kjøre tester via Vagrant og SSH
Vi vil se kode!
[root@localhost serverspec-eksempel]# tree
.
├── Rakefile
└── spec
├── centos64
│ └── httpd_spec.rb
└── sp...
Mulighet for en gjenbrukbar
testbase!!
På kryss av ansvar og bakgrunn
Er alt bare fryd ..
Nei, prosjektet har utfordringer rundt beskrivelse av flere
noder og .. syntaks!
Ideer til implementasjon ...
tenkehatten på!
Testene bør skrives av andre
Vi kan hente data fra ikke-kodet-infrastruktur, ...
mspectator
Fullt ut integrert infrastruktur-testing med Mcollective av
Raphaël Pinson, Camp2camp
mspectator kan benytte
mcollective-filter
Løser problemet med at serverspec knytter testene mot
FQDN
.. also, since I installed mcollective, I lost 5kg, I can see in the dark and cook without using my hands
require 'mspecta...
Arkitekturen er mer komplisert
En må naturlig nok ha mcollective ...
Testene må deployes til nodene som skal kjøre de
Tape...
rspec-system
Et undercover Puppetlabs-prosjekt av Ken Barber
Mange av de samme tankene
Testing av systemer og gjerne større sett av noder
sammen
SSH som default-transport
Vurderer å t...
5. Referanser
og linker
Tekster
The Clean Coder: A Code of Conduct for Professional
Programmers ( )
: Promises, Lies and Dry-Run Mode ( )
: Testin...
Hire me!
no.linkedin.com/in/beddari
Ikke test Puppet-koden din
Ikke test Puppet-koden din
Ikke test Puppet-koden din
Ikke test Puppet-koden din
Ikke test Puppet-koden din
Upcoming SlideShare
Loading in …5
×

Ikke test Puppet-koden din

353 views

Published on

Slides (in Norwegian) from Oslo Puppet Meetup, 28.5.2013.

Original format: http://deploy.no/ikke-test-puppet-koden-din

Published in: Technology
  • D0WNL0AD FULL ▶ ▶ ▶ ▶ http://1url.pw/8i5Tj ◀ ◀ ◀ ◀
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Ikke test Puppet-koden din

  1. 1. Ikke test Puppet-koden din! Oslo Puppet Meetup
  2. 2. på Twitter eller Freenode @beddari
  3. 3. 1. Status Hva kan vi om testing av infrastruktur-kode?
  4. 4. Vi skiller kodemiljøene fra hverandre Kanskje en branch, deretter dev, test, qa før prod
  5. 5. Vi itererer raskt i dev- miljøet Vagrant, VMware, OpenStack, LXC/Docker
  6. 6. Vi validerer syntaks og kodestil automatisk Integrert med versjonskontroll og CI
  7. 7. Vi kjører unit- og integrasjonstesting Modules/cookbooks/bundles er kodekomponenter
  8. 8. Hmm .. gjør vi egentlig det?
  9. 9. Vi overvåker og måler infrastrukturen
  10. 10. Vi overvåker og måler infrastrukturen tjenestene
  11. 11. OK, men det gjør vi jo? Det gjør vel alle?
  12. 12. - Ja, i prod!
  13. 13. 2. Hva er egentlig infrastruktur- kode? Ikke ditt typiske utviklingsprosjekt, nei
  14. 14. Det egentlige artifaktet er et dynamisk system! Start-tilstanden vil ofte være ukjent
  15. 15. Kjøring av koden har flere inputs enn dine! Ikke anta for mye om miljøet
  16. 16. Koden beskriver en tilstand! Dersom tilstandsbeskrivelsen er korrekt, hva er igjen å teste?
  17. 17. Tradisjonell testing treffer ikke godt nok! Unit- og integrasjonstester gir mindre gevinst
  18. 18. 3. Test- pyramiden faller? .. eller hvorfor infra-kodere liker iskrem
  19. 19. Originalen Mike Cohn, (2009)Succeeding with Agile
  20. 20. Pyramiden 2.0 Robert C. Martin, (2011)The Clean Coder
  21. 21. 4. Løsninger? Endeling kan vi snakke om verktøy!
  22. 22. ogServerspec mspectator rspec-system
  23. 23. Serverspec Verktøy og bibliotek for utside-inn testing av server- infrastruktur
  24. 24. @beddari tidlig i 2013: Hurra! Dette er jo enn veldig veldig VELDIG god ide!
  25. 25. Alle kan skrive tester med serverspec Ops? Det er bare bash med en wrapper rundt! Dev? Det er rspec, du kan jo det/lærer det lett!
  26. 26. Både et verktøy i seg selv og et bibliotek Ferdig util for å kjøre tester via Vagrant og SSH
  27. 27. Vi vil se kode! [root@localhost serverspec-eksempel]# tree . ├── Rakefile └── spec ├── centos64 │ └── httpd_spec.rb └── spec_helper.rb
  28. 28. Mulighet for en gjenbrukbar testbase!! På kryss av ansvar og bakgrunn
  29. 29. Er alt bare fryd .. Nei, prosjektet har utfordringer rundt beskrivelse av flere noder og .. syntaks!
  30. 30. Ideer til implementasjon ... tenkehatten på! Testene bør skrives av andre Vi kan hente data fra ikke-kodet-infrastruktur, typisk storage, nettverk Benytte testene i hele kjeden helt fra dev til prod Testing blir en form for overvåkning? WIN!
  31. 31. mspectator Fullt ut integrert infrastruktur-testing med Mcollective av Raphaël Pinson, Camp2camp
  32. 32. mspectator kan benytte mcollective-filter Løser problemet med at serverspec knytter testene mot FQDN
  33. 33. .. also, since I installed mcollective, I lost 5kg, I can see in the dark and cook without using my hands require 'mspectator' describe "apache::server" do it { should find_nodes(10).or_less.with_agent('spec') } it { should have_certificate.signed } it { should pass_puppet_spec } context "when on Debian", :facts => [:operatingsystem => "Debian"] do it { should find_nodes(5).or_more } it { should have_service('apache2').with( :ensure => 'running', :enable => 'true' ) } it { should have_package('apache2') } it { should have_user('www-data') } end end
  34. 34. Arkitekturen er mer komplisert En må naturlig nok ha mcollective ... Testene må deployes til nodene som skal kjøre de Taper noe av elegansen, vinner i utbytte!
  35. 35. rspec-system Et undercover Puppetlabs-prosjekt av Ken Barber
  36. 36. Mange av de samme tankene Testing av systemer og gjerne større sett av noder sammen SSH som default-transport Vurderer å ta i bruk serverspec som lib
  37. 37. 5. Referanser og linker
  38. 38. Tekster The Clean Coder: A Code of Conduct for Professional Programmers ( ) : Promises, Lies and Dry-Run Mode ( ) : Testing your infrastructure ( ) : Automated infrastructure testing ( ) : Puppet at GitHub ( | ) : Puppet module testing ( ) Kode Tools for writing fast unit tests for puppet Framework for running integration tests in an isolated environment Book Sean OMeara Blog Andrew Crump Blog Ranjib Dey Slides Will Farrington Video Slides Jan Vansteenkiste Slides Fizzgig Test Kitchen
  39. 39. Hire me! no.linkedin.com/in/beddari

×