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

в 7:50, , рубрики: digital ocean, docker, docker cloud, java, open source, orientdb, Orienteer, wicket, Блог компании Orienteer, Разработка веб-сайтов, метки:

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

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

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

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

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

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

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

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
  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
  2. Придумываем Docker ID (aka username). Рекомендую использовать только нижний регистр со знаком “-”: если в будущем захотите использовать Docker весьма тесно и будете выпускать свои образы для контейнеров, будет проще адресовывать
  3. Задаем email и пароль
  4. Подтверждаем email, и всё: вы зарегистрированы!

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

  1. Идем на Digital Ocean. Рекомендую использовать эту реферальную ссылку, так как это даст вам дополнительные $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

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

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

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

Автор: Orienteer

Источник

Поделиться новостью

* - обязательные к заполнению поля