александр дубровин, готовим тестовое окружение, или...
TRANSCRIPT
Готовим тестовое окружение, или сколько тестовых стендов вам нужно
Дубровин Александр,Superjob.ru
Дубровин Александр, Superjob.ru
Занимаюсь внутренней инфраструктурой проекта, тестовым окружением
2
Немного истории...
3
Немного истории...Один тестовый стенд.
4
Немного истории...Один тестовый стенд.Три тестовых стенда.
5
Немного истории...Один тестовый стенд.Три тестовых стенда.Несколько тестовых стендов для команды.
6
Немного истории...Один тестовый стенд.Три тестовых стенда.Несколько тестовых стендов для команды.Неконтролируемое увеличение количества тестовых стендов.
7
Проблема
8
ПроблемаЧто у нас было:• большой сложный проект;• около 30 тестовых стендов;• много задач в тестировании
одновременно.
9
ПроблемаЧто у нас было:• большой сложный проект;• около 30 тестовых стендов;• много задач в тестировании
одновременно.
Чего у нас не было:• понимания, какой стенд использовать;• изоляции.
10
Идея
12
ИдеяЗачем много тестовых стендов?
13
ИдеяЗачем много тестовых стендов?Удобнее создавать, только когда он нужен.
14
ИдеяЗачем много тестовых стендов?Удобнее создавать, только когда он нужен.Тестовый стенд под каждую версию кода.
15
Что делать?
16
Что делать?Независимые стенды с похожим окружением.
17
Что делать?Независимые стенды с похожим окружением.Возможность быстро создавать такие стенды.
18
Что делать?Независимые стенды с похожим окружением.Возможность быстро создавать такие стенды.Создавать такие стенды как можно проще.
19
Что делать?Независимые стенды с похожим окружением.Возможность быстро создавать такие стенды.Создавать такие стенды как можно проще.Легкая в управлении система.
20
Как делать?
21
Как делать?Docker-compose.
22
Как делать?Docker-compose.200 строк на bash.
23
Как делать?Docker-compose.200 строк на bash.Разделяем большой монолит на сервисы.
24
Как делать?Docker-compose.200 строк на bash.Разделяем большой монолит на сервисы.Поднимаем dns.
25
Как делать?Docker-compose.200 строк на bash.Разделяем большой монолит на сервисы.Поднимаем dns.Автоматизируем
26
Что получилось
27
Что получилосьСтолько тестовых серверов, сколько нужно сейчас.
28
Что получилосьСтолько тестовых серверов, сколько нужно сейчас.Не нужно искать тестовый стенд – его нужно развернуть.
29
Что получилосьСтолько тестовых серверов, сколько нужно сейчас.Не нужно искать тестовый стенд – его нужно развернуть.Управление простыми скриптами.
30
Ложка дегтя
31
Ложка дегтяОбщие ресурсы.
32
Ложка дегтяОбщие ресурсы.Время общее для всех контейнеров.
33
Ложка дегтяОбщие ресурсы.Время общее для всех контейнеров.Конфигурация сети.
34
Итог
35
ИтогБыло: «Вася, а какой тестовый свободный – мне свою задачу раскатить потестировать».
36
ИтогБыло: «Вася, а какой тестовый свободный – мне свою задачу раскатить потестировать».
Стало: «Жму кнопку и через полторы минуты получаю новый тестовый стенд под конкретную задачу».
37
ИтогБыло: «Тебе тестовый еще нужен? ты говорил на день, а уже три прошло!».
38
ИтогБыло: «Митя, тебе тестовый еще нужен? ты говорил на день, а уже три прошло!».
Стало: «Для каждой задачи есть отдельный тестовый стенд».
39