«1С» анонсировала новый инструмент для автоматизации операций – 1С:Центр администрирования. Для описания скриптов автоматизации был выбран Python.
Как в своем блоге пишет фирма «1С», администрирование теперь станет простым. Инструмент пока находится в стадии beta-тестирования. Основное предназначение продукта – автоматизация рутинных операций, связанных с обслуживанием инфраструктуры 1С. «Из коробки» поставляются готовые сценарии автоматизации, но разработчик прикладного решения может разработать собственные. Вот список сценариев, поставляемый в комплекте:
скачивание обновлений прикладных конфигураций, технологической платформы 1С:Предприятие 8, PostgreSQL;
установка/обновление/удаление технологической платформы 1С:Предприятие 8;
обновление прикладных решений (конфигураций) на новые релизы;
удаленная настройка кластера серверов 1С:Предприятия 8;
настройка программных компонентов через централизованное развертывание файлов настроек.
Выполнение таких типовых задач администрирования как:
перезапуск служб;
сбор, копирование, архивирование технологических данных (журналы, счетчики и т.д.);
выполнение внешних обработок.
Как пишет «1С», состав сценариев будет пополняться.
Судя по описанию, решение построено по концепции сервер-клиент. Клиентская часть – агенты, установленные на компьютере, по http протоколу забирают инструкции и скрипты для выполнения с сервера и сообщают ему результат выполнения.
Что интересно: серверная часть, управляющая конфигурация – это стандартная 1С конфигурация, таким образом возможна ее доработка под конкретные нужды.
К большой радости 1С-разработчиков, увлекающихся языком программирования Python: внезапно, в качестве языка автоматизации в сценариях используется именно этот язык. Да, это не опечатка :) поддерживается только Python, без языка 1С.
Базовый функционал – создание сценариев автоматизации из существующих шаблонов.
Также доступен конструктор новых сценариев автоматизации.
Сценарии могут быть запущены по расписанию.
Так как это не финальная версия продукта, в ней реализованы не все запланированные возможности. А в планах у «1С» следующее:
версионирование сценариев;
возможность использовать в конструкторе условия и циклы;
работа с артефактами и расширение инструментария по анализу результатов выполнения сценариев. Касаемо артефактов: тут, очевидно, «привет» teamcity и подобным системам continuous Integration. Для тех, кто не работал с ними, уточню: в процессе запуска задания могут появляться какие-либо данные. В случае с 1С это может быть файл cf или данные из журнала регистрации. Именно эти данные, получившиеся в результате выполнения, и называются артефактами;
удаленный запуск сценариев (по внешнему событию).
1С:Центр администрирования – довольно интересный инструмент, цель которого очевидна: предоставить возможность вести разработку на 1С по методологии DevOps. Само собой, это не серебряная пуля, установка которой решит все проблемы в ваших процессах разработки. Но это инструмент, с помощью которого можно вывести разработку решений на новый уровень. В ручных операциях все хорошо, когда есть исполнитель, точно помнящий их последовательность.
Как только происходит замена этого исполнителя, начинаются проблемы, связанные с неточностью документации, увеличением времени на уточнение шагов для выполнения этого действия и сопутствующие проблемы.
Автоматические методы имеют свои недостатки, но они лишены человеческого фактора и выполняют те же действия за меньшее время. Плюс это способ разгрузить разработчика от монотонной работы и предоставить больше времени для разработки.
Если вам удобнее смотреть новости в телеграме, то вот наша группа – ИНФОСТАРТ.
Комментарии
Скрипт = Новый ИнтерпретаторPython(ТекстСкрипта);
Скрипт.УстанвоитьПеременную("НекаяПеременняКонтекста",НекоеЗначениеСовместимогоТипа);
Скрипт.Выполнить();
Результат = Скрипт.ПолучитьПеременную("НекаяПеременняКонтекстаСРезультатом");
Консоль = Новый ИнтерпретаторPython();
Консоль.Выполнить("class X(object): pass");
Консоль.Выполнить("y = X()");
Консоль.Выполнить("X.MyMethod = lambda self : 'My Method'");
Консоль.Выполнить("r = y.MyMethod()");
Рез = Консоль.ПолучитьПеременную("r");