Архив докладов конференции PgConf.Russia 2015

Реализация непрерывной доставки как практики разработки программного обеспечения в рамках Postgres-ориентированного решения

Артём Панчоян

Affinitas GMBH

Данный доклад описывает, как технология непрерывной доставки (continuous delivery) реализована для Postgres-ориентированного решения, обрабатывающего запросы от миллионов пользователей в день в 25 странах мира для сервиса eDarling.

Иногда при проектировании высоконагруженных критически важных систем, ИТ архитекторы решают реализовывать часть бизнес-логики с помощью хранимых процедур (очевидные примеры: хранилище данных, финансовые системы). Такое решение может иметь множество достоинств и недостатков.

Одним из существенных недостатков, которые мы наблюдаем в нашей работе, является отсутствие общедоступной поддержки таких современных практик разработки программного обеспечения как непрерывная интеграция (continuous integration) и непрерывная доставка (continuous delivery).

Для процесса непрерывной интеграции были разработаны собственные инструменты компании, такие как:

  • dpm (database package manager) - для развертывания версионированных postgres схем в базу данных (могут содержать функции, типы, триггеры, дополнительные данные и изменения в структуре таблиц). Пакет написан нами с использованием идей и наработок многих свободно распространяемых компонент (например, https://github.com/gilt/schema-evolution-manager или https://github.com/trustly/fdiff, или https://github.com/depesz/Versioning)
  • pg_ci - собственно сервер для непрерывной интеграции
Я покажу, как это все работает и какой нам это дало выигрыш в скорости разработки и стабильности системы.

Слайды

RU

EN