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

Платформа для поставки счастья в команду QA

Embed Size (px)

Citation preview

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

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

магазинов.

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

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

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

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

Operations

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

QA

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

PackageStorage

Nginx

EC2  instance Postgres

Route53

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

Статистика

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

Сложности

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

Сложности

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

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

Сложности

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

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

Песочницы

S3

Nginx

EC2  instance RDS

Teamcity

*<name>.sandbox.ecwid.com

Песочницы

Песочницы

Песочницы• <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

Статистика

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

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

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

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

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

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

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

Sandy

Sandy

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

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

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

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

Оптимизации

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

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

Платформа

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

Итог

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

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

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

Спасибо

Get better

• hangops.ru• devopsru.com