Свій BaaS c моделюванням предметної області, скриптами і багатьом іншим за півгодини

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

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. Ви побачите щось типу цього:
  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

  2. Залишилося зовсім трохи: запустити свою копію Orienteer з образу Docker. Orienteer — гомогенне додаток: все своє носить із собою. Тому створювати Docker Stack не знадобиться. Потрібний лише сам сервіс.
    • Йдемо у Services і натискаємо Create
    • У запропонованому списку зверху вибираємо Public Services
    • В блоці ліворуч вводимо критерій пошуку: orienteer/orienteer
    • Вибираємо саме orienteer/orienteer і потрапляємо на сторінку:

    • З усього безлічі налаштувань єдине, що обов'язково необхідно налаштувати — це порти, доступні зовні. Наприклад, так:

    • Тиснемо Create & Deploy


  3. Доведеться почекати, поки образ Docker будуть викачаний на нашу ноду і запущений. Зазвичай це займає не більше 3 хвилин. В результаті ви побачите щось як на картинці нижче.

    Тиснемо на посилання і потрапляємо на наш власний BaaS на основі Orienteer. Щоб увійти в систему використовуйте логін/пароль за замовчуванням: admin/admin

Налаштовуємо під себе

Для налаштування вкрай рекомендую звернутися до офіційній документації, а зокрема чолі зі створення власного бізнес програми (у форматі walkthrough).
Налаштування під конкретне вашу програму можна умовно розділити на наступні кроки:
  1. Створити модель даних
  2. Сконфігурувати модель ролей і користувачів
  3. Роздати права за ролями/користувачам
  4. Додати необхідні скрипти, що виконуються на стороні сервера
  5. Налаштувати інтерфейс: віджети, звіти, графіки, перспективи і т. д.
Немає межі досконалості, тому доводити напилком можна до безкінечності: вводячи свої віджети, свої формати експорту, бізнес-процеси, друковані звіти, нотифікації і т. д. Якщо є питання щодо подальшої налаштування під ваші потреби: завжди раді допомогти!

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.