В преддверии праздников не хочется заниматься рабочими моментами. Решил с вами поделиться новостью, а также обсудить её. Я регулярно читаю блог Cloudflare, там иногда бывают интересные новости. Некоторыми я делился с вами ранее. Я заинтересовался вот этой:
⇨ Xata Workers: client-side database access without client-side secrets
Название не очень информативное. Речь там идёт о serverless базе данных с доступом к хранимой информации через API - Xata. Мне стало интересно, что это такое, поэтому сходил на сайт и ознакомился. Технология мне показалась похожей по своей сути на объектные хранилища S3, поэтому думаю, что она станет популярной через некоторое время.
Идея там такая. Есть некая конструкция для хранения данных. Конкретно в Xata это связка из Postgresql, Kafka, Elasticsearch. Если я правильно понял описание структуры хранения, то данные хранятся в кластере PostgreSQL, по репликам они раскладываются через очередь Kafka, а одной из реплик является Elasticsearch. Таким образом решается вопрос традиционного хранения данных в SQL базе и использование Elasticsearch для функций аналитики, быстрого поиска, машинного обучения и т.д.
Доступ к данным через RESTful API. Я посмотрел синтаксис, он простой, легко читается даже не программистами. Соответственно и использовать его не сложно. Сейчас Xata в бета тесте, поэтому пользоваться можно бесплатно с некоторыми ограничениями. Как я понял, потом также останется лимитированный бесплатный тарифный план. Я зарегистрировался и немного попользовался этой БД. Удобный интерфейс для управления через браузер, примерно как это сейчас реализовано в S3 хранилищах у провайдеров.
Лично мне эта идея и технология показались очень интересными и полезными. Не удивлюсь, если будет сформирован какой-то общепринятый API для работы с подобными базами, а что там будет в бэкенде для хранения - не так важно. Как и сейчас не важно, где хранятся файлы в S3. Главное, чтобы был отказоустойчивый кластер с заданными параметрами доступа.
Подобная технология хорошо ложится в канву iac и serverless подхода, доля которого растёт год от года. Используется какой-то безсерверный код в облаке, статика хранится в S3, а данные в подобной БД. Идеальная структура, к примеру, для Telegram бота. Или для статичного сайта с JavaScript, где все запросы к данным реализованы на уровне API прямо в коде сайте.
Я знаю, что в комментариях наверняка появятся люди, которые станут писать, что облака это всё развод на деньги и информацию, надо хранить данные у себя и т.д. Но дело не в том, где вы купите размещение, а в самом подходе. Всю эту инфраструктуру вы можете разместить и у себя локально. Подход к разработке при этом не изменится.
#разное #devops