Successfully reported this slideshow.
Your SlideShare is downloading. ×

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

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 31 Ad

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

Download to read offline

В современной разработке git - это краеугольный камень. Разработчики получили возможность писать новые фичи в отдельных ветках кода, не мешая друг другу. Как следствие, у команды QA возникла необходимость тестировать эти новые фичи изолировано друг от друга до объединения кода в релиз-ветках.

Я расскажу про наш путь от dev-кластера со свалкой кода до платформы, предоставляющей изолированные окружения. Это хороший пример автоматизации деплоя сложной распределенной системы с помощью configuration management-инструментов.

Стек технологий:
- AWS;
- Chef;
- Packer;
- Python;
- Teamcity.

В современной разработке git - это краеугольный камень. Разработчики получили возможность писать новые фичи в отдельных ветках кода, не мешая друг другу. Как следствие, у команды QA возникла необходимость тестировать эти новые фичи изолировано друг от друга до объединения кода в релиз-ветках.

Я расскажу про наш путь от dev-кластера со свалкой кода до платформы, предоставляющей изолированные окружения. Это хороший пример автоматизации деплоя сложной распределенной системы с помощью configuration management-инструментов.

Стек технологий:
- AWS;
- Chef;
- Packer;
- Python;
- Teamcity.

Advertisement
Advertisement

More Related Content

Slideshows for you (20)

Viewers also liked (12)

Advertisement

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

More from Ontico (20)

Advertisement

Recently uploaded (20)

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

  1. 1. Платформа для поставки счастья в команду QA Вячеслав Кузнецов @smith3v
  2. 2. Ecwid • SaaS-платформа для интернет- магазинов. • ~ 750 000 клиентов по всему миру. • ~ 100 000 000 посетителей в месяц. • 80 человек в команде. • Ульяновск, Самара, Казань, San Diego.
  3. 3. Operations • Доступность. • Надежность. • Безопасность. • Максимальная скорость от идеи до релиза.
  4. 4. QA • Подготовка и поддержка ботов. • Сопровождение релизов. • Проверка изменений на соответствие задаче.
  5. 5. На заре проекта • Десяток разработчиков. • SVN репозиторий. • All-in-one staging-сервер. • Обновление руками.
  6. 6. Команда растет • Больше изменений. • Тестирование до слияния с основным кодом. • Завели pre-staging сервер J
  7. 7. Переехали на Git • Изменение делается в отдельной ветке. • Тестовые серверы стали бутылочным горлышком.
  8. 8. Первый подход У нас уже есть configuration management, который готовит production-кластер! • Git • Chef • Bash • Jenkins
  9. 9. Запуск площадки • Передаем имя и версию; • Собираем все пакеты; • Создаем базы из шаблонов; • Регистрируем DNS; • Добавляем в Nginx; • Запускаем сервер EC2; • Дожидаемся результата.
  10. 10. Инфраструктура Package Storage Nginx EC2   instance Postgres Route53 Jenkins app.<name>.ecwid.com my.<name>.ecwid.com
  11. 11. Статистика • время запуска ~45 мин; • 15-30 сборок в день; • до 30 поломок в месяц.
  12. 12. Сложности • Поддержка bash-кода. • Хрупкая реализация.
  13. 13. Сложности • Общее пространство имен в *.ecwid.com. • Ручное бессмертие.
  14. 14. Сложности • История версий баз в файлах. • Сложное добавление сервисов.
  15. 15. Песочницы S3 Nginx EC2   instance RDS Teamcity *<name>.sandbox.ecwid.com
  16. 16. Песочницы
  17. 17. Песочницы
  18. 18. Песочницы • <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
  19. 19. Статистика • ~15 мин время запуска; • ~50 сборок в день; • единичные поломки; • ~$1500 в месяц.
  20. 20. Песочницы. Плюшки • Бессмертные площадки и остановка ненужных. • Простое добавление новых сервисов.
  21. 21. Песочницы. Плюшки • Нормальное управление базами. • Нормальная работа с доменами.
  22. 22. Sandy
  23. 23. Sandy • Что запущено? • Есть бессмертные? • История.
  24. 24. Интеграция с чатом
  25. 25. Интеграция с чатом
  26. 26. Интеграция с чатом
  27. 27. Оптимизации • Базовый образ. • Ночное тестирование. • Предварительная сборка пакетов. • ssh-dev, psql-sand, ectail.
  28. 28. Платформа Дали возможность добавлять новые компоненты без участия Ops: • Шаблон конфига в пакете; • Добавление одной командой.
  29. 29. Итог • Системные решения эффективнее. • Больше свободы, меньше блокировок. • Тестовая среда ≈ реальной.
  30. 30. Спасибо
  31. 31. Get better • hangops.ru • devopsru.com

×