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

Тестируем инфраструктуру как код

Embed Size (px)

Citation preview

Page 1: Тестируем инфраструктуру как код

Тестируем инфраструктуру как код

Игорь КурочкинExpress 42

Page 2: Тестируем инфраструктуру как код

О себеExpress 42Qik/Skype/Microsoft

Chef/Puppet

Надежные решения для сложной инфраструктуры2

Page 3: Тестируем инфраструктуру как код

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

Надежные решения для сложной инфраструктуры3

Page 4: Тестируем инфраструктуру как код

Тесты?Поиск ошибокСовместимостьДокументация

Надежные решения для сложной инфраструктуры4

Page 5: Тестируем инфраструктуру как код

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

Надежные решения для сложной инфраструктуры5

Page 6: Тестируем инфраструктуру как код

Какие системы?

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

Page 7: Тестируем инфраструктуру как код

Что тестировать?Кукбуки (Chef)Модули (Puppet)Роли (Ansible)Формулы (Salt)

Надежные решения для сложной инфраструктуры7

Page 8: Тестируем инфраструктуру как код

Что проверяем?CтильФункционалРезультатИнтеграцию

Надежные решения для сложной инфраструктуры8

Page 9: Тестируем инфраструктуру как код

Cтиль языкаRuby

• rubocopPython

• pep8

Надежные решения для сложной инфраструктуры9

Page 10: Тестируем инфраструктуру как код

Стиль кодаChef FoodcriticPuppet-lintAnsible-lintSalt-lint

Надежные решения для сложной инфраструктуры10

Page 11: Тестируем инфраструктуру как код

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

Надежные решения для сложной инфраструктуры11

Page 12: Тестируем инфраструктуру как код

Результат

Надежные решения для сложной инфраструктуры12

Serverspec - тесты для инфраструктуры:• Linux/BSD/Windows• Встроенные ресурсы

Page 13: Тестируем инфраструктуру как код

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

Надежные решения для сложной инфраструктуры13

Page 14: Тестируем инфраструктуру как код

АвтоматизируемKitchen CITravis CIДругие CI системы

Надежные решения для сложной инфраструктуры14

Page 15: Тестируем инфраструктуру как код

Test KitchenНо это только для Chef?Уже нет.

Надежные решения для сложной инфраструктуры15

Page 16: Тестируем инфраструктуру как код

Test KitchenChef/Puppet/Ansible/SaltVagrantCloudServerspec

Надежные решения для сложной инфраструктуры16

Page 17: Тестируем инфраструктуру как код

Travis CICI система для GitHubSaaSUbuntu 12.04

Надежные решения для сложной инфраструктуры17

Page 18: Тестируем инфраструктуру как код

Kitchen+Travis CIДва инструментаОблачные провайдеры

Надежные решения для сложной инфраструктуры18

Page 19: Тестируем инфраструктуру как код

Другие CI системыJenkinsTeamCityBambooВаша CI система

Надежные решения для сложной инфраструктуры19

Page 20: Тестируем инфраструктуру как код

Что еще?Делимся с сообществом

Надежные решения для сложной инфраструктуры20

Page 21: Тестируем инфраструктуру как код

ДелимсяChef SupermarketPuppet ForgeAnsible GalaxySalt Formulas

Надежные решения для сложной инфраструктуры21

Page 22: Тестируем инфраструктуру как код

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

Надежные решения для сложной инфраструктуры22

Page 23: Тестируем инфраструктуру как код

Как это делаем мыChef cookbooks + GitHubTravis CIRubocop + Foodcritic Test Kitchen + Digital Ocean + Serverspec Chef SupermarketСтатус сборки и нотификации в Slack чат

Надежные решения для сложной инфраструктуры23

Page 24: Тестируем инфраструктуру как код

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

Надежные решения для сложной инфраструктуры24

Page 25: Тестируем инфраструктуру как код

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

25

Page 26: Тестируем инфраструктуру как код

Подарок

26

Page 27: Тестируем инфраструктуру как код

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

27