SlideShare a Scribd company logo
1 of 27
Download to read offline
Тестируем
инфраструктуру
как код
Игорь Курочкин

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

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 Yandexaviatakz
 
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытанияCodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытанияCodeFest
 
Часть 7: Автоматизация процессов
Часть 7: Автоматизация процессовЧасть 7: Автоматизация процессов
Часть 7: Автоматизация процессовOleg Popov
 
Илья Кудинов
Илья КудиновИлья Кудинов
Илья КудиновCodeFest
 
Практика разработки веб-серверов на Rust
Практика разработки веб-серверов на RustПрактика разработки веб-серверов на Rust
Практика разработки веб-серверов на RustMichael Pankov
 
Автоматическое тестирование Web api
Автоматическое тестирование Web apiАвтоматическое тестирование Web api
Автоматическое тестирование Web apiIgor Lyubin
 
CodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest 2012. Аксёнов А. — Как мы разрабатываем SphinxCodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest 2012. Аксёнов А. — Как мы разрабатываем SphinxCodeFest
 
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
 

What's hot (13)

Github Flow. Тестировщики против тестирования
Github Flow. Тестировщики против тестированияGithub Flow. Тестировщики против тестирования
Github Flow. Тестировщики против тестирования
 
Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"
Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"
Евгения Фирсова "Выкладка вёрстки — просто, быстро, безопасно"
 
Мифы о DevOps / Александр Титов, Иван Евтухович (Экспресс 42)
Мифы о DevOps / Александр Титов, Иван Евтухович (Экспресс 42)Мифы о DevOps / Александр Титов, Иван Евтухович (Экспресс 42)
Мифы о DevOps / Александр Титов, Иван Евтухович (Экспресс 42)
 
Python Development process in Yandex
Python Development process in YandexPython Development process in Yandex
Python Development process in Yandex
 
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытанияCodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
 
Часть 7: Автоматизация процессов
Часть 7: Автоматизация процессовЧасть 7: Автоматизация процессов
Часть 7: Автоматизация процессов
 
Илья Кудинов
Илья КудиновИлья Кудинов
Илья Кудинов
 
Практика разработки веб-серверов на Rust
Практика разработки веб-серверов на RustПрактика разработки веб-серверов на Rust
Практика разработки веб-серверов на Rust
 
Автоматическое тестирование Web api
Автоматическое тестирование Web apiАвтоматическое тестирование Web api
Автоматическое тестирование Web api
 
CodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest 2012. Аксёнов А. — Как мы разрабатываем SphinxCodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
CodeFest 2012. Аксёнов А. — Как мы разрабатываем Sphinx
 
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)
 
Enter: legacy code
Enter: legacy codeEnter: legacy code
Enter: legacy code
 
Enter: code style
Enter: code styleEnter: code style
Enter: code style
 

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

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 practicesIgor Kurochkin
 
OTUS Infrastructure as Code
OTUS Infrastructure as CodeOTUS Infrastructure as Code
OTUS Infrastructure as CodeIgor 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 42Igor Kurochkin
 
DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015Ivan Evtukhovich
 
Тестирование весна 2014 смешанное занятие 1
Тестирование весна 2014 смешанное занятие 1Тестирование весна 2014 смешанное занятие 1
Тестирование весна 2014 смешанное занятие 1Technopark
 
Тестирование ПО
Тестирование ПОТестирование ПО
Тестирование ПО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 codeDmytro Mindra
 

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

Rootconf-2015 Тестируем инфраструктуру как код
Rootconf-2015 Тестируем инфраструктуру как кодRootconf-2015 Тестируем инфраструктуру как код
Rootconf-2015 Тестируем инфраструктуру как код
 
Тестируем инфраструктуру как код / Игорь Курочкин (Express 42)
Тестируем инфраструктуру как код / Игорь Курочкин (Express 42)Тестируем инфраструктуру как код / Игорь Курочкин (Express 42)
Тестируем инфраструктуру как код / Игорь Курочкин (Express 42)
 
Тестируем инфраструктуру как код
Тестируем инфраструктуру как кодТестируем инфраструктуру как код
Тестируем инфраструктуру как код
 
Puppet development kit and best practices
Puppet development kit and best practicesPuppet development kit and best practices
Puppet development kit and best practices
 
OTUS Infrastructure as Code
OTUS Infrastructure as CodeOTUS Infrastructure as Code
OTUS Infrastructure as Code
 
Автоматическое тестирование. Моя система
Автоматическое тестирование. Моя системаАвтоматическое тестирование. Моя система
Автоматическое тестирование. Моя система
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Роль TestOps: расширяем традиционные обязанности тестировщика
Роль TestOps: расширяем традиционные обязанности тестировщикаРоль TestOps: расширяем традиционные обязанности тестировщика
Роль TestOps: расширяем традиционные обязанности тестировщика
 
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
 
TestOps. Расширяем традиционные обязанности тестировщика
TestOps. Расширяем традиционные обязанности тестировщикаTestOps. Расширяем традиционные обязанности тестировщика
TestOps. Расширяем традиционные обязанности тестировщика
 
Автоматизация в тестировании инфраструктуры
Автоматизация в тестировании инфраструктурыАвтоматизация в тестировании инфраструктуры
Автоматизация в тестировании инфраструктуры
 
Workflows в Express 42
Workflows в Express 42Workflows в Express 42
Workflows в Express 42
 
DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015DevOps и системы управления конфигурацией. SECON 2015
DevOps и системы управления конфигурацией. SECON 2015
 
Тестирование весна 2014 смешанное занятие 1
Тестирование весна 2014 смешанное занятие 1Тестирование весна 2014 смешанное занятие 1
Тестирование весна 2014 смешанное занятие 1
 
Тестирование ПО
Тестирование ПОТестирование ПО
Тестирование ПО
 
Сергей Семашко "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"
 
10M tests per day
10M tests per day10M tests per day
10M tests per day
 
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Инженерны...
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Инженерны...20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Инженерны...
20 апреля, DEV {highload} - конференция о Highload веб-разработке, "Инженерны...
 
Иван Евтухович — Как перестать релизиться и начать жить
Иван Евтухович — Как перестать релизиться и начать житьИван Евтухович — Как перестать релизиться и начать жить
Иван Евтухович — Как перестать релизиться и начать жить
 
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
 

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