Creatio development guide
PDF
Это документация Creatio версии 7.16.0. Мы рекомендуем использовать новую версию документации.

Основное приложение

Glossary Item Box

Инфраструктура приложения

Схема архитектуры основного приложения Creatio представлена на рисунке 1.

Рис. 1. — Схема архитектуры основного приложения Creatio

В Creatio существует возможность повысить производительность крупных проектов с помощью горизонтального масштабирования. При использовании горизонтального масштабирования схема архитектуры основного приложения Creatio (рис. 2) включает в себя следующие компоненты:

Рис. 2. — Схема архитектуры основного приложения Creatio при использовании веб-фермы, кластера Redis и кластера баз данных

Подключив компоненты и дополнительные сервисы к основному приложению Creatio, можно получить дополнительную функциональность.

Сервер приложений

Сервер приложений выполняет основную вычислительную работу системы.

Приложение на платформе .NET Framework работает под управлением Internet Information Services (IIS). Для работы приложений продуктов Creatio на платформе .NET Framework необходима операционная система Windows версии 7 и выше. Сервер приложений продуктов Creatio на платформе .NET Framework состоит из загрузчика (WebAppLoader) и конфигурационной части (WebApp).

Основное назначение загрузчика — выполнение служебных функций системы, и дальнейшее перенаправление пользователей в основное приложение Creatio.

Загрузчик отвечает за выполнение следующих действий:

  • Авторизацию пользователей.
  • Проверку лицензий и аутентификацию пользователей.
  • Запуск планировщика, который отвечает за выполнение фоновых задач по расписанию.

На уровне файловой системы загрузчик размещен в корневой папке приложения.

После обработки в загрузчике запроса на авторизацию, пользователи могут работать в конфигурационной части. Конфигурационная часть — это приложение, которое реализует конкретную конфигурацию в системе, а также отвечает за работу бизнес-логики системы. На уровне файловой системы конфигурационная часть размещена в папке Terrasoft.WebApp.

Приложение на платформе .NET Core работает под управлением Kestrel. Для работы сервера приложений продуктов Creatio на платформе .NET Core необходима операционная система OS Х последней официальной версии. Приложение Creatio на платформе .NET Core является неделимым и выполняет задачи загрузчика и конфигурационной части. Описание продуктов Creatio на платформе .NET Core содержится в статье "Продукты Creatio на платформе .Net Core".

Сервер баз данных

В базе данных хранятся следующие элементы:

  • Пользовательские данные.
  • Данные, необходимые для работы самой системы.
  • Конфигурационные настройки, которые определяют функциональность продукта.

В качестве системы управления базами данных (СУБД) могут использоваться следующие СУБД:

  • MS SQL Server 2012 SP3 и выше.
  • Oracle версии 11g Release 2 или 12c (при развертывании on-site).
  • PostgreSQL 11. Поскольку PostgreSQL является свободной СУБД, скачать файлы, необходимые для ее установки, можно на официальном сайте продукта.

Варианты установки продуктов Creatio содержатся в таблице 1.

Табл. 1. — Варианты установки продуктов Creatio

Продукты Creatio СУБД
MS SQL Oracle PostgreSQL PostgreSQL (.NET Core)
Marketing

+

+

+

Sales Enterprise

+

+

+

Sales Commerce

+

+

Sales Team

+

+

Service Enterprise

+

+

+

Customer Center

+

+

Studio

+

+

+

Lending

+

+

Bank Customer Journey

+

+

Bank Sales

+

+

Sales Enterprise & Marketing & Service Enterprise

+

+

+

+

Sales Enterprise & Marketing & Customer Center

+

+

Sales Commerce & Marketing & Customer Center

+

+

Sales Team & Marketing

+

+

Sales Team & Marketing & Customer Center

+

+

+

Bank Sales & Bank Customer Journey & Lending & Marketing

+

+

+

+

Сервер кэширования Redis

Сервер кэширования Redis отвечает за решение следующих задач:

  • Хранение данных пользователя и приложения (профиль пользователя, сессионные данные и т. п.).
  • Хранение кэшированных данных.
  • Обмен данными между узлами веб-фермы.

Для решения таких задач в архитектуре Creatio реализована технология хранилищ данных. В основе технологии — объектная модель классов, которая представляет собой унифицированный API для доступа из приложения к данным, расположенным во внешнем хранилище. В качестве внешнего хранилища Creatio использует сервер кэширования Redis.

Хранилища Creatio в первую очередь ориентированы на выполнение служебных функций организации работы с данными, но при этом они могут быть использованы в конфигурационной бизнес-логике для решения пользовательских задач.

Модель данных Redis основана на принципе пар "ключ-значение". Redis поддерживает доступ только по уникальному ключу, а в качестве хранимого значения могут выступать сложные структуры с дополнительными операциями. В Creatio помещаемые в хранилище данные хранятся в виде бинарных сериализованных объектов.

Redis поддерживает следующие стратегии хранения данных:

  • Хранение данных только в памяти.
    Персистентная база данных преобразуется в некий кэширующий сервер.
  • Периодическое сохранение данных на диск (по умолчанию).
    Периодическое создание копий (snapshot) один раз в 1-15 минут в зависимости от времени создания предыдущей копии и количества измененных ключей.
  • Лог транзакций.
    Синхронная запись каждого изменения в специальный append-only лог-файл.
  • Репликация.
    Каждому серверу можно указать мастер-сервер, после чего все изменения на мастере будут воспроизводиться и на подчиненном сервере.

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

Детальное описание сервера кэширования Redis содержится в официальной документации.

В Creatio реализована поддержка двух видов хранилищ — хранилища данных и кэша. Использование хранилищ данных и кэша описано в статье "Особенности использования хранилищ данных и кэша", а объектная моделт описана в статье "Объектная модель хранилищ Creatio".

Хранилище данных предназначено для промежуточного хранения редко изменяемых, "долгосрочных" данных. В кэше, как правило, хранится оперативная информация.

Логические уровни размещения данных для каждого вида хранилища описаны в таблицах 2 и 3.

Табл. 2. — Уровни хранилища данных

Уровень Описание
Request Уровень запроса. Данные доступны только в течение времени обработки текущего запроса. Соответствует значению перечисления Terrasoft.Core.Store.DataLevel.Request.
Session Уровень сессии. Данные доступны только в сессии текущего пользователя. Соответствует значению перечисления Terrasoft.Core.Store.DataLevel.Session.
Application Уровень приложения. Данные доступны для всего приложения. Соответствует значению перечисления Terrasoft.Core.Store.DataLevel.Application.

Табл. 3. — Уровни кэша

Уровень Описание
Session Уровень сессии. Данные доступны только в сессии текущего пользователя. Соответствует значению перечисления Terrasoft.Core.Store.CacheLevel.Session.
Workspace Уровень рабочего пространства. Данные доступны для всех пользователей одного и того же рабочего пространства. Соответствует значению перечисления Terrasoft.Core.Store.CacheLevel.Workspace.
Application Уровень приложения. Данные доступны всем пользователям приложения вне зависимости от рабочего пространства. Соответствует значению перечисления Terrasoft.Core.Store.CacheLevel.Application.

Данное разделение хранилищ введено с целью логического разделения помещаемой в хранилище информации и дальнейшего удобства использования ее в программном коде. Разделение позволяет:

  • Изолировать данные между рабочими пространствами и между сессиями пользователей.
  • Условно классифицировать данные.
  • Управлять временем жизни данных.

Физически все данные хранилища и кэша могут располагаться на абстрактном сервере хранения данных. Исключение составляют данные хранилища уровня Request, которые хранятся непосредственно в памяти.

Сервером хранилищ Creatio является Redis. Однако в общем случае это может быть произвольное хранилище, доступ к которому осуществляется через унифицированные интерфейсы. При этом необходимо учитывать, что операции обращения к хранилищу являются ресурсоемкими, так как связаны с сериализацией/десериализацией данных и сетевым обменом.

Хранилище данных и кэш предоставляют следующие возможности по работе с данными:

  • Доступ к данным по ключу для чтения/записи.
  • Удаление данных из хранилища по ключу.

Ключевым различием между хранилищем данных и кэшем является подход к управлению временем жизни объектов, хранящихся в них.

Данные, помещаемые в хранилище, будут содержаться в нем до момента их явного удаления. Время жизни таких объектов ограничено временем выполнения запроса (для данных хранилища уровня Request) или временем существования сессии (для данных хранилища уровня Session).

Для данных, хранящихся в кэше, существует время устаревания, которое определяет граничный срок актуальности конкретного элемента кэша. Независимо от времени устаревания, все элементы удаляются из кэша:

  • При завершении сессии (элементы кэша и хранилища данных уровня Session).
  • При явном удалении рабочего пространства (элементы кэша уровня Workspace).

Элементы хранилища данных и кэша уровня Application сохраняются на протяжении всего периода существования приложения и могут быть удалены из него только путем непосредственной очистки внешнего хранилища.

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

Сервер системы контроля версий

Сервер системы контроля версий является опциональным компонентом приложения. Сервер системы контроля версий используется когда параллельно с эксплуатацией системы необходимо на платформе организовать разработку пользовательской конфигурации. Для многопользовательской разработки применение системы контроля версий является обязательным.

Сервер системы контроля версий отвечает за выполнение следующих функций:

  • Перенос изменений между приложениями при разработке.
    Изменения переносятся с помощью пакетов, которые хранятся в виде набора файлов и папок на уровне файловой системы. Процесс работы с пакетами описан в блоке статей "Инструменты разработки. Пакеты".
  • Хранение состояний конфигурации в виде пакетов определенной версии.
    Система контроля версий хранит все конфигурационные элементы, которые разрабатываются в пакетах.

Система контроля версий хранит всю историю изменений в конфигурации. Настройка сервера системы контроля версий описана в статье "Как настроить хранилище SVN". Работа с сервером системы контроля версий описана в блоке статей "Система контроля версий. Встроенная IDE". Виды систем контроля версий описаны в блоке статей "Системы контроля версий".

Варианты развертывания приложения

Существуют следующие варианты развертывания приложения Creatio:

  • On-site.
  • Cloud (развертывание приложения Creatio в облаке).

Развертывание on-site

При развертывании приложения Creatio on-site все затраты, связанные с организацией серверной части (установка, настройка, сопровождение, администрирование), возлагаются на клиента.

Развертывание on-site имеет следующие преимущества:

  • Высокая скорость и удобство разработки.
  • Независимость сред разработки. Поскольку разработка ведется в отдельном приложении, исключено негативное влияние на других пользователей.
  • Использование системы контроля версий для сохранения и переноса изменений.
  • Возможность использовать IDE и настраивать процессы непрерывной интеграции.

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

При развертывании приложения on-site необходимо, чтобы серверы, на которых разворачиваются компоненты системы, а также клиентские компьютеры, на которых запускается система, отвечали определенным техническим требованиям. Описание требований к клиентским компьютерам содержится в статье "Системные требования к клиентскому компьютеру". Описание требований к серверам для развертывания приложения Creatio on-site содержится в статье "Системные требования к серверам (on-site)".

Для расчета параметров серверов, необходимых для развертывания приложения и дополнительных компонентов, воспользуйтесь калькулятором системных требований.

Описание этапов по развертыванию и настройке Creatio on-site на операционной системе Windows содержится в блоке статей "Установка Creatio .NET Framework на Windows". Описание этапов по развертыванию и настройке Creatio on-site на операционной системе Linux содержится в блоке статей "Установка Creatio .NET Core на Linux".

Предусмотрены следующие возможные схемы развертывания on-site приложения Creatio:

  • Без обеспечения отказоустойчивости (рис. 3).
  • С обеспечением отказоустойчивости (рис. 4).

Рис. 3. — Схема развертывания on-site приложения Creatio без обеспечения отказоустойчивости

Для среды разработки приложений Creatio с поддержкой отказоустойчивости (рис. 4) можно использовать сервер системы контроля версий, но обычно такие сложные отказоустойчивые системы практикуют только на тестовой и промышленной среде.

Рис. 4. — Схема развертывания on-site приложения Creatio с обеспечением отказоустойчивости

Развертывание cloud

При развертывании cloud приложение устанавливается на мощностях облачных дата-центров (Amazon, Azure), которые находятся под управлением компании Terrasoft. То есть физически вся серверная часть архитектуры и данные находятся в дата-центрах и управляют ими сотрудники Terrasoft. Все вопросы, связанные с администрированием, быстродействием, масштабированием решаются силами сотрудников компании Terrasoft, а клиент использует только клиентскую часть приложения.

Развертывание cloud имеет следующие преимущества:

  • Своевременное обновление.
  • Максимально возможное быстродействие.
  • Соответствие промышленным стандартам по доступности и защищенности данных.

Ограничения для развернутого cloud приложения Creatio описаны в статье "Развертывание приложения в облаке".

Чтобы развернуть приложение Creatio cloud, перейдите на страницу создания пробной версии. На протяжении 14-дневного пробного периода можно ознакомиться с основными возможностями приложения. По завершению пробного периода используемая демо-версия приложения может быть перенесена на основную площадку Terrasoft.

Смотрите также

Обучающее видео

© Terrasoft 2002-2020.

Был ли данный материал полезен?

Как можно улучшить эту статью?