Slide 1

Slide 1 text

Тестируем инфраструктуру как код Игорь Курочкин Express 42

Slide 2

Slide 2 text

О себе Express 42 Qik/Skype/Microsoft Chef/Puppet Надежные решения для сложной инфраструктуры 2

Slide 3

Slide 3 text

О чем доклад? Тестирование инфраструктуры Инструменты Автоматизация Наш опыт Надежные решения для сложной инфраструктуры 3

Slide 4

Slide 4 text

Тесты? Поиск ошибок Совместимость Документация Надежные решения для сложной инфраструктуры 4

Slide 5

Slide 5 text

Когда актуально? Сторонний код Сложная логика Частые изменения Надежные решения для сложной инфраструктуры 5

Slide 6

Slide 6 text

Какие системы? Надежные решения для сложной инфраструктуры 6

Slide 7

Slide 7 text

Что тестировать? Кукбуки (Chef) Модули (Puppet) Роли (Ansible) Формулы (Salt) Надежные решения для сложной инфраструктуры 7

Slide 8

Slide 8 text

Что проверяем? Cтиль Функционал Результат Интеграцию Надежные решения для сложной инфраструктуры 8

Slide 9

Slide 9 text

Cтиль языка Ruby • rubocop Python • pep8 Надежные решения для сложной инфраструктуры 9

Slide 10

Slide 10 text

Стиль кода Chef Foodcritic Puppet-lint Ansible-lint Salt-lint Надежные решения для сложной инфраструктуры 10

Slide 11

Slide 11 text

Функционал Фикстуры - тестовые данные: • кукбук • модуль • плейбук Надежные решения для сложной инфраструктуры 11

Slide 12

Slide 12 text

Результат Надежные решения для сложной инфраструктуры 12 Serverspec - тесты для инфраструктуры: • Linux/BSD/Windows • Встроенные ресурсы

Slide 13

Slide 13 text

Как тестируют? Выполнить проверки Запустить код в Vagrant Посмотреть изменения Зайти на машину Проверить состояние Надежные решения для сложной инфраструктуры 13

Slide 14

Slide 14 text

Автоматизируем Kitchen CI Travis CI Другие CI системы Надежные решения для сложной инфраструктуры 14

Slide 15

Slide 15 text

Test Kitchen Но это только для Chef? Уже нет. Надежные решения для сложной инфраструктуры 15

Slide 16

Slide 16 text

Test Kitchen Chef/Puppet/Ansible/Salt Vagrant Cloud Serverspec Надежные решения для сложной инфраструктуры 16

Slide 17

Slide 17 text

Travis CI CI система для GitHub SaaS Ubuntu 12.04 Надежные решения для сложной инфраструктуры 17

Slide 18

Slide 18 text

Kitchen+Travis CI Два инструмента Облачные провайдеры Надежные решения для сложной инфраструктуры 18

Slide 19

Slide 19 text

Другие CI системы Jenkins TeamCity Bamboo Ваша CI система Надежные решения для сложной инфраструктуры 19

Slide 20

Slide 20 text

Что еще? Делимся с сообществом Надежные решения для сложной инфраструктуры 20

Slide 21

Slide 21 text

Делимся Chef Supermarket Puppet Forge Ansible Galaxy Salt Formulas Надежные решения для сложной инфраструктуры 21

Slide 22

Slide 22 text

Не забываем Приватная информация Версии и теги Тесты и статус сборки История изменений и документация Совместимость и конфликты Лицензия Надежные решения для сложной инфраструктуры 22

Slide 23

Slide 23 text

Как это делаем мы Chef cookbooks + GitHub Travis CI Rubocop + Foodcritic Test Kitchen + Digital Ocean + Serverspec Chef Supermarket Статус сборки и нотификации в Slack чат Надежные решения для сложной инфраструктуры 23

Slide 24

Slide 24 text

Выводы Тестируйте инфраструктуру Автоматизируйте Делитесь с сообществом Надежные решения для сложной инфраструктуры 24

Slide 25

Slide 25 text

Контакты • github.com/express42-cookbooks • habrahabr.ru/company/express42/ • devopsde fl ope.ru • devopsru.com • @express42_ru 25

Slide 26

Slide 26 text

Подарок 26

Slide 27

Slide 27 text

Вопросы? • github.com/express42-cookbooks • habrahabr.ru/company/express42/ • devopsde fl ope.ru • devopsru.com • @express42_ru 27