Kinto

Kinto — это минималистичный сервис хранения JSON с возможностями синхронизации и совместного использования. Он предназначен для простоты использования и простоты самостоятельного размещения. Альтернатива с открытым исходным кодом таким коммерческим продуктами как Firebase и Parse.

Зачем нужен Kinto?

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

Сейчас работает много бесплатных сервисов предоставляющих средства хранения данных, но вопрос честности и надёжности владельцев бесплатного сервиса всегда будет открыт и главным гарантом сохранности данных является не владелец сервиса, а сам разработчик приложения.

Решив хранить данные на своих серверах перед разработчиком встаёт вопрос связанный с технологическим стеком, либо реализовать свой сервис хранения данных приложения, покупать готовое решение рассчитанное на использование в больших компаниях. Оба подхода потребуют нетривиального количества времени и опыта для настройки нового сервера для каждого нового проекта.

Kinto решает данные вопросы, обмен данными между клиентом и сервером происходит в формате JSON, полученные данные хранятся в СУБД Postgresql. Используя Kinto сократится общее время обслуживания всего технологичного стека, решая вопросы с безопасностью и масштабированием один раз для всех приложений.

Так же можно положительно отметить возможность кеширования отдаваемых данных в Redis и возможность интеграции с сетью доставки контента.

Примеры использования

  • Общая веб база-данных: хранение JSON для мобильных и веб-приложений, игр или IoT…
  • Быстрый прототип веб-приложений: серверное приложение с CRUD-операциями уже готово.
  • Приложения в виде статических файлов: размещайте свои приложения на GitHub Pages, а свой Kinto-сервер размещайте в другом месте.
  • Offline-first приложения: данные могут храниться локально и публиковаться позже.
  • Создавайте приложения для совместной работы с обновлениями в реальном времени.
  • Синхронизация данных приложения между различными устройствами.
  • Доставка контента: управляйте удаленным контентом или настройкой ваших приложений через интерфейс администрирования.
  • Сбор данных: легко собирать структурированные данные из опросов, форм, аналитики.

Основные компоненты

В инфраструктуре Kinto три основных компонента, которые по мере увеличения нагрузки можно легко масштабировать:

  • Postgresql: хранение данных
  • Redis — кеш
  • Kinto
  • Nginx
Упрощенная схема компонентов установки Kinto

Заключение

Kinto достойная альтернатива с открытым исходным кодом таким коммерческим продуктами как Firebase и Parse.

Стоит иметь в виду, что любое техническое решение необходимо настраивать для работы в условиях высокой нагрузки, например:

  • Масштабирование СУБД Postgresql: Вертикально масштабировать — добавить оперативную память, улучшить дисковую систему. Горизонтально масштабировать — конфигурации master-slave (увеличивать количество slave-нод) или master-master
  • Масштабирование сервера Redis
  • Кеширование как на стороне клиента, так и на стороне сервера
  • Распределение нагрузки: запускать дополнительные экземпляры Kinto на отдельных серверах или контейнерах.

Ссылки по теме

Поделиться ссылкой: