Платформа для поставки счастья в команду qa / Вячеслав...

31
Платформа для поставки счастья в команду QA Вячеслав Кузнецов @smith3v

Upload: ontico

Post on 16-Apr-2017

295 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Платформа для поставки счастья в команду QAВячеслав Кузнецов@smith3v

Page 2: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Ecwid• SaaS-платформа для интернет-

магазинов.

• ~ 750 000 клиентов по всему миру.

• ~ 100 000 000 посетителей в месяц.

• 80 человек в команде.

• Ульяновск, Самара, Казань, SanDiego.

Page 3: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Operations

• Доступность.• Надежность.• Безопасность.• Максимальная скорость от идеи до релиза.

Page 4: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

QA

• Подготовка и поддержка ботов.

• Сопровождение релизов.• Проверка изменений на соответствие задаче.

Page 5: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

На заре проекта

• Десяток разработчиков.• SVN репозиторий.• All-in-one staging-сервер.• Обновление руками.

Page 6: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Команда растет

• Больше изменений.• Тестирование до слияния с основным кодом.

• Завели pre-staging сервер J

Page 7: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Переехали на Git

• Изменение делается в

отдельной ветке.

• Тестовые серверы стали

бутылочным горлышком.

Page 8: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Первый подходУ нас уже есть configuration management, который готовит production-кластер!• Git• Chef• Bash• Jenkins

Page 9: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Запуск площадки• Передаем имя и версию;

• Собираем все пакеты;• Создаем базы из шаблонов;

• Регистрируем DNS;• Добавляем в Nginx;

• Запускаем сервер EC2;

• Дожидаемся результата.

Page 10: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Инфраструктура

PackageStorage

Nginx

EC2  instance Postgres

Route53

Jenkinsapp.<name>.ecwid.commy.<name>.ecwid.com

Page 11: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Статистика

• время запуска ~45 мин;• 15-30 сборок в день;• до 30 поломок в месяц.

Page 12: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Сложности

• Поддержка bash-кода.• Хрупкая реализация.

Page 13: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Сложности

• Общее пространство имен в *.ecwid.com.

• Ручное бессмертие.

Page 14: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Сложности

• История версий баз в файлах.

• Сложное добавление сервисов.

Page 15: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Песочницы

S3

Nginx

EC2  instance RDS

Teamcity

*<name>.sandbox.ecwid.com

Page 16: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Песочницы

Page 17: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Песочницы

Page 18: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Песочницы• <Build tasks> (2m:10s)

• <Upload static to S3> (2m:56s)• <Instance start> (10m:29s)

• Chef Client finished, 652/1037 resources updated in 521.716752572 seconds

Page 19: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Статистика

• ~15 мин время запуска;• ~50 сборок в день;• единичные поломки;• ~$1500 в месяц.

Page 20: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Песочницы. Плюшки

• Бессмертные площадки и остановка ненужных.

• Простое добавление новых сервисов.

Page 21: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Песочницы. Плюшки

• Нормальное управление базами.

• Нормальная работа с доменами.

Page 22: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Sandy

Page 23: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Sandy

• Что запущено?• Есть бессмертные?• История.

Page 24: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Интеграция с чатом

Page 25: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Интеграция с чатом

Page 26: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Интеграция с чатом

Page 27: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Оптимизации

• Базовый образ.• Ночное тестирование.• Предварительная сборка

пакетов.• ssh-dev, psql-sand, ectail.

Page 28: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Платформа

Дали возможность добавлять новые компоненты без участия Ops:• Шаблон конфига в пакете;• Добавление одной командой.

Page 29: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Итог

• Системные решения эффективнее.

• Больше свободы, меньше блокировок.

• Тестовая среда ≈ реальной.

Page 30: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Спасибо

Page 31: Платформа для поставки счастья в команду QA / Вячеслав Кузнецов (Ecwid)

Get better

• hangops.ru• devopsru.com