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

Preview:

Citation preview

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

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

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

Chef/Puppet

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

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

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

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

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

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

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

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

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

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

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

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

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

Cтиль языкаRuby

• rubocopPython

• pep8

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

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

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

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

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

Результат

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

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

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

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

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

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

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

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

Test KitchenChef/Puppet/Ansible/SaltVagrantCloudServerspec

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

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

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

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

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

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

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

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

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

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

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

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

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

Как это делаем мыChef cookbooks + GitHubTravis CIRubocop + 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

Recommended