Привет! Это мой первый пост на ресурсе. Хочу рассказать про технологию Фреш, которую мы используем у себя в проекте. Информации в сети о ней мало (от слова совсем), партнёры про Фреш не рассказывают или сами, кроме прайса, ничего не видели. Грабли тоже не описаны, а они есть, уж поверьте :). Штука полезная, и не помешало бы обменяться опытом, чтобы разработчики могли её улучшить.
Если возникнут вопросы — смело пишите в комментариях.
Итак, Фреш.
Для кого подходит это решение
Для крупных компаний, хостеров или холдингов, у которых много баз одних и тех же конфигураций: БП 3.0, ЗУП 3.0, УНФ или КА 2.0.
Мы начали использовать что-то похожее, когда количество наших баз перевалило за 100. Тогда стало ясно, что создавать в них новых пользователей, давать к этим базам доступ для клиентов, обновлять в них КЛАДР или просто делать резервные копии — это челенжд. Штатные механизмы 1С просто для этого не годятся (или их нет). Тогда мы начали прикручивать костыли и велосипеды скрипты и обработки, делать разделители внутри базы, чтобы упаковать внутрь одной информационной базы несколько независимых областей.
Затем, внезапно (именно внезапно, так как Партнёрам и Франчайзи мы задавали вопросы постоянно), от самой 1С мы узнали о Фреше — технологии, позволяющей построить своё собственное облако, аналогичное 1cfresh.com. Эта технология на порядок снизила наши трудозатраты по поддержанию инфраструктуры.
Сейчас в нашем Фреше почти 1,5 тысячи приложений. Объём данных в базах PostgreSQL чуть большее 500 ГБ. Базами пользуются наши бухгалтеры (их около 80 человек) и сотня клиентов. Кто-то из клиентов работает с УНФ из нашего облака, кто-то синхронизирует свою Торговлю.
В нашем сервисе мы используем несколько Linux кластеров и один Windows кластер — на нём работает база Агента сервиса, т.к. ей нужна возможность запускать конфигуратор.
Во все наши базы ходит обученный робот, при помощи COM соединения, и делает автоматические работы (загружает выписку, заносит документы и т.д.).
Из чего состоит, как работает и с чего начать
Фреш — это две специализированные конфигурации:
-
Менеджер сервиса — управляет всей инфраструктурой Фреша, раздаёт команды, собирает информацию воедино, управляет правами и т.д.
-
Агент сервиса — эдакий исполнитель, умеет создавать файловые базы, обновлять их, доставать из них дампы (слепки баз, которые можно перенести во Фреш, в область), собирать логи с других баз и много чего ещё.
Также Фреш меняет поведение прикладной информационной базы через заложенные в неё константы. Так, например, в конфигурации Бухгалтерия предприятия, после публикации её в сервисе, отключается механизм загрузки курсов валют напрямую или работа с ИТС (уведомления о обновлениях и прочее).
Прежде чем начать, каждую базу во Фреше необходимо опубликовать на веб-сервере. Второй шаг — описать все конфигурации, используемые в облаке в Справочниках Менеджера сервиса, затем, там же создать записи об Информационных базах (с указанием URL и версии конфигураций), кластерах, серверах, учётных записях администратора. После того, как всё сделано, компоненты сервиса начинают общаться при помощи XML, посылая друг другу сообщения через настроенные ранее публикации на веб-серверах.
Например, если вы создаёте нового пользователя в Менеджере сервиса, вот что происходит:
1. Менеджер сервиса формирует сообщения для всех информационных баз, в которых есть приложения, доступные пользователю, и отправляет их (такие сообщения относятся к классу "быстрых" и доставляются немедленно)
2. Информационная база вычитывает сообщения (периодически или, как в данном случае, принудительно) и создаёт пользователя в справочнике конфигуратора (тут указывается область, в которую будет доступ у пользователя, и его права) и справочнике пользователей конкретной области
3. Информационная база создаёт сообщения в адрес сервис-менеджера с результатами создания пользователя. Немедленно его доставляет.
4. Менеджер сервиса удаляет сообщение из п.1 из очереди на отправку.
Основные возможности Фреша
Самое важное, о чём хотелось бы сказать, это портал самообслуживания. В нём пользователи сами смогут добавлять базы (чистые или загружать переносом из локальных версий), раздавать на них права (или же права будут назначаться автоматически).
Также при использовании Фреша автоматически будут загружаться валюты, кладр, банки. Менеджер сервиса сам занимается резервным копированием приложений (что не отменяет резервных копий на уровне SQL), причём делает он это только для тех областей, в которых пользователи действительно что-то делали.
Также отмечу автоматическую синхронизацию приложений в сервисе. Например, настроив один раз обмен между Бухгалтерией и Зарплатой, он будет запускаться переодически, каждые 15 минут.
Со стороны пользователя сервиса выглядит вот так:
Это интерфейс сервис менеджера, если в него входить с правами "Пользователь сервиса". Ниже он же, но когда у пользователя полные права:
Теперь об основных возможностях, сильно облегчающих нам или нашим клиентам жизнь.
Планирование обновлений
В сервисе администратор может планировать обновления конфигурации. Для этого в сервис добавляется новый релиз и файл обновления, после чего назначается дата и время установки. Менеджер сервиса рассылает уведомления о регламентных работах, даёт команду Агенту сервиса на обновление конфигурации.
Не очень удобно, что для каждой новой версии вам нужно загрузить в Сервис менеджер и файл cf и файл обновления, а также вручную заполнить связность релизов: указать, с каких релизов можно перейти при помощи обновления на загруженный. Имхо, это меньшая боль, в сравнении с установкой обновлений вручную на десяток крупных баз.
После установки обновления Менеджер сервиса регламентными заданиями, сам обновит и информационные базы. Так что пользователь ничего не заметит, разве что информационное окно с релизной информацией после входа.
Автономная работа
Это механизм автоматической настройки РИБ для одной области в базе. Простой мастер позволяет пользователю получить архив с отдельной файловой базой, в которой уже настроен обмен с основной копией базы, нужно только её развернуть.
Этот мастер можно запустить прямо из приложения во Фреше, не требуется вмешательство Администратора. Т.е. если вашему пользователю нужна "автономка" и он имеет соответствующие права — он может легко её создать сам.
Автономное место автоматически получает обновления конфигурации и по умолчанию синхронизируется при старте и закрытии базы. А ещё можно настроить синхронизацию по расписанию.
Какие есть минусы
В сервисе используются типовые конфигурации. Кастомизация их под свои нужды резко увеличивает сложность обслуживания, т.к. необходимо дополнительно тестировать каждый релиз и готовить его к сервису. Сервис поддерживает далеко не исчерпывающий список конфигураций, что также является ограничением.
С внешними обработками тоже не всё гладко: часть функционала будет недоступна, необходимо перерабатывать логику и код, если вы используете работу с веб-серверами, файлами или dll.
Вместо итога
Фреш — очень мощная технология. Его можно использовать, как серьёзное облако у хостера, так и в небольшом холдинге, упростив обслуживание.
У технологии есть серьёзные плюсы и некоторые недостатки, важно понимать область применения и знать о граблях.