Пример автоматизированного управления публикацией списка баз

29.11.22

База данных - Администрирование СУБД

Данная публикация в художественном стиле описывает путь нашей команды по решению задачи автоматизации публикаций списка 1С-систем.

 

Сначала была боль…

Однажды в стародавние времена наша команда столкнулась с типовой проблемой публикации ярлыков запуска 1С-систем. Имеющиеся на тот момент механизмы публикации через logon-скрипты обладали существенными недостатками:

  •    При изменении состава списка баз, пользователю требовалось перезагружаться, закрывая все свои любимые программы и мега-эксельки.
  •    Для получения списка баз пользователь должен быть в домене, в противном случае начинались танцы с отправкой ярлыков в письмах.
  •    Непонятная организация групп пользователей для размещения ярлыков. Например, по отделам в домене. Таким образом некоторые пользователи получали базы куда им ходить нельзя, но очень хочется.
  •    При появлении новой базы нужно было отвлекать "очень занятых" системных администраторов.
  •    При смене схемы публикации или сервера сотрудникам технической поддержки нужно было бежать к богам доменов и серверов.
  •    Если вдруг требовалось дать доступ пользователю к системе вне «группового списка», допустим к системе из тестового окружения или к демосистеме, то техподдержка снаряжала самого молодого и удалого в путь дорогу дальнюю.
  •    Бывало звучал звонок, что дескать при запуске появляется сообщение: «не обнаружена система» (переехала в связи с улучшением жилищных условий), тогда техподдержка рекомендовала перезагрузиться, а потом, если не помогало, подключался специалист и менял параметры доступа, судорожно вспоминая: «у кого же еще может быть эта система?!».
  •    Или еще одна забава, игра «прогулка по минному полу» - это когда нужно перевезти базу и попытаться угадать места, где требуется изменить параметры подключения к ней внутри других систем, чтобы ничего не развалилось (одни забывают про ведение документации, другие о том, что её нужно читать).
  •    А при смене версии платформы или переезде на другой сервер приключения техподдержки начинали играть еще более яркими красками.

Этот список можно пополнять еще кучей ситуаций из жизни техподдержки, которые они вспоминают с содроганием. Запутанность, отсутствие контроля за пользователями, непонятный перечень систем и их параметров, сложность понимания и тяготы взаимодействий между подразделениями приводили к состоянию нервного тика у техподдержки, да и у пользователей.
 
Было решено, что так дальше жить нельзя, и морально-психологическое состояние коллектива надо поправлять.

 

Поиск пути к дзену…

Вашему вниманию хочу предоставить один из примеров автоматизации управления списками ярлыков информационных баз.

Первый шаг был сделан к стандартизации названия систем и среды их обитания.

Требовалось разделить 1с-системы на контуры и избавить свои головы от необходимости помнить заковыристые имена баз и их место жительства.

Каждая система была переписана и зарегистрирована в нашей системе управления информационными базами, где ей назначался уникальный код. Также создали и закрепили правила именования при наследовании баз. А сами системы были распределены по зонам: production, testing, development, archive.

Второй шаг заключался в разделении зон ответственности между админами и остальными.

Позвали на чай админов, и после пары чашек у нас родилась мысль о применении возможностей сервера DNS: использовать CNAME-записи, объединяющие зоны сервера и системы.

В итоге мы получили красивые пути к системам. Путь "srv21-prod-1c/UT" превратился в "ut.production/UT". Таким образом, когда админам требуется изменить место жительства системы на серверах после работ по миграции, то они изменяют только CNAME-запись и никто больше от этих переездов не страдает.

После этих двух шагов мы вместо страшных и сложно-запоминающихся названий типа "srv04-1c/UT10_copy_3" уже получали красивое и логичное 'UT_dev2_1.development/UT_dev2_1" («UT» - это родительская система, «dev2» это код разработчика, а «1» это порядковый номер системы у разработчика)

Теперь техподдержке не нужно будет устраивать гадания и демонстрировать скрытые таланты своей памяти при попытках вспомнить актуальное имя сервера или кому принадлежит база. Всё что нужно знать так это код системы и ее зону. А информация о том куда/когда/какая база мигрирует стала абсолютно неинтересной.

Вслед за админами пришли разработчики, в чашках образовалось кофе и мы начали размышлять, что пользователей нужно тоже учитывать, а главное знать с какими системами они работают. После множественного употребления кофе в перерывах на разработку появилась система управления пользователями (СУП). О том, как и что там работает, тема отдельного большого рассказа. А пока представим, что произошел телепорт и система уже существует. Коротко могу сказать: при приеме на работу пользователь автоматически добавляется в этот СУП (да, забавно звучит), где ему на основании должности назначается профиль со списком баз и ролей для каждой системы.

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

Определились окончательные требования и ограничения, я посмотрел по сторонам, заглянул в ИТС, немного покопался на сайте Инфостарта (спасибо автору публикации 1069081), пофантазировал да приправил нотками философии и на выходе получилась концепция сервиса публикации ярлыков. Дальше оставалось только наложить идею на технологии.

В итоге получилась система с неброским именем «Коннект 1С».

 

Что же мы хотели получить от системы…

Требования и ограничения выглядели так:

  •    Работа клиентов с продакт-системой должна осуществляться через https (технологические стандарты компании).
  •    Каждый пользователь должен иметь индивидуальный список баз (пользователей около 2000)
  •    Система добавляется только при наличии прав на работу с ней. (назначение ролей в системах в зависимости от должности)
  •    Возможность формировать списки как автоматически, так и дополнять их в ручном режиме при необходимости.
  •    Формирование индивидуального списка на любом рабочем месте вне зависимости от наличия доменной учетной записи.
  •    Принудительный сброс списка с перезапросом нового.
  •    Изменения списка без потери рабочего пространства (нет перезагрузкам и завершению работы)
  •    Возможность формирования индивидуальных или групповых параметризованных ярлыков системы.
  •    Автоматизация обновления тонкого клиента, если сменилась версия платформы сервера.
  •    Получение списка баз по своим учетным данным.

 

Как система выглядит глобально…

Концепт по автоматизации сервиса управления ярлыками получился таким:
 

Картинка есть… и что дальше?!

А дальше же всё просто. Спроектировать систему «Коннект 1С», разработать, протестировать да запустить :)
После в докере поднять контейнер apache с 1с-модулем на борту и с двумя конфигами default.vrd. Этот контейнер присасывается к системе «Коннект 1С» и начинает транслировать её данные для всех стартеров 1С, которым они потребны.

Ремарка: допускаем, что системы справа от «Коннект 1С» уже существуют и не влияют на вращение шестерёнок остального.

 

Немного технических базовых моментов…

Движок работы стартера с системой «Коннект 1с» базируется на 2-х типовых механизмах платформы 1с:
1.    WebCommonInfoBases
2.    WebDistributiveLocation

 

 

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

//infostart.ru/public/1069081/ (пример реализации)

https://its.1c.ru/db/v837doc#bookmark:adm:TI000000422 (самая техническая документация от создателя)

 

Что же в итоге получил обычный пользователь…


Как мы все знаем, начинается жизнь каждого свежего (а иногда и не очень) пользователя со старта окна авторизации в увлекательный желтый мир. Пока новый пользователь изучал маршрут до своего рабочего места, система уже изучила его досье и определила ему место в «пищевой цепочке» компании с назначением полномочий в каждой доступной ему системе. Пользователю всего лишь требуется зайти на сайт и получить пароль себе на телефон.

 

 

Далее ввести свои учетные данные при запуске стартового окна 1С:

 

  


и получить список доступных ему баз на своем рабочем месте:


 
 
 
Доступ к системам предоставлен. Теперь можно приступать к работе и радоваться (или страдать, кому как). Если измениться состав систем или метод доступа, то сервис снова запросит данные у пользователя и сформирует новый список.

 
А что же получила техподдержка…

При входе в систему техподдержка видит рабочую область для работы и контроля:

 

 

В окне ниже техподдержка может управлять публикацией ярлыка базы и параметрами ярлыка через выбранный шаблон:

 

 


 
Так выглядит запись о самой системе:

 

 

А так информация о версии платформы для автоматического обновления тонкого клиента:

 

 

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

 

 
 

 

И самое важное, это конечно же информация о пользователе и его списке баз:

 

 

Здесь отображается список баз с указанием способа добавления:

•    Автоматически (добавлена из системы управления пользователями),
•    Публикация (внутренняя публикация через механизмы самой системы),
•    Вручную (возможность добавить запись вручную для неординарных ситуаций)

У пользователя в списке для каждой системы индивидуально можно переопределить шаблон ярлыка.

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

 

Послесловие

Архитектура системы управления публикацией получилась простой и в тоже время достаточно эффективной, чтобы забыть обо всех бедах «средневековья».

Специалисты технической поддержки после внедрения испытали полную гамму эмоций: удивление, недоверие, принятие, радость :). После выдохнули и продолжили работать над новыми задачами.

 

Спасибо за внимание!

P.S. Не претендую на оригинальность решений. Если будут интересны технические подробности, пишите, поделюсь деталями.

См. также

HighLoad оптимизация Администрирование СУБД Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Во второй статье по докладу «Дамп – не приговор, а повод задуматься», с которым выступили на конференции INFOSTART TECH EVENT 2024, рассмотрим, какую информацию содержат файлы дампа, чем она полезна и как ее анализировать.

14.04.2025    418    it-expertise    2    

14

Администрирование СУБД Программист Платформа 1С v8.3 Бесплатно (free)

Где лежат данные идентификаторов, как прочитать, как поменять...

10.04.2025    477    atdonya    0    

3

HighLoad оптимизация Администрирование СУБД Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Опубликовали первую статью по итогам доклада «Дамп – не приговор, а повод задуматься», с которым выступали на конференции INFOSTART TECH EVENT 2024.

25.03.2025    538    it-expertise    7    

8

Администрирование СУБД Системный администратор Абонемент ($m)

Всегда надо обслуживать индексы SQL. В том числе по рекомендации самой 1С. Но обслуживать все и сразу - долго, тяжело серверу и, главное, бессмысленно. Особенно для больших баз. Данный скрипт выбирает, что надо делать, и делает это автоматически. Готового полного аналога не нашел, поэтому сделал этот. Можно примерять для любых конфигураций и платформ 1С. Проверено на 8.3.25.1501.

1 стартмани

12.02.2025    744    24    GreyCardinal    14    

4

HighLoad оптимизация Администрирование СУБД Программист Платформа 1С v8.3 Бесплатно (free)

В рамках мастер-класса мы запустим нагрузочный тест на 3К пользователей и посмотрим, как будет вести себя PostgreSQL при такой нагрузке.

11.12.2024    2184    Tantor    1    

6

Администрирование СУБД Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Бесплатно (free)

Много вариантов определения номера собственного процесса самого 1С8. В ходе поиска, опираясь на общедоступную информацию, дополнил алгоритм, но с учетом определения ИД запущенного приложения.

09.12.2024    1043    artly2000    6    

4

Администрирование СУБД Системный администратор Программист

В крупных компаниях, где много типовых и сильно доработанных баз с режимом работы 24/7, переход с MS SQL на PostgreSQL затягивается. Получается гетерогенная структура – когда прод уже на PostgreSQL, а разработка и тестирование – пока на MS SQL. О том, какие варианты помогут постепенно перевести прод с несколькими базами MS SQL на PostgreSQL, не сломав среду тестирования и разработки, пойдет речь в статье.

21.11.2024    4610    a.doroshkevich    9    

17
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Созинов 29.11.22 15:36 Сейчас в теме
Отличная статья, уже приготовился скачивать решение и …
2. rusmil 263 07.12.22 17:02 Сейчас в теме
3. user1293111 04.05.23 15:42 Сейчас в теме
Я правильно понимаю что это работает только с лицензией сервера 1С уровня КОРП?
4. Elaks 41 30.05.23 16:36 Сейчас в теме
(3) Да, так написано в ИТС, хотя на практике бывает по-разному)
Оставьте свое сообщение