Список докладов конференции PgConf.Russia 2017

Тестовая среда по требованию

Radoslav Glinsky
Skype (Microsoft), Software developer - PostgreSQL tooling

Разработчик БД в компании Skype c 2011. В начале карьеры принимал участие в разработке и тестировании проектов Skype на базе PostgreSQL, связанных с данными о контактах, авторизацией и интеграцией. С 2013 г. работает в команде Database Platform, предоставляющей сервис "PostgreSQL как услуга" для внутренних нужд команд разработки Skype. В его сферу обязанностей входит автоматизация и разработка инструментария для внедрения БД, репликации, написание асинхронных скриптов для БД, а также разработка внутреннего хранилища данных.

Вы тестируете свои релизы PostgreSQL в специально настроенной тестовой среде, прежде чем залить их в продакшен? Вы уверены, что ваша тестовая среда соответствует требованиям продуктовой среды и находится в актуальном состоянии?

В компании Skype мы сталкиваемся c разнообразными проблемами, связанными с тестированием баз данных: - Обобщение и отражение в тестовой среде всего многообразия вариантов продуктовой среды для тысяч реализаций PostgreSQL, связанных с удаленным вызовом процедур (RPC) и репликациями, серверной инфраструктурой, а также внешними скриптами БД. - Постоянно растущие требования к поддержке новых аппаратных средств, недостаточная очистка тестовых данных. - Различия между тестовой и продуктовой средой со временем накапливались. Выявление новых проблем и приведение тестовой инфраструктуры в соответствие продакшену отнимало много сил и времени.

Вместо того, чтобы постоянно бороться с новыми проблемами, мы в Skype решили пойти другим путем – полностью перестроить нашу тестовую инфраструктуру для PostgreSQL на основе реальной продуктвой среды! Мы делаем это регулярно, или когда требуется. Мы полностью автоматизировали клонирование продуктовой среды в упрощенный вариант тестовой: восстановление структур данных, процедур, ролей, репликаций, внешних скриптов БД, конфигураций, и т.д., включая даже механизмы аварийного переключения БД, создаются автоматически. Мы также разработали решение для сохранения индивидуальных настроек и данных для конкретных тестовых сценариев в обновленных версиях. В результате сегодня мы уверены, что наша тестовая инфраструктура полностью соответствует продуктовой. Она не устареет и не “раздуется”. И мы можем легко создать столько ее копий, сколько нужно. Поддержка тестовой инфраструктуры стала гораздо проще, и мы хотим поделиться нашим опытом с сообществом PostgreSQL.

ВИДЕО

Слайды