- PVSM.RU - https://www.pvsm.ru -

Свой BaaS c моделированием предметной области, скриптами и многим другим за полчаса

Сегодня расскажем и покажем как за полчаса поднять свой Backend as a Service (BaaS) с весьма интересными возможностями.

Свой BaaS c моделированием предметной области, скриптами и многим другим за полчаса - 1

BaaS — это веб-приложение, которое работает в облаке и предоставляет все необходимое для бизнес/мобильных приложений и сайтов (front-end). BaaS как минимум позволяет:

  • Управлять пользователями и ролями
  • Моделировать предметную область
  • Получать доступ к данным через REST
  • Управлять самими данными (база данных)

Вот здесь [1] уважаемый yurash [2] собрал основные на 2012 год BaaS-системы. Сейчас их значительно больше, но в плане вопросов, которые задают люди о BaaS-платформах, статья актуальна. Кстати, если интересует текущий рынок BaaS (и BAP — business application platform), то могу поделиться в следующей статье.

Что берем для создания BaaS

  • Orienteer [3] — конструктор бизнес-приложений (business application platform) с открытым исходным кодом [4]. В своей основе Orienteer использует OrientDB [5] — NoSQL мульти-парадигмная база данных с крутыми возможностями прямо из коробки.
  • Docker Cloud [6] — свободная платформа для развертывания в облаке контейнеров с приложениями Docker. На Хабре много [7] статей [8] про Docker [9].

BaaS на основе Docker-Orienteer позволяет быстро создавать приложения и быстро вносить изменения в уже имеющиеся приложения. При этом у системы низкий порог вхождения: простейшее приложение может создать человек, не знакомый с базами данных и программированием.
Связка BaaS-Docker может быть полезна и сервис-провайдерам, малым дизайн студиям и менеджерам in-house дата-систем.

Что получим в итоге

  1. Конструктор модели данных
  2. Широкий список типов данных: от примитивных (INTEGER, STRING и т.п.) до комплексных (LINK, EMBEDDED, LINKMAP, EMBEDDEDMAP), SPATIAL
  3. Экранные формы и виджеты для создания объектов спроектированной модели
  4. Управление пользователями и ролями
  5. Серверные скрипты на JavaScript/SQL
  6. REST-интерфейс с динамическим добавлением/изменением/удалением своих функций
  7. Проектирование и исполнение бизнес-процессов BPMN на основе Camunda [10]
  8. Модульная архитектура для гибкого расширения через java, если очень понадобится

Развертываем

Вот он наш план на ближайшие полчаса

  1. Регистрируемся на Docker Cloud
  2. Регистрируемся на Digital Ocean (AWS, Azure и т.п.)
  3. Связываем Docker Cloud и Digital Ocean: создаем свою ноду
  4. Создаем и запускаем свой сервис Orienteer
  5. Настраиваем под себя

Регистрация на Docker Cloud

Docker Cloud в плане процедуры регистрации не отличается чем-то особенным от других сервисов в интернете.

  1. Заходим на Docker Cloud [6]
  2. Придумываем Docker ID (aka username). Рекомендую использовать только нижний регистр со знаком “-”: если в будущем захотите использовать Docker весьма тесно и будете выпускать свои образы для контейнеров, будет проще адресовывать
  3. Задаем email и пароль
  4. Подтверждаем email, и всё: вы зарегистрированы!

Регистрация на Digital Ocean

  1. Идем на Digital Ocean [11]. Рекомендую использовать эту реферальную ссылку [12], так как это даст вам дополнительные $10
  2. Регистрация еще проще чем на Docker Cloud: задаете email и пароль
  3. При регистрации рекомендую использовать promo-code от Docker Cloud, который даст вам еще $20. Чтобы узнать его, зайдите в Cloud Settings на Docker Cloud. Вы увидите что-то типа этого: Свой BaaS c моделированием предметной области, скриптами и многим другим за полчаса - 2
  4. Подтверждаете email и всё: вы зарегистрированы

Связываем Digital Ocean и Docker Cloud

  1. Идем на знакомую страницу Docker Cloud > Cloud Settings (см. картинку выше)
  2. В строке Digital Ocean нажимаем на перечеркнутую розетку
  3. Авторизуем Digital Ocean для Docker Cloud’а (то есть, вводим email и пароль докера)
  4. Готово

Создаем свой сервис Orienteer

  1. Прежде всего надо создать как минимум одну ноду, на которой будем запускать наш BaaS. Для этого на Docker Cloud:
    • Идем в Node Clusters и нажимаем Create
    • В пункте Providers выбираем Digital Ocean
    • Указываем регион
    • Выбираем тип ноды. Рекомендую выбирать с не менее чем 1 Гб памяти
    • Жмем Create. Вы увидите что-то вроде картинки ниже. Docker Cloud сам закажет, установит, настроит и запустит ноду на Digital Ocean

    Свой BaaS c моделированием предметной области, скриптами и многим другим за полчаса - 3

  2. Осталось совсем чуть-чуть: запустить свою копию Orienteer из образа Docker. Orienteer — гомогенное приложение: все свое носит с собой. Поэтому создавать Docker Stack не понадобится. Нужен лишь сам сервис.
    • Идем в Services и нажимаем Create
    • В предложенном списке сверху выбираем Public Services
    • В блоке слева вводим критерий поиска: orienteer/orienteer
    • Выбираем именно orienteer/orienteer и попадаем на такую страницу:
      Свой BaaS c моделированием предметной области, скриптами и многим другим за полчаса - 4
    • Из всего множества настроек единственное, что обязательно необходимо настроить — это порты, доступные снаружи. Например, так:
      Свой BaaS c моделированием предметной области, скриптами и многим другим за полчаса - 5
    • Жмем Create & Deploy
  3. Придется подождать, пока образ Docker будут скачан на нашу ноду и запущен. Обычно это занимает не больше 3 минут. В итоге вы увидите что-то как на картинке ниже.
    Свой BaaS c моделированием предметной области, скриптами и многим другим за полчаса - 6
    Жмем на ссылку и попадаем на наш собственный BaaS на основе Orienteer. Чтобы войти в систему используйте логин/пароль по умолчанию: admin/admin
    Свой BaaS c моделированием предметной области, скриптами и многим другим за полчаса - 7

Настраиваем под себя

Свой BaaS c моделированием предметной области, скриптами и многим другим за полчаса - 8

Для настройки крайне рекомендую обратиться к официальной документации [13], а в частности к главе по созданию собственного бизнес приложения [14] (в формате walkthrough).
Настройку под конкретное ваше приложение можно условно разделить на следующие шаги:

  1. Создать модель данных
  2. Сконфигурировать модель ролей и пользователей
  3. Раздать права по ролям/пользователям
  4. Добавить необходимые скрипты исполняемые на серверной стороне
  5. Настроить интерфейс: виджеты, отчеты, графики, перспективы и т.д.

Нет предела совершенству, поэтому доводить напильником можно до бесконечности: вводя свои виджеты, свои форматы экспорта, бизнес процессы, печатные отчеты, нотификации и т.д. Если есть вопросы по дальнейшей настройке под ваши нужды: всегда рады помочь!

Автор: Orienteer

Источник [15]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/java/200116

Ссылки в тексте:

[1] здесь: https://habrahabr.ru/post/150729/

[2] yurash: https://habrahabr.ru/users/yurash/

[3] Orienteer: http://orienteer.org/

[4] с открытым исходным кодом: https://github.com/OrienteerBAP/Orienteer

[5] OrientDB: http://orientdb.com/

[6] Docker Cloud: https://cloud.docker.com/

[7] много: https://habrahabr.ru/post/310460/

[8] статей: https://habrahabr.ru/post/277699/

[9] про Docker: https://habrahabr.ru/company/infobox/blog/237405/

[10] Camunda: https://camunda.org/

[11] Digital Ocean: https://www.digitalocean.com/

[12] эту реферальную ссылку: https://m.do.co/c/c3f69c691428

[13] официальной документации: https://orienteer.gitbooks.io/orienteer/content/

[14] главе по созданию собственного бизнес приложения: https://orienteer.gitbooks.io/orienteer/content/developing_the_data_model.html

[15] Источник: https://habrahabr.ru/post/312844/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best