Сервис бандлирования статического контента
Glossary Item Box
Для повышения производительности весь клиентский контент (исходный код клиентских схем, css-стили) генерируется в специальном каталоге приложения Creatio. Преимущества такого подхода приведены в статье "Статический клиентский контент в файловой системе". Но из-за большого количества файлов браузеру необходимо выполнять большое количество запросов к приложению при его первоначальной загрузке. Чтобы избежать этого, обычно выполняется объединение всех однотипных файлов в один bundle-файл — бандлирование. Для объединения однотипных файлов статического контента Creatio разработан сервис бандлирования статического контента.
Схема
Приложение-наблюдатель (ContentWatcher) мониторит файлы в каталоге со статическим контентом и сообщает об изменениях в них веб-сервису.
Веб-сервис (ContentService) выполняет перегенерацию bundle-файлов приложения при поступлении определенных запросов (например, от ContentWatcher или вручную). После бандлирования веб-сервис изменяет определенный конфигурационный файл Creatio таким образом, чтобы он содержал информацию о необходимости использовать bundle-файлы вместо оригинального статического контента.
Общая схема работы сервиса бандлирования статического контента представлена на рис. 1.
Рис. 1. — Принципиальная схема сервиса бандлирования статического контента
Веб-сервис может быть установлен без приложения-наблюдателя (ContentWatcher). В таком случае запросы к ContentService на бандлирование или минификацию необходимо выполнять вручную.
Компоненты сервиса могут быть установлены на том же компьютере, что и Creatio, или на отдельном компьютере. Если они установлены отдельно, то у них должен быть сетевой доступ к файлам статического контента Creatio.
ContentService
Является .NET Core 2.1 веб-сервисом и имеет следующие операции (точки доступа):
- / — проверка работоспособности сервиса (метод GET).
- /process-content — генерирует минифицированные bundle-файлы (метод POST).
- /clear-bundles — очищает bundle-файлы (метод POST).
- /minify-content — минифицирует контент (метод POST).
ContentWatcher
Является .NET Core 2.1 приложением. Запускается как служба (также может запускаться через .NET Core CLI Tools). Основная задача — наблюдать за изменением указанного в параметре fileFilter файла, который находится по пути, указанном в параметре directory. По умолчанию это файл _MetaInfo.json. Изменение файла сообщает об обновлении статического контента. При обнаружении изменений ContentWatcher оповещает ContentService о необходимости перегенерировать bundle-файлы.
Структура конфигурации сервисов:
- ets/content-watcher/appsettings.json — конфигурационный файл ContentWatcher.
- docker-compose.yml — конфигурационный файл утилиты docker-compose.
- .env — файл с переменными окружения для запуска компонентов.
Совместимость с продуктами Creatio
Сервис бандлирования статического контента совместим со всеми продуктами Creatio версий 7.11 и выше.
Варианты развертывания
Сервис бандлирования статического контента можно использовать для on-site и cloud приложений. Для развертывания сервиса on-site используется Docker-контейнер. Чтобы развернуть сервис для cloud приложения обратитесь в службу поддержки.
Системные требования:
- Сервер под управлением Linux OS (рекомендуются стабильные версии Ubuntu или Debian), с установленной и настроенной стабильной версией docker. С этого сервера должны быть разрешены запросы к хранилищу образов Docker Hub.
- На сервере должны быть установлены Docker и Docker Compose (см. документацию Docker).
Смотрите также