Size: a a a

2022 January 18

ИК

Иван Калининский... in Moscow Spark
так несколько etl как один большое etl - кидаем на вход, ожидаем на выходе =)
источник

SS

Semyon Sinchenko in Moscow Spark
Но это ведь уже интеграционное тестирование, а не юнит-тесты.
источник

G

Gev in Moscow Spark
О чем и речь. Автотестирование на уровне интеграции.
источник

ИК

Иван Калининский... in Moscow Spark
оно же может быть автоматизировано!
источник

SS

Semyon Sinchenko in Moscow Spark
> оно же может быть автоматизировано!
Конечно может быть автоматизировано, но не обязательно делать это на сборочных агентах, по аналогии с юнит тестами. То есть на реальном кластере создать "тестовую область", положить туда срез рельных данных и запускать.
источник

SS

Semyon Sinchenko in Moscow Spark
То есть это "отдельная кнопка".
1. Пуш в мастер
2. На агентах юнит тесты
3. На агентах сборка артефактов
4. С агентов деплой артефактов в хранилище
5. Запуск интеграционных скриптов "по кнопке", где тянутся новые артефакты и прогоняются кейсы на реальном кластере и данных
6. Деплой артефактов на прод

Ну я так это всегда видел.
источник

ИК

Иван Калининский... in Moscow Spark
синтетика - мой выбор, ведь работа с рил данными заблокирована. А синтетику и в тестах можно генерить.
Драй ран на проде вполне возможен, но не оч понимаю, в чём ценность, если уже есть автотесты, заслуживающие доверия
источник

PL

Pavel Lu in Moscow Spark
как вариант - иметь на проде 2 спарк-приложения - боевое и пред-боевое. Ну и на пред-боевом тестировать
источник

SS

Semyon Sinchenko in Moscow Spark
> Драй ран на проде вполне возможен, но не оч понимаю, в чём ценность, если уже есть автотесты, заслуживающие доверия
Сложность, объемы и время.
1. Я как-то писал генераторы данных, это на самом деле не самая простая задача. Особенно если надо проверить, что корректно работают джойны и фильтры.
2. Часто бывает, что какой-нибудь ошибочный джойн с дублями ключей вполне пройдет на синтетике, а на реальных объемах грохнется.
3. У меня запуски спарк-сессий и генерация данных (порядка 10к строк) докидывала 20-30 минут к времени на агентах. Если это личный кубер команды, то оно может и ок, а если это агенты в централизованном кубере компании, то это уже не совсем этично по отношению к другим командам и не самое целевое расходование средств.
источник

SS

Semyon Sinchenko in Moscow Spark
+100
источник

PL

Pavel Lu in Moscow Spark
😎😎
источник

ИК

Иван Калининский... in Moscow Spark
параллельный запуск, да, вариант, но со своими сложностями. В моём кейсе надо будет скрыть пред-боевые структуры, а потом заменять ими боевые (сложна)
источник

PL

Pavel Lu in Moscow Spark
это да. А можно сделать входные данные одни, а результаты разные?
источник

ИК

Иван Калининский... in Moscow Spark
можно, а зачем?
источник

PL

Pavel Lu in Moscow Spark
ну чтобы эту проблему решить
источник

PL

Pavel Lu in Moscow Spark
вообще эти 2 расчета могут быть оба боевые
источник

PL

Pavel Lu in Moscow Spark
просто переключаться туда сюда после релиза
источник

PL

Pavel Lu in Moscow Spark
сложно, зато все глюки прода ловить заранее
источник

ИК

Иван Калининский... in Moscow Spark
спасибо, в ближайшее время обсужу с коллегами эту идею
источник

ИК

Иван Калининский... in Moscow Spark
Спасибо
источник