Stateful Applications". При обновлении stateful-приложений работающих с БД часто возникают трудноуловимые ошибки и традиционные методы (канареечные релизы, роллинг-обновления, cине-зелёное развёртывание) плохо эти ошибки выявляют из-за разделяемого состояния. Стандартные тесты (юнит- и интеграционные) не проверяют взаимодействие разных версий во время обновления. В статье предлагается использование фреймворка для сравнительного тестирования двух версий приложения (v1 - текущая, v2 - новая) на идентичность поведения. Фреймворк работает поверх существующего Postgres без модификации кода СУБД, его работа разделяется на три этапа: - Ветвление - создание лёгких, изолированных веток исходной базы данных без её физического копирования. Ветвление реализовано для PostgreSQL с помощью вспомогательных таблиц вставки, удаления и представлений с триггерами. Создание ветки занимает <100 мс независимо от размера БД. - Воспроизведение - выполнение последовательностей клиентских запросов (а не отд
Интересная статья про использование сравнительного тестирования для приложений с состоянием - "Vive la Différence: Practical Diff Testing of
4 июня4 июн
1 мин