title

text

Андрей Черняков
Андрей Черняков UIS, CoMagic Разработчик баз данных, техлид
15:50 09 апреля
40 мин

pg_migration - система работы с кодом, как не дать программистам все сломать

Мы долгое время катили релизы на базы данных руками. Но когда их количество стало больше 50, выкладывать релизы руками стало больно, даже при наличии скриптов. Стало понятно, что нужен какой-то инструмент. Так как готовые инструменты нам не подошли, мы решили написать свою систему на основе пайплайнов ci/cd в gitlab.

В результате получилась удобная система работы с кодом: - автоматические проверки практически не дают сделать что-то не правильно (plpgsql_check, авто-тесты и т.д.) - исключается возможность расхождения кода в живой БД и в репозитории - включает в себя несколько утилит (написанных на python), которые можно использовать как в пайплайнах, так и непосредственно из консоли - поддерживаются два режима раскатки релизов: по кнопке из gitlab и полностью автоматический (по ключевому слову auto_deploy в сообщении к коммиту)

Видео

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

Другие доклады

  • Василий Пучков
    Василий Пучков ООО Главный эксперт
    40 мин

    JSONB и будущее реляционных СУБД - взгляд разработчика

    История сложных отношения реляционной и объектной моделей: - крепкие опоры и неразрешимые противоречия; - разные хорошие попытки - составные типы, классы, XML, JSON. JSONB - новый ответ и вопросы к нему. Ловушки и тупики, в которые может завести увлечение JSONB. Очевидные и неочевидные способы использования JSONB в разработке.

  • Павел Конотопов
    Павел Конотопов Postgres Professional руководитель кластерной группы
    40 мин

    Слон и Моська. Проблема фенсинга в кластерах PostgreSQL

    Довольно часто в кластерных конфигурациях PostgreSQL можно встретить настройку, отвечающую за ввод отказавшего ведущего сервера обратно в кластер в качестве реплики. Утилита pg_rewind выполнит синхронизацию данных между двумя серверами. Она копирует изменения из WAL-файлов основного сервера, которые не применялись на отстающем сервере (бывшем мастере). Однако без механизма fencing существует риск потери данных, если оба сервера (старый мастер и новый мастер) активны одновременно и оба принимают изменения данных. Эта ситуация называется split-brain, возникновение ее катастрофично для целостности данных. Поговорим о том, как минимизировать риски потери данных, какие есть варианты fencing-а, какие практики стоит использовать и в каких ситуациях.

  • Владимир Комаров
    Владимир Комаров Сбербанк-Технологии Архитектор
    40 мин

    Безопасность баз данных

    Что вы можете вспомнить по ключевому слову «безопасность»? Скорее всего, только ролевую модель доступа. На самом деле арсенал средств защиты современных СУБД гораздо шире. Если вам незнакомы такие аббревиатуры, как RLS, FGAC, DLP, PAM, WAF, LBAC, TDE, KMS и масса других, то этот доклад — для вас. Мы расшифруем эти иероглифы, поговорим о том, какие из них действительно важны, а главное — когда и от чего надо защищать базу данных.

  • Владимир Ситников
    Владимир Ситников PostgreSQL JDBC maintainer Performance Engineer
    40 мин

    Механизм server-prepared statements в реализации PostgreSQL JDBC

    Доклад о базовых принципах serever-prepared statements, и о фактической реализации в PostgreSQL JDBC. Планируется рассмотреть как базовые механизмы, так и краевые случаи.

    Примерный список тем:

    1) Как задействовать server-prepared statements
    2) Какие настройки влияют на server-prepared
    3) server-prepared vs batch execution
    4) server-prepared vs concurrent executions (несолько разных подключений)
    5) server-prepared vs connection poolers
    6) Как понять, что server-prepared не работает
    7) binary/text parameter/result encoding
    8) server-prepared vs типы данных (грубо говоря, timestamptz vs timestamp vs text encoding)