Готовим тестовое
окружение, или
сколько тестовых
стендов вам нужно
Александр Дубровин
SuperJob
SuperJob — это:
1 млн
пользователей
в сутки
более
20 млн
резюме
2 млн
приглашений
в месяц
Немного истории
Немного истории
Немного истории
Dev
Немного истории
Dev
test-app
Немного истории
Dev
test-app
Немного истории
Dev
QA
test-app
Немного истории
Dev
QA
test-app
Немного истории
Dev
QA
test-app
Немного истории
Team-a
Team-b
QA
test-app
Немного истории
Team-a
Team-b
QA
test-app
Немного истории
Team-a
Team-b
QA
test-app
Немного истории
Team-a
Team-b
QA
test-app
Немного истории
Team-a
Team-b
QA
test-app
Немного истории
Team-a
Team-b
QA
PM
test-app
Немного истории
Team-a
Team-b
QA
PM
test-app
Немного истории
Team-a
Team-b
QA
PM
CI
test-app
Немного истории
Team-a
Team-b
QA
PM
DBDB
Cache
RMQ
CI
test-app
Идея
Идея

Зачем много тестовых стендов?
Идея

Зачем много тестовых стендов?

Тестовый стенд – только когда он нужен.
Идея

Зачем много тестовых стендов?

Тестовый стенд – только когда он нужен.

Тестовый стенд под каждую версию кода.
Идея

Зачем много тестовых стендов?

Тестовый стенд – только когда он нужен.

Тестовый стенд под каждую версию кода.

Независимые стенды с похожим окружением.
Идея

Зачем много тестовых стендов?

Тестовый стенд – только когда он нужен.

Тестовый стенд под каждую версию кода.

Независимые стенды с похожим окружением.

Возможность быстро создавать такие стенды.
Идея

Зачем много тестовых стендов?

Тестовый стенд – только когда он нужен.

Тестовый стенд под каждую версию кода.

Независимые стенды с похожим окружением.

Возможность быстро создавать такие стенды.

Легкая в управлении система.
Суровая реальность
Суровая реальность

Большой сложный проект
Суровая реальность

Большой сложный проект

Сервис в 4х доменных зонах
Суровая реальность

Большой сложный проект

Сервис в 4х доменных зонах

Куча поддоменов
Сказано — сделано!
Сказано — сделано!

Docker/docker-compose
Сказано — сделано!

Docker/docker-compose

Распиливаем монолит
Сказано — сделано!

Docker/docker-compose

Распиливаем монолит выделяем сервисы
Сказано — сделано!

Docker/docker-compose

Распиливаем монолит выделяем сервисы

Настраиваем сеть
Сказано — сделано!

Docker/docker-compose

Распиливаем монолит выделяем сервисы

Настраиваем сеть

Поднимаем dns и api
Сказано — сделано!

Docker/docker-compose

Распиливаем монолит выделяем сервисы

Настраиваем сеть

Поднимаем dns и api

Делаем ssl-ca
Сказано — сделано!

Docker/docker-compose

Распиливаем монолит выделяем сервисы

Настраиваем сеть

Поднимаем dns и api

Делаем ssl-ca

Автоматизируем
Заработало!
Заработало!

Изначально – тестирование
Заработало!

Изначально – тестирование
Заработало!

Изначально – тестирование

Демо хосты
Заработало!

Изначально – тестирование

Демо хосты
Заработало!

Изначально – тестирование

Демо хосты

Boost для ci
Заработало!

Изначально – тестирование

Демо хосты

Boost для ci
Заработало!

Изначально – тестирование

Демо хосты

Boost для ci

Управление стендами
Заработало!

Изначально – тестирование

Демо хосты

Boost для ci

Управление стендами
Заработало!

Изначально – тестирование

Демо хосты

Boost для ci

Управление стендами

Общее время
Заработало!

Изначально – тестирование

Демо хосты

Boost для ci

Управление стендами

Общее время
Итог
Итог
Было: «Вася, а какой тестовый свободный – мне свою
задачу раскатить потестировать».
Итог
Было: «Вася, а какой тестовый свободный – мне свою
задачу раскатить потестировать».
Стало: «Жму кнопку и через полторы минуты получаю
новый тестовый стенд под конкретную задачу».
Итог
Итог

Не нужно искать тестовый стенд – его нужно
развернуть.
Итог

Не нужно искать тестовый стенд – его нужно
развернуть.

Все тесты в один клик
Итог

Не нужно искать тестовый стенд – его нужно
развернуть.

Все тесты в один клик

Столько тестовых стендов, сколько нужно сейчас.
Александр Дубровин
SuperJob
dubrovin@superjob.ru

Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Александр Дубровин (Superjob)