Платформа для поставки счастья в команду QA Вячеслав Кузнецов @smith3v
Apr 16, 2017
Платформа для поставки счастья в команду 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