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.

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

475 views

Published on

Если инфраструктура становится кодом, то хороший код должен быть покрыт тестами. Тестирование инфраструктуры особенно актуально, если у вас частые изменения, сложная логика, или используется сторонний код.

Я расскажу про основные инструменты и подходы в тестировании инфраструктуры, как все это автоматизировать и про наш опыт в Express 42. Начиная с анализа кода, интеграционных тестов и заканчивая использованием CI систем. Также расскажу про публикацию инфраструктурного кода в open source.

Доклад будет интересен пользователям любой из систем управления конфигурацией - Chef, Puppet, Ansible или SaltStack.

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

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

  1. 1. Тестируем инфраструктуру как код Игорь Курочкин
  2. 2. О себе • Express 42 • Qik/Skype/Microsoft • Chef/Puppet • Ansible/SaltStack
  3. 3. О чем доклад? • Тестирование • Инструменты • Автоматизация • Наш опыт
  4. 4. Тесты? • Качество • Обратная связь • Автоматизация • Документация
  5. 5. Тесты?
  6. 6. Когда актуально? • Изменения • Коллектив • Сложная логика • Чужой код
  7. 7. Какие системы? • Chef • Puppet • Ansible • SaltStack
  8. 8. Что тестировать? • Кукбуки (Chef ) • Модули (Puppet) • Роли (Ansible) • Формулы (SaltStack)
  9. 9. Что проверяем? • Стиль языка и кода • Функционал • Интеграцию • Результат
  10. 10. Стиль языка • Ruby • rubocop • Python • pep8
  11. 11. Стиль кода • Chef Foodcritic • Puppet-lint • Ansible-lint • Salt-lint
  12. 12. Функционал • Фикстуры или тестовые данные: • кукбук (Chef) • модуль (Puppet) • плейбук (Ansible) • формула (SaltStack)
  13. 13. Интеграция • Vagrant • Test Kitchen • Chef/Puppet/Ansible/Salt • Vagrant/Docker/LXC • Clouds • Serverspec
  14. 14. Результат • Serverspec - тесты для инфраструктуры: • Linux/BSD/Windows • Встроенные ресурсы • Замена bash
  15. 15. Результат • Chef • Audit mode • Ansible • Assert, URI, Script, Fail
  16. 16. Автоматизируем • CI система • Travis CI • Другие CI системы
  17. 17. Travis CI • SaaS для GitHub проектов • Ограничения • Окружение • Ubuntu 12.04 • Пакеты • Переменные • Ресурсы
  18. 18. Test Kitchen + Travis CI • Два инструмента • Облачные провайдеры
  19. 19. Другие CI системы • Jenkins • TeamCity • Bamboo • Ваша CI система
  20. 20. А продакшн? • Dry run (Chef) • Noop mode (Puppet) • Check mode (Ansible) • State testing (SaltStack)
  21. 21. Что еще? • Ревью кода • Делимся с сообществом
  22. 22. Делимся • Chef Supermarket • Puppet Forge • Ansible Galaxy • Salt Formulas
  23. 23. Не забываем • Приватная информация • Тесты и статус сборки • История изменений и документация • Совместимость и конфликты • Синхронизация с платформой • Лицензия
  24. 24. Как это делаем мы • GitHub • Travis CI • Rubocop + Foodcritic • Test Kitchen + Digital Ocean • Serverspec • Chef Supermarket • Slack
  25. 25. Выводы • Тестируйте инфраструктуру • Автоматизируйте • Делитесь с сообществом
  26. 26. Контакты • github.com/express42-cookbooks • habrahabr.ru/company/express42/ • devopsdeflope.ru • devopsru.com • @express42_ru
  27. 27. Подарок
  28. 28. Вопросы? • github.com/express42-cookbooks • habrahabr.ru/company/express42/ • devopsdeflope.ru • devopsru.com • @express42_ru

×