BBL - TDD pour les DevOps - Puppet

  • Published on
    12-Jan-2015

  • View
    242

  • Download
    3

Embed Size (px)

DESCRIPTION

Le Test Driven Infrastructure, c'est un peu le TDD pour les projets DevOps. Il va vous permettre de tester votre infrastructure unitairement, de bout en bout et chaque changement.

Transcript

  • 1. TDD pour les DevOps BBL Puppet dition
  • 2. BrownBagLunch.fr - @bbl_fr Bagger BBL + = Profit ! 1 expert(e) 1 panier Apprendre passionn(e) repas changer Participer - Contribuer - Accueillir - Suivre
  • 3. Sommaire Infrastructure As Code Test all the things! Conclusion
  • 4. Intervenant Olivier Bazoud @obazoud DevOps Chef/Puppet Spring-*/JEE, Node.js NoSQL Co-auteur de Spring Batch in Action
  • 5. Et vous ?
  • 6. Infrastructure As Code avec Puppet
  • 7. Infrastructure as code Coder linfrastructure installation de logiciels, configuration, administrateur systme Technique de dvelopement logiciel Meilleures pratiques logiciels
  • 8. Choix http://koruxypress.blogspot.fr/2013/10/art-by-venn-diagrams-lauren-panepinto.html
  • 9. Dette technique
  • 10. Cot dun bug http://codefol.io/posts/ship-early
  • 11. Test Driven Development Ecrire un test pour une fonctionnalit Vrifier que le test est failed Ecrire une implmentation minimale Vrifier que le test passe Rpter
  • 12. Test Driven Development
  • 13. Bnfices Cercle vertueux Inspire la confiance Refactoring scuris Cas dusage auto document
  • 14. Allez plus loin Continuous integration Continuous deployment
  • 15. Exemple: haproxy https://github.com/obazoud/tdd-for-devops-puppet.git Spcifications Installer le package haproxy Configuration (basique) Service up Installation apt-get/yum install puppet gem install bundler bundle install
  • 16. Rake Le make pour Ruby
  • 17. La synthaxe
  • 18. Vrification de la syntaxe
  • 19. Vrification de la syntaxe
  • 20. Les bonnes pratiques
  • 21. Analyse statique Puppet lint: http://puppet-lint.com Vrification des bonnes pratiques Vrification de la qualit du code Personnalisation possible
  • 22. Analyse statique
  • 23. Tests unitaires
  • 24. Tests unitaires http://rspec-puppet.com/ Tester le comportement des manifests lorsque Puppet compile un manifest vers le catalogue de ressources Puppet Ici, on ne teste pas un OS rel!
  • 25. Exemple TDD HAProxy Spcifications Installer le package haproxy Configuration (basique) Service up Les tests doivent tre rouge
  • 26. Exemple TDD HAProxy
  • 27. Exemple TDD HAProxy Implmentation
  • 28. Exemple TDD HAProxy Le test est dans le vert
  • 29. Exemple HAProxy
  • 30. Tests acceptance
  • 31. Tests acceptance Puppet acceptance testing harness https://github.com/puppetlabs/beaker https://github.com/puppetlabs/beaker-rspec Test sur un vrai OS Vagrant + Virtualbox Docker, Aws, ...
  • 32. Configuration default.yml
  • 33. Serverspec RSpec tests for your servers configured by Puppet, Chef or anything else.
  • 34. Acceptance
  • 35. Allez plus loin
  • 36. Outils Guard Permet de lancer des commandes chaque modifications de fichiers Fast feedback Rubocop Analyse statique de code Ruby Bats Framework de test bash
  • 37. Outils Cucumber Framework de type BDD Kitchen (Chef) Equivalent Beaker mais avec beaucoup plus de fonctionnalits et stabilit Existe un PR pour intgrer Puppet Jenkins Continuous integration / deploiment
  • 38. Conclusion
  • 39. Questions ?
  • 40. ROTI J'ai perdu mon temps Bof, j'ai baill Excellent ! Encore ! Bien, mais sans plus Intressant, j'ai appris des choses