Бессерверные платформы для работы с PostgreSQL: что интересного для разработчиков

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
image

Об оптимизации работы с PostgreSQL уже много рассказывали (в этом году, среди прочего, запустили DBaaS PostgreSQL). Однако тема далеко не исчерпана. Подготовили для вас обзор нового инструмента, который поможет работать с базами данных PostgreSQL, не задумываясь о базовой серверной инфраструктуре.

Бессерверные вычисления приобрели популярность в 2010-х и с тех пор остаются актуальными. В отличие от выделенных серверов, бессерверные модули запускаются при необходимости для каждого события. Технология позволяет не резервировать вычислительные ресурсы заранее и экономить.


Рынок бессерверной архитектуры


Недавно аналитики компании Verified Market Research опубликовали следующие данные: к 2028 году объем serverless-рынка превысит 36 млрд долларов. Хотя отдельных данных по российскому сегменту нет, для нашей страны актуален вопрос замещения сервисов бессерверных вычислений. Один из вариантов — open source платформы, которые можно развернуть самостоятельно. Среди таких решений — OpenLambda, OpenFaaS, Apache OpenWhisk или Kubeless.

Правда, с ними не всегда удобно работать: многие решения обладают очень широкой функциональностью, избыточной в рамках небольшого домашнего или тестового корпоративного проекта. А некоторые из открытых платформ, в частности Kubeless, более не поддерживаются разработчиками.

Но недавно группа инженеров представила бессерверную платформу для работы с базами данных PostgreSQL — Neon. Изначально проект назывался Zenith, но прямо перед запуском разработчики решили изменить название. Что интересно, в комментариях к коду все еще можно встретить упоминания оригинального имени, но, по словам авторов, они их постепенно меняют.

Как работает Neon


image

Уровень хранения данных в Neon представлен кластером Kubernetes, информация в котором распределяется автоматически. Система реализует механизм копирования при записи — copy-on-write (COW), когда для внесения изменений предварительно создается копия данных. Также можно формировать контрольные точки и оперативно восстанавливать состояние базы данных.

Что касается движка БД, то он содержит два ключевых компонента: WAL-сервис, собирающий журналы предзаписи (WAL), и pageserver, управляющий нагрузкой на вычислительные узлы. Последний состоит из репозитория (реализация хранилища Neon), WAL-приемника и страничного сервиса, который обменивается информацией с вычислительными узлами, и системы построения страниц баз данных на основе образов.

Neon предоставляет бесплатный доступ к бессерверному инстансу. После получения доступа можно начать работу со встроенным SQL-редактором или подключить привычный Postgres-клиент — например, psql или dbeaver. В то же время можно скомпилировать и развернуть проект на локальной машине или в частном облаке — инструкции есть в репозитории.

Плюсы и минусы открытой платформы


Поскольку проекту Neon чуть больше года, разработчики еще не передали в open source все имеющиеся ресурсы. Например, в репозитории отсутствует код панели управления Neon Control Plane для оркестровки узлов Kubernetes. Из-за этого платформа не позволяет автоматически сворачивать неиспользуемые кластеры баз данных — тут понадобится дополнительная настройка. Хотя авторы обещают, что исходники и документация появятся уже в ближайшее время.

Сама по себе бессерверная платформа позволяет не думать об инфраструктуре и выделении дополнительных вычислительных ресурсов. Однако за удобство приходится платить временем обработки запросов: serverless-конфигурации могут работать на 15% медленнее. Хотя в Neon утверждают, что на большинстве нагрузок производительность баз данных сопоставима с классическими решениями — за рядом исключений. В частности, скорость удаления страниц в кэше ограничена пропускной способностью pageserver’а. При большом количестве изменений она превращается в «бутылочное горлышко».

Neon уже позволяет «откатить» коммит и БД до предыдущего состояния. Однако не умеет модифицировать отдельные схемы, так как уровень хранения ничего о них не знает и отделен от уровня вычислений.

Разработчики также экспериментируют с масштабированием ресурсов. Сейчас перед вычислительным узлом установлен кастомный прокси — такая схема позволяет оперативно подменять размер контейнеров, но плохо совместима с «длинными транзакциями».

В целом Neon может стать неплохой заменой привычным бессерверным платформам. Дело в том, что разные сервис-провайдеры реализуют одни и те же функции разными способами. При смене партнера практически наверняка приходится обновлять операционные инструменты. Открытость Neon должна помочь обойти проблему vendor lock-in: при желании развернуть платформу можно на любой инфраструктуре.

Еще несколько полезных инструментов для работы:

  • Как ускорить выполнение запросов PostgreSQL в 100 раз
  • Облачные сети: что предлагает изолированный VPN
  • Падение Звезды Смерти: почему сканирование шаблонов IaC так важно
  • Как провайдер помогает выстроить комплексную защиту от киберугроз


Источник: https://habr.com/ru/company/cloud_mts/blog/685464/


Интересные статьи

Интересные статьи

Представьте себе крупную организацию с сотнями моделей машинного обучения, которые нуждаются в тренинге и регулярной оценке. Любое небольшое изменение в датасетах для обучения может существенно повлия...
Здравствуйте, Хабровчане! В этой статье мы проведем обзор новой линейки программно-аппаратных комплексов АЭРОДИСК Machine-V с предустановленной российской системой виртуализации АИСТ и гиперконвергент...
Всем привет, меня зовут Максим Крупенин, я работаю Data & Analytics Solution Architect в EPAM Systems. За 4 года работы в EPAM мне пришлось поработать в разных проект...
Процесс знакомства с компаниями, прохождения многочисленных cобеседований и технические интервью порой очень утомителен и вызывает много стресса как у кандидатов, так и у...
Если Вы используете в своих проектах инфоблоки 2.0 и таблицы InnoDB, то есть шанс в один прекрасный момент столкнуться с ошибкой MySQL «SQL Error (1118): Row size too large. The maximum row si...