Кирилкин Дмитрий | Ведущий разработчик | Торговая сеть Реми

«Scrum - серебряной пули не существует»

В своем докладе я хотел бы осветить практический опыт использования Scrum в команде из 5 разработчиков 1С. Ранее никто из участников команды не сталкивался в своей работе со Scrum. Для всех разработчиков это был новый опыт и новые вызовы. Тезисы: Предпосылки, явившиеся катализатором перехода на использование Scrum. Scrum наши ожидания после ознакомления с методологией. Заманчивые "Делать в два раза больше за половину времени..." Популяризация Scrum в команде, как это было. Владелец продукта и Scrum мастер где их взять или вы работаете во внутреннем отделе разработки. События Scrum (Ежедневные собрания, ретроспектива и обзор спринта). Поход к работе с задачами спринты, эпики, пользовательские истории и оценка задач. Что получилось, а что нет. Программное обеспечение, что и как используем. К чему мы пришли через год после начала работы по Scrum. Что дал нам Scrum. Оправдались ли ожидания.

R2-D2: журнал регистрации, монитор обменов, аварийные уведомления.

Администрирование - Сервисные утилиты

Обслуживание Журналов регистрации нескольких баз 1С. Сбор и обработка сведений о статусах обменов баз 1С, рассылка аварийных уведомлений.

Функции:

1. Монитор обменов. Блок функциональности является развитием системы Монитор обменов (описание). Новое: упрощена работа многих механизмов (например, больше не хранится история состояний), добавлены транспорты: теперь система "умеет" обмениваться данными по веб-сервисам (WS), выступать и как сервер, и как клиент.

2. Хранилище Журналов регистрации. Позволяет хранить и обрабатывать журналы регистрации нескольких информационных баз 1С. Хранение (пока) организовано только в самой базе 1С на SQL. В планах - использование более подходящих хранилищ.


Транспорт

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

1. COM-соединение. R2-D2 сам по регламенту инициирует СОМ-соединение к контролируемой базе, забирает оттуда информацию и фиксирует её у себя. По такому способу удобно работать например с какими-нибудь файловыми базами. Работает медленно из-за скорости инициализации подключения. Ограничение: в этом режиме соединения не реализована функция хранилища Журналов регистрации. То есть по такому транспорту будет работать только Монитор обменов.
2. WS-соединение (активное). R2-D2 сам инициирует подключение WS-подключение к контролируемой базе, забирает оттуда информацию и фиксирует её у себя. По такому способу удобно работать например с какими-нибудь файловыми базами. Работает значительно (в разы) быстрее, чем п.1. Требуется, чтобы
2.1. Контролируемая база должна быть опубликована на веб-сервере.
2.2. На контролируемую базу было установлено расширение пп_КлиентR2D2 (в котором описан веб-сервис и операции) (см. архив для скачивания)
3. WS-соединение (пассивное). R2-D2 сам принимает от клиентских баз пакеты информации и обрабатывает их. Наиболее оптимальный вариант по целому ряду причин. Требования:
3.1. R2-D2 должен быть опубликован на веб-сервисе
3.2. В каждой клиентской базе должна быть установлено расширение и внешняя обработка, которая должна выполняться с некоторой периодичностью (см. архив для скачивания и механизм дополнительных внешних обработок БСП + расписание на выполнение внешних обработок)


Механика

1. Получение информации от базы-корреспондента
2. Запись полученной информации.

В случае, когда используется транспорт пассивного WS-соединения, то возникает этап идентификации базы. Клиентская база при инициации соединения передаёт в R2-D2 информацию о себе, в том числе свой идентификатор (см. константу баз на БСП "Идентификатор информационной базы"). В случае, если такой базы в справочнике баз нет. будет создан новый элемент. Далее элемент можно будет переименовать для удобства восприятия представления.

В случае, когда R2-D2 самостоятельно инициирует подключение к контролируемым базам, механика работает по регламентному заданию.

На сбор информации об обменах - отдельное регламентное задание.

На анализ ошибок обменов и формирование уведомлений - отдельно регламентное задание.


Механика сбора и очистки Журналов регистрации

Предполагается, что каждую ночь начиная с последнего успешно загруженного периода по конец предыдущего дня Журналы регистрации "переливаются" в R2-D2, а затем очищаются. 


Внедрение

1. Скачать архив этой статьи

2. Развернуть базу из "R2D2 1.1.cf".

3. Если планируется использовать пассивное WS-соединение, то необходимо опубликовать новую базу на веб-сервере.

4. Выбрать способ соединения с контролируемыми базами

4.1. Если COM-соединение:

4.1.1. Добавить вручную базы в список баз (см. "Информационные базы"), выбрать способ соединения "COM". 
4.1.2. Настроить регламентные задания "Сбор данных о выполнении обменов" (например каждые 10 минут) и "Загрузка журналов регистрации информационных баз (ППЖР)" (например каждую ночь с 01:00 по 06:00, повторять каждые 30 минут)

4.2. Если WS-соединение (активное):

4.2.1. Каждую из баз опубликовать на веб-сервере с флагом "Публиковать Web-сервисы расширений по умолчанию"
4.2.2. В каждую клиентскую базу добавить расширение "пп_КлиентR2D2.cfe"
4.2.3. Добавить вручную базы в список баз (см. "Информационные базы"), выбрать способ соединения "Web-service".
4.3.4. Настроить регламентные задания "Сбор данных о выполнении обменов" (например каждые 10 минут) и "Загрузка журналов регистрации информационных баз (ППЖР)" (например каждую ночь с 01:00 по 06:00, повторять каждые 30 минут)

4.3. Если WS-соединение (пассивное):

4.3.1. Клиентские базы сами добавятся в справочник при первом подключении.
4.3.2. Добавить пользователя с полными правами в R2-D2
4.3.3. Для обработок "ОтправкаСостоянияОбменовВR2D2.epf" и "ОтправкаЖурналаРегистрацииВR2D2.epf" в функции "Соединение()" модуля обработки прописать Пользователь и Пароль подключения к R2-D2
4.3.4. В каждую клиентскую базу добавить:

4.3.4.1. Расширение "пп_КлиентR2D2.cfe"
4.3.4.2. Внешнюю обработку "ОтправкаСостоянияОбменовВR2D2.epf", настроить регламент выполнения (например каждые 10 минут)
4.3.4.2. Внешнюю обработку "ОтправкаЖурналаРегистрацииВR2D2.epf", настроить регламент выполнения (например каждую ночь с 01:00 по 06:00, повторять каждые 30 минут)

4.3.3. Запустить регламенты. В этот момент 

5. Каждую из баз необходимо настроить (см. вкладку "Функциональность" на форме элемента справочника Информационные базы)

6. Если требуется рассылка аварийных уведомлений по статусам обменов, то необходимо настроить расписание регламентного задания "Формирование уведомлений контрольных операций (ПП)", а также "Отправка контактных сообщений (ПП)", для которого потребуется еще настройка почты. Более подробно см. описание системы Монитор обменов (ссылка есть в разделе Особенности).

7. На этом - всё, оно должно работать.


Плюсы

1. Удобное администрирование контролируемых информационных баз "в одном месте"
2. Журналы нескольких информационных баз "в одном месте". Это удобно, например, для того, чтобы легко можно было проследить где было последнее изменение какого-то определенного элемента справочника, если у Вас есть обмены данными (или РИБ).
3. Загруженный журнал в R2-D2 индексирован по основным полям поиска, что делает поиск гораздо более приятной и значительно более быстрой процедурой, нежели поиск с помощью платформенных инструментов.
4. Текущая информация об обменах - тоже в одном месте
5. Ссылочные данные загружаются в справочник "Данные" с идентификатором. Очень удобно при отборах. Аналогично - справочник "Метаданные", "События" и проч.


Требования, ограничения

1. Работает ТОЛЬКО с конфигурациями на БСП.
2. Работает ТОЛЬКО с информационными базами, которые используют НОВЫЙ формат хранения Журнала регистрации (SQL lite).


Особенности
1. Написана на БСП
2. Используется переработанная система Монитор обменов как подсистема
3. Используется подсистема рассылки сообщений


Планы

Единый центр рассылки заданий, центр управления пользователями и профилями, центр тиражирования расширений и т.п. То есть сервис, предоставляющий удобные функции для управления некоторым множеством информационных баз. Поддержка разных СУБД для хранения Журнала регистрации (Elastic Search, Click House и т.п.) К сожалению, всё упирается в свободное время.


Состав архива

1. R2D2 1.1.cf - конфигурация R2-D2
2. пп_КлиентR2D2.cfe - расширение конфигурации для клиентских баз (контролируемых баз)
3. ОтправкаСостоянияОбменовВR2D2.epf - внешняя обработка для регламентного выполнения отправки сведений о статусах обменов БСП в R2-D2
4. ОтправкаЖурналаРегистрацииВR2D2.epf - внешняя обработка для регламентного выполнения отправки журнала регистрации в R2-D2 и очистки Журнала регистрации.

Скачать файлы

Наименование Файл Версия Размер
R2-D2. "Техничка" для информационных баз 1С:
.zip 35,82Mb
14.06.18
3
.zip 1.1 35,82Mb 3 Скачать

См. также

Комментарии
1. gorakh I (gorakh) 17 14.06.18 11:34 Сейчас в теме
"с конфигурациями на БСП" начиная с какой версии? Или на каких версиях БСП?
2. Павел Бабинцев (pbabincev) 100 14.06.18 11:48 Сейчас в теме
(1)
Версии БСП которые сейчас используются в типовых. Видимо это от 2.4.
3. Павел Бабинцев (pbabincev) 100 14.06.18 11:49 Сейчас в теме
+ (2)
На самом деле не думаю что это проблема адаптировать для более старых версий БСП (если они вдруг не подходят). Там не так сильно всё завязано.
4. Юрий Патласов (NoRazum) 20 14.06.18 12:00 Сейчас в теме
Похожий механизм сделал.
Сколько база потом начала весить?

У меня 2 - УТ 11, Розница 2, 2 - Бухгалтерия, ЗУП.
За полгода база стала весить 17 гб.
Хотя самая большая база всего 8 гб.

с журналом стало легче работать и отслеживать.
5. Павел Бабинцев (pbabincev) 100 14.06.18 12:25 Сейчас в теме
(4)
В последний раз смотрел R2-D2 весил примерно 20 гигов, в РС Журнал регистрации 16 млн записей. Это менее чем за месяц работы. Посмотрим что будет дальше. Скорее всего такие объемы быстрее меня сподвигнут сделать поддержку другой СУБД (еластик, клик хаус).
Обслуживается 16 баз (РИБ + пара баз других конфигураций)
unichkin; NoRazum; +2 Ответить
Оставьте свое сообщение