ݺߣ

ݺߣShare a Scribd company logo
Тестируем
инфраструктуру
как код
Игорь Курочкин

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

More Related Content

What's hot (13)

Github Flow. Тестировщики против тестирования
Github Flow. Тестировщики против тестированияGithub Flow. Тестировщики против тестирования
Github Flow. Тестировщики против тестирования
SQALab
Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"
Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"
Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"
Yandex
Мифы о DevOps / Александр Титов, Иван Евтухович (Экспресс 42)
Мифы о DevOps / Александр Титов, Иван Евтухович (Экспресс 42)Мифы о DevOps / Александр Титов, Иван Евтухович (Экспресс 42)
Мифы о DevOps / Александр Титов, Иван Евтухович (Экспресс 42)
Ontico
Python Development process in Yandex
Python Development process in YandexPython Development process in Yandex
Python Development process in Yandex
aviatakz
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытанияCodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
CodeFest
Часть 7: Автоматизация процессов
Часть 7: Автоматизация процессовЧасть 7: Автоматизация процессов
Часть 7: Автоматизация процессов
Oleg Popov
Илья Кудинов
Илья КудиновИлья Кудинов
Илья Кудинов
CodeFest
Практика разработки веб-серверов на Rust
Практика разработки веб-серверов на RustПрактика разработки веб-серверов на Rust
Практика разработки веб-серверов на Rust
Michael Pankov
Автоматическое тестирование Web api
Автоматическое тестирование Web apiАвтоматическое тестирование Web api
Автоматическое тестирование Web api
Igor Lyubin
CodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest 2012. Аксёнов А. — Как мы разрабатываем SphinxCodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest
Python tools for web development (Python meetup Almaty #ALAPY)
Python tools for web development (Python meetup Almaty #ALAPY)Python tools for web development (Python meetup Almaty #ALAPY)
Python tools for web development (Python meetup Almaty #ALAPY)
aviatakz
Enter: legacy code
Enter: legacy codeEnter: legacy code
Enter: legacy code
Kamil Samigullin
Enter: code style
Enter: code styleEnter: code style
Enter: code style
Kamil Samigullin
Github Flow. Тестировщики против тестирования
Github Flow. Тестировщики против тестированияGithub Flow. Тестировщики против тестирования
Github Flow. Тестировщики против тестирования
SQALab
Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"
Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"
Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"
Yandex
Мифы о DevOps / Александр Титов, Иван Евтухович (Экспресс 42)
Мифы о DevOps / Александр Титов, Иван Евтухович (Экспресс 42)Мифы о DevOps / Александр Титов, Иван Евтухович (Экспресс 42)
Мифы о DevOps / Александр Титов, Иван Евтухович (Экспресс 42)
Ontico
Python Development process in Yandex
Python Development process in YandexPython Development process in Yandex
Python Development process in Yandex
aviatakz
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытанияCodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
CodeFest
Часть 7: Автоматизация процессов
Часть 7: Автоматизация процессовЧасть 7: Автоматизация процессов
Часть 7: Автоматизация процессов
Oleg Popov
Илья Кудинов
Илья КудиновИлья Кудинов
Илья Кудинов
CodeFest
Практика разработки веб-серверов на Rust
Практика разработки веб-серверов на RustПрактика разработки веб-серверов на Rust
Практика разработки веб-серверов на Rust
Michael Pankov
Автоматическое тестирование Web api
Автоматическое тестирование Web apiАвтоматическое тестирование Web api
Автоматическое тестирование Web api
Igor Lyubin
CodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest 2012. Аксёнов А. — Как мы разрабатываем SphinxCodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest
Python tools for web development (Python meetup Almaty #ALAPY)
Python tools for web development (Python meetup Almaty #ALAPY)Python tools for web development (Python meetup Almaty #ALAPY)
Python tools for web development (Python meetup Almaty #ALAPY)
aviatakz

Similar to Стачка-2015 Тестируем инфраструктуру как код (20)

Rootconf-2015 Тестируем инфраструктуру как код
Rootconf-2015 Тестируем инфраструктуру как кодRootconf-2015 Тестируем инфраструктуру как код
Rootconf-2015 Тестируем инфраструктуру как код
Igor Kurochkin
Тестируем инфраструктуру как код / Игорь Курочкин (Express 42)
Тестируем инфраструктуру как код / Игорь Курочкин (Express 42)Тестируем инфраструктуру как код / Игорь Курочкин (Express 42)
Тестируем инфраструктуру как код / Игорь Курочкин (Express 42)
Ontico
Тестируем инфраструктуру как код
Тестируем инфраструктуру как кодТестируем инфраструктуру как код
Тестируем инфраструктуру как код
Andrey Tokarchuk
Puppet development kit and best practices
Puppet development kit and best practicesPuppet development kit and best practices
Puppet development kit and best practices
Igor Kurochkin
OTUS Infrastructure as Code
OTUS Infrastructure as CodeOTUS Infrastructure as Code
OTUS Infrastructure as Code
Igor Kurochkin
Автоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаАвтоматическое тестирование. Моя система
Автоматическое тестирование. Моя система
Igor Lyubin
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
SQALab
Роль TestOps: расширяем традиционные обязанности тестировщика
Роль TestOps: расширяем традиционные обязанности тестировщикаРоль TestOps: расширяем традиционные обязанности тестировщика
Роль TestOps: расширяем традиционные обязанности тестировщика
SQALab
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest
TestOps. Расширяем традиционные обязанности тестировщика
TestOps. Расширяем традиционные обязанности тестировщикаTestOps. Расширяем традиционные обязанности тестировщика
TestOps. Расширяем традиционные обязанности тестировщика
Alexander Nedeliaev
Автоматизация в тестировании инфраструктуры
Автоматизация в тестировании инфраструктурыАвтоматизация в тестировании инфраструктуры
Автоматизация в тестировании инфраструктуры
SQALab
Workflows в Express 42
Workflows в Express 42Workflows в Express 42
Workflows в Express 42
Igor Kurochkin
DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015
Ivan Evtukhovich
Тестирование весна 2014 смешанное занятие 1
Тестирование весна 2014 смешанное занятие 1Тестирование весна 2014 смешанное занятие 1
Тестирование весна 2014 смешанное занятие 1
Technopark
Тестирование ПО
Тестирование ПОТестирование ПО
Тестирование ПО
seleznev_stas
Сергей Семашко "End to end test: cheap and effective"
Сергей Семашко "End to end test: cheap and effective"Сергей Семашко "End to end test: cheap and effective"
Сергей Семашко "End to end test: cheap and effective"
EPAM Systems
10M tests per day
10M tests per day10M tests per day
10M tests per day
Sergey Grinev
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Инженерны...
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Инженерны...20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Инженерны...
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Инженерны...
IT-Portfolio
Иван Евтухович — Как перестать релизиться и начать жить
Иван Евтухович — Как перестать релизиться и начать житьИван Евтухович — Как перестать релизиться и начать жить
Иван Евтухович — Как перестать релизиться и начать жить
Daria Oreshkina
XP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy codeXP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy code
Dmytro Mindra
Rootconf-2015 Тестируем инфраструктуру как код
Rootconf-2015 Тестируем инфраструктуру как кодRootconf-2015 Тестируем инфраструктуру как код
Rootconf-2015 Тестируем инфраструктуру как код
Igor Kurochkin
Тестируем инфраструктуру как код / Игорь Курочкин (Express 42)
Тестируем инфраструктуру как код / Игорь Курочкин (Express 42)Тестируем инфраструктуру как код / Игорь Курочкин (Express 42)
Тестируем инфраструктуру как код / Игорь Курочкин (Express 42)
Ontico
Тестируем инфраструктуру как код
Тестируем инфраструктуру как кодТестируем инфраструктуру как код
Тестируем инфраструктуру как код
Andrey Tokarchuk
Puppet development kit and best practices
Puppet development kit and best practicesPuppet development kit and best practices
Puppet development kit and best practices
Igor Kurochkin
Автоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаАвтоматическое тестирование. Моя система
Автоматическое тестирование. Моя система
Igor Lyubin
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
SQALab
Роль TestOps: расширяем традиционные обязанности тестировщика
Роль TestOps: расширяем традиционные обязанности тестировщикаРоль TestOps: расширяем традиционные обязанности тестировщика
Роль TestOps: расширяем традиционные обязанности тестировщика
SQALab
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest
TestOps. Расширяем традиционные обязанности тестировщика
TestOps. Расширяем традиционные обязанности тестировщикаTestOps. Расширяем традиционные обязанности тестировщика
TestOps. Расширяем традиционные обязанности тестировщика
Alexander Nedeliaev
Автоматизация в тестировании инфраструктуры
Автоматизация в тестировании инфраструктурыАвтоматизация в тестировании инфраструктуры
Автоматизация в тестировании инфраструктуры
SQALab
DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015
Ivan Evtukhovich
Тестирование весна 2014 смешанное занятие 1
Тестирование весна 2014 смешанное занятие 1Тестирование весна 2014 смешанное занятие 1
Тестирование весна 2014 смешанное занятие 1
Technopark
Тестирование ПО
Тестирование ПОТестирование ПО
Тестирование ПО
seleznev_stas
Сергей Семашко "End to end test: cheap and effective"
Сергей Семашко "End to end test: cheap and effective"Сергей Семашко "End to end test: cheap and effective"
Сергей Семашко "End to end test: cheap and effective"
EPAM Systems
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Инженерны...
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Инженерны...20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Инженерны...
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Инженерны...
IT-Portfolio
Иван Евтухович — Как перестать релизиться и начать жить
Иван Евтухович — Как перестать релизиться и начать житьИван Евтухович — Как перестать релизиться и начать жить
Иван Евтухович — Как перестать релизиться и начать жить
Daria Oreshkina
XP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy codeXP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy code
Dmytro Mindra

Стачка-2015 Тестируем инфраструктуру как код