Содержание |
Архитектура платформы
ELMA365 построена на микросервисной архитектуре и состоит примерно из 40 микросервисов, написанных на языке Go (Golang или Go Programming Language). Каждый из сервисов отвечает за определенный набор функций или даже за одну конкретную функцию. Выбор в пользу микросервисной архитектуры был сделан по трем основным причинам.
Во-первых, она обеспечивает отказоустойчивость: если упадет один сервис, остальные части системы останутся работоспособны. Во-вторых, эта архитектура дает легкую масштабируемость: когда один сервис испытывает чрезмерную нагрузку, его можно масштабировать без выделения лишних ресурсов для других компонентов. Установленная из коробки система может автоматически масштабировать микросервисы, адаптируясь под профиль нагрузки эксплуатанта. И третье преимущество — производительность. Результаты тестов производительности для различных сценариев использования и объемов нагрузок регулярно публикуются.
Однако, как у любой технологии, у решений на базе микросервисной архитектуры есть не только свои преимущества, но и свои ограничения.
Преимущества и ограничения микросервисной архитектуры
Итак, микросервисные решения хорошо масштабируются и обеспечивают режим высокой доступности. Однако, чтобы насладиться этими преимуществами, приложение требуется правильно установить, корректно настроить и обеспечить мониторинг. Разработчики платформы постарались упростить эти процессы.
Система ELMA365 имеет несколько вариантов инсталляции, в их числе есть варианты, когда система устанавливается автоматически с помощью скрипта, а от пользователя требуется лишь указать простейшие настройки. В поставке класса Enterprise автоматически устанавливается система визуализации данных Grafana с несколькими преднастроенными дашбордами для удобства мониторинга. Система поддерживает и автоматическое масштабирование микросервисов в зависимости от нагрузки.
Свободная система визуализации данных Grafana — лишь одна из целого стека технологий на базе открытого ПО, использованных при построении платформы ELMA365.
Стек технологий
Фронтальная часть платформы (фронтенд) построена на Angular — это современная, открытая и свободная платформа для разработки веб-приложений. Бизнес-логика системы (бэкенд) написана, как уже говорилось выше, на Go (Golang) — это современный быстрый и многопоточный язык, с простым и понятным синтаксисом.
Система разворачивается на платформе для управления контейнеризованными приложениями Kubernetes. Это один из наиболее популярных инструментов на сегодняшний день. Его поддерживают большинство крупных облачных провайдеров, а кроме того инсталляция может быть развернута и на локальных мощностях.
В окружении приложения также задействованы две СУБД: PostgreSQL и MongoDB, брокер сообщений RabbitMQ, кэш-сервер Redis и файловое хранилище S3 Minio.
Выбор именно этих компонентов был сделан по следующим причинам:
- широкая распространенность выбранных технологий;
- возможности работы в кластерном варианте;
- универсальность при разворачивании: решения могут быть установлены как на отдельные сервера, так и в облаке.
Важно и то, что все перечисленные решения являются открытым кодом (Open Source), что минимизирует зависимость от санкций.
Еще одна важная составляющая платформы ELMA365 — low-code-инструментарий, дающий заказчику возможность самостоятельного создания решений на базе платформы.
Low-code-составляющая
Большинство действий в системе настраиваются с помощью двух визуальных конструкторов – редактора виджетов и редактора бизнес-процессов. Они позволяют настроить пользовательский интерфейс и логику мышкой, по методу «бери и переноси» (drag-n-drop).
Легкость разработки обеспечивается и большим набором готовых компонентов в редакторах: преднастроенных виджетов, активити бизнес-процессов. Например, пользователю не обязательно писать скрипт, чтобы определить руководителя сотрудника или отобразить все связанные с объектом элементы, — такие действия уже заложены в платформу. Если требуется расширить логику, система умеет исполнять код TypeScript и таким образом можно вызвать скрипты точечно в процессах или в режиме реального времени на формах. Но и здесь используется low-code, и разработчику, как правило, не нужно ничего выдумывать. Для решения задач ELMA365 предоставляет набор инструментов (SDK), который очень хорошо описан в руководстве пользователя.
Что можно роботизировать
Low-code-инструменты — не единственная актуальная «фишка» платформы ELMA365: наряду со стандартной автоматизацией бизнес-процессов, система поддерживает роботизацию рутинных действий с помощью компонента ELMA RPA.
Для роботизации лучше всего подходят повторяемые, простые и стандартизируемые действия. Например, — потоковое сканирование и обработка документов, проверка информации на корректность, заполнение экранных форм.
Дизайн
По умолчанию приложения, разрабатываемые на платформе, имеют нейтральный дизайн и цветовую гамму. Механизмы навигации стандартны для современных веб-приложений и понятны пользователям. Почти все экранные формы имеют универсальную структуру и логику расположения элементов. Все вместе это позволяет пользователю быстро привыкнуть к интерфейсу и на каждой экранной форме интуитивно понимать, где искать требуемую функцию.
На основе таких же универсальных шаблонов проектируются интерфейсы в Low-code-редакторе. Но если разработчик решения все же захочет придать интерфейсу индивидуальность, фирменный стиль — поменять цветовую гамму или расположить элементы на формах по-своему, то система позволит сделать ему и это.
Безопасность
Система обеспечивает авторизацию на стороне сервера по JWT-токену, созданному на основе открытого стандарта JSON Web Token (JWT). Все соединения между сервисами осуществляются внутри кластера kubernetes по защищённым протоколам gRPC и HTTP. Для взаимодействия с сервисами кластера из внешнего мира используется тонкая конфигурация правил ingress в кластере и доступ только к выделенным сервисам по протоколу HTTP и WebSocket.
Для каждого объекта внутри системы (например, справочника) может быть настроена матрица доступа, причем права могут выдаваться пользователю и динамически, в том числе. Работают также настройки безопасности при входе пользователей: политика паролей и двойная авторизация. Кроме того, ведется журнал аудита безопасности: действия пользователей логируются и записываются в отдельную базу данных.
Зоны ответственности вендора и заказчика различны. Вендор обеспечивает безопасность самой платформы, а вопросы обеспечения безопасности используемой серверной операционной системы, провайдера виртуализации или физического сервера являются зоной ответственности клиента. Также заказчик отвечает и за правильное администрирование сети, в которой работает платформа.
Что такое и для чего ELMA365 Private Cloud
ELMA365 Private Cloud — это вариант поставки платформы ELMA365 для крупных компаний и холдингов корпоративного сегмента. В рамках данной поставки клиент получает возможность решить множество задач, таких как:
- разнесение бизнес-единиц по независимым источникам вычислительных ресурсов (тенантам);
- распределение уникальных внутренних решений между бизнес-единицами за счёт модуля ELMA365 private store;
- распределение нагрузки на систему через выделение отдельных тенантов;
- разнесение кластеров/тенантов по различным географическим зонам с учётом особенностей местного законодательства по хранению персональных данных (Закона РФ ФЗ-152, регламента ЕС GDPR и др.).
Лицензионная политика
Лицензии на платформу ELMA365 бывают двух видов: именные и конкурентные. Именная лицензия закрепляется за конкретным пользователем, что обеспечивает ему постоянный доступ в систему. Конкурентные же лицензии не привязываются к конкретным пользователям. Они определяют общее количество сотрудников, которые могут работать в системе одновременно. Выбрать и определить пользователей, которым будут доступны именные лицензии, может администратор из интерфейса системы.
Поддержка решений
В рамках технической поддержки решения на площадке заказчика предоставляются консультации по базовым возможностям системы, осуществляются локализация и исправление ошибок платформы. Время реакции на обращение составляет не более 8 рабочих часов, время решения — не более 16. В случае, когда инцидент можно устранить только посредством будущих доработок системы, дата выпуска исправления определяется в соответствии с общим планом разработки программного продукта.
Для облачной поставки системы обеспечивается доступность в режиме 24/7, а процент времени безотказной работы должен составлять не менее 99,95 % в течение срока предоставления подписки.
Технологические достижения
В начале этого года была выпущена дорожная карта на год вперед, зафиксировав в ней время выпуска релизов. И 2022 год стал для ELMA365 годом динамичного развитие продукта, а Low-code-компонента остается главным инструментом, «ответственным» за идеально точную подгонку решений под бизнес-требования компании.
Важными новшествами ELMA365 в области бизнес-процессов являются описание моделирования процессов принятия решений на понятном для бизнес-пользователей языке (Decision Model and Notation), аналитика бизнес-процессов и proxy-приложения.
Основа любой Low-code системы — это объектная модель, и в платформе ELMA365 эту роль выполняют корпоративные приложения. На базе приложений были реализованы CRM-система, ChatDesk/ServiceDesk. Специалисты компании продолжают функционально насыщать приложения, делать их еще производительнее и удобнее как для Low-code-разработчиков, так и для конечных пользователей.