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.
7. Infrastructure as code
Coder l’infrastructure
installation de logiciels, configuration, …
administrateur système
Technique de dévelopement logiciel
Meilleures pratiques logiciels
11. Test Driven Development
Ecrire un test pour une fonctionnalité
Vérifier que le test est “failed”
Ecrire une implémentation minimale
Vérifier que le test passe
Répéter
22. Analyse statique
Puppet lint: http://puppet-lint.com
● Vérification des bonnes pratiques
● Vérification de la qualité du code
● Personnalisation possible
25. 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 réel!
26. Exemple TDD HAProxy
● Spécifications
○ Installer le package ‘haproxy’
○ Configuration (basique)
○ Service up
Les tests doivent être “rouge”
38. Outils
● Guard
○ Permet de lancer des commandes à chaque
modifications de fichiers
○ “Fast feedback”
● Rubocop
○ Analyse statique de code Ruby
● Bats
○ Framework de test bash
39. Outils
● Cucumber
○ Framework de type BDD
● Kitchen (Chef)
○ Equivalent à Beaker mais avec beaucoup plus de
fonctionnalités et stabilité
○ Existe un PR pour intégrer Puppet
● Jenkins
○ Continuous integration / deploiment