Выкладываем запись с Ozon Tech PostgreSQL Meetup. Ранее я уже описывал нашу инфраструктуру: весь PostgreSQL основан на виртуальных машинах — 2К в тестовой среде и ~8К в проде, это около 2К кластеров баз данных. Так как у нас микросервисная архитектура, мы придерживаемся принципа 1 сервис = 1 база. Нагрузка на базы может быть приличная: 2-2,5 млн транзакций в секунду, а WAL-трафик порядка 1.5 ГБ/c.
Рассказали, как наша команда управляет всей этой инфраструктурой, как пришли к парадигме выдачи базы по кнопке и как воплотили её в жизнь.
Как это было
Я рассказал, какой раньше была инфраструктура PostgreSQL в Ozon Tech и какой стала сейчас: ресурс в виде БД по кнопке, базы заказываются через it-crowd, горизонтально масштабируем и строим планы на большую автоматизацию работы инфраструктуры вокруг PostgreSQL.
Дима Васильев @vadv подробно рассказал, как это глубже у нас устроено: про виртуализацию и гипервизоры KVM.
Слайды
Григорий Смолкин @gsmol — об управлении бэкапами в высоконагруженной среде. Какие задачи выполняет система резервного копирования PostgreSQL и к чему мы стремимся.
Слайды
Андрей Бородин @x4m (Yandex.Cloud) сделал краткий обзор состояния резервного копирования в разных СУБД: любопытно порефлексировать, к чему мы привыкли в PostgreSQL, и чего нет в других продуктах.
Слайды
Круглый стол с представителями Ozon Tech, Yandex.Cloud, Postgres Pro и Авито. Модерировал (за что ему спасибо) наш разработчик в группе PostgreSQL DBA Дмитрий Бабуев.
Отвечали на вопросы (как реализовано шардирование, как взаимодействовать с разработчиками) и обсудили между собой боли и проблемы при построении инфраструктуры.
Рады всем, кто присоединился и задавал вопросы, получилось интересно. До новых встреч!
Комментарии (10)
maxim_ge
22.03.2022 16:562-2,5 млн транзакций в секунду
А можно подробнее про эти транзакции? Это транзакции на запись или запросы только на чтение тоже включены сюда? Если это все вместе, каково примерно соотношение записи и чтения?
slysha Автор
22.03.2022 17:50+1Отношение пишуших транзакций к читающим у нас около 1 к 10
chemtech
23.03.2022 07:47С помощью JDBC у вас read only SQL транзакции идут на leader или на реплики PostgreSQL ? Можете ли выложить минимальный пример JDBC SQL read only транзакции на реплику? Заранее спасибо.
slysha Автор
23.03.2022 18:58На реплики. Но часть нагрузки можно и на мастера отправлять чтобы всякие микро-оптимизации срабатывал на репликах.
chemtech
23.03.2022 07:46Вы получаете не используете Openstack и подобные решения, а используете KVM и libvirt.
slysha Автор
23.03.2022 19:03+2Нет, упор идет именно на то чтобы быть технологически независимыми от даже OpenSource решений.
Основной принцип почему так делаем - нам нужны фичи в продукте здесь и сейчас, простота в обслуживании, минимализм решения. Новые фичи внедряются по мере их надобности. Так же собственный продукт избавляет нас от зависимости от прихотей вендора OpenSource решения по поводу Pull Requests и всего что с этим связано
chemtech
23.03.2022 07:49Чем вы делаете provisioning ? Puppet? Ansible?
slysha Автор
23.03.2022 19:07+1Конфигурации для виртуалок пока еще частично доносятся ansible. Конфигурации постгреса доносятся через наш scm chiit в презентациях его упоминали.
Основной посыл перехода на собственное решение - скорость применения/отката изменений, снижение использования ресурсов при накатке конфигураций, технологическая независимость от решений которые есть на рынке.
сhiit компактный, быстрый и выполняет ровно те действия которые нам на текущий момент необходимы.
chemtech
Спасибо. Можете рассказать подробнее про hyperman? Нигде в интернете не нашел про него информацию.
slysha Автор
Пока это внутренняя разработка, но, я думаю, со временем мы сделаем ее доступной в открытом доступе