Решения от 1С используются в большинстве российских компаний. Однако, несмотря на такую известность, тема построения DevOps на решениях 1С пока освещается на просторах сети не слишком активно. В этой статье мы попробуем разобраться с тем, как можно использовать DevOps‑подход в контексте разработки на платформе 1С:Предприятие 8.
И снова про DevOps
Напомним, что DevOps (сокращение от development и operations) — это методология, направленная на автоматизацию процессов сборки, настройки и развёртывания программного обеспечения. Она объединяет разработчиков и специалистов по IT‑обслуживанию, способствуя тесному взаимодействию и интеграции их процессов для достижения высокого качества программного продукта. Также такой подход часто называют культурой DevOps — подчеркивая, что речь идет не только об использовании технических средств и программных решений, но и о взаимодействии команд разработки и внедрения.
Основная цель DevOps — повышение эффективности создания и обновления программных продуктов и услуг за счёт устранения барьеров между разработкой и эксплуатацией. Методология основывается на концепции взаимозависимости между созданием и эксплуатацией ПО, что и формирует культуру совместной ответственности за конечный результат.
DevOps внедряется как подход к улучшению гибкости, скорости и надёжности разработки, позволяя быстрее реагировать на изменения и обеспечивать пользователям стабильные обновления с минимальными рисками.
Методология DevOps позволяет автоматизировать технологические процессов сборки, настройки и развёртывания программного обеспечения. Так, дневной цикл выпусков ПО может быть гораздо более интенсивным у организаций, которые выпускают несколько разнонаправленных приложений.
Таким образом, внедрение основных инструментов DevOps в разработку на платформе 1С:Предприятие может значительно повысить эффективность и скорость процессов выпуска программных продуктов.
Давайте посмотрим, как продукты 1С (и не только) могут использоваться в рамках методологии DevOps. Начнем с разработки.
1С EDT
1C:Enterprise Development Tools — это среда для разработки под 1С: Предприятие, которая основана на базе открытой платформы Eclipse. Преимуществом EDT является возможность использования этой среды для разработки многих конфигураций, расширений конфигураций, внешних обработок и внешних отчетов. Можно быстро переключаться между разрабатываемыми приложениями внутри самой среды разработки.
В целом, EDT содержит большое множество различных средств разработки, позволяющих существенно упростить и автоматизировать процесс написания кода. Также функционал среды разработки можно расширить с помощью плагинов.
Также Enterprise Development Tools может работать на различных операционных системах — Windows, Linux, macOS. Таким образом, среда 1C:EDT позволяет сделать разработку гибкой и удобной.
Но вернемся к процессу CI/CD, лежащему в основе DevOps. Для эффективной командной работы необходима интеграция с системой контроля версий, позволяющей сохранять предыдущие версии кода, при необходимости возвращаться к ним, совместно работать с кодом, делать отдельные ветки для разработки новых функций и многое другое.
Существует несколько систем контроля версий, но, пожалуй, наиболее распространенной является Git. 1С:EDT может интегрироваться как с Git, так и с другими системами контроля версий.
Анализируем код
Итак, мы начали разработку, подключили репозиторий, команды пишут код, работают с версиями, и теперь нам важно автоматизировать процесс статического анализа исходного кода. По сути, это процесс проверки программного кода без его фактического выполнения. Он основан на анализе структуры, синтаксиса и семантики кода, с целью выявления потенциальных проблем и ошибок.
Статический анализ помогает разработчикам обнаружить ошибки и потенциальные проблемы в коде на ранних этапах разработки, еще до его компиляции или выполнения. Это позволяет сэкономить время и усилия, которые могли бы быть затрачены на поиск и исправление ошибок в более поздние стадии разработки или даже после выпуска продукта.
Например, мы можем обнаружить неправильное использование переменных, неиспользуемый код, неправильное применение функций или недостаточное или избыточное использование области памяти.
Статический анализ также связывают с безопасной разработкой, так как при этом виде анализа можно выявлять использование потенциально небезопасных функций, захардкоженные пароли и другой потенциально опасный код.
Здесь 1С также предлагает свое решение 1С:Автоматизированная проверка конфигураций (1С:АПК). Данное решение выполняет проверку технического качества конфигураций в режиме разовой и регулярной проверки конфигурации.
Для работы в конвейере CI/CD нас, конечно, больше интересует регулярная автоматическая проверка.
Здесь мы можем настроить проверку конфигураций по расписанию, автоматическое обновление проверяемой конфигурации из сетевого хранилища конфигурации (при коллективной разработке). Также, в этом случае мы можем выполнить инкрементальную проверку только последних измененных объектов, что многократно ускоряет проверку в целом и позволяет выполнять проверки чаще.
При необходимости мы можем сделать исключения из проверок или указать выполнение проверок только для определенных объектов конфигурации.
Однако, в случае если функционала АПК вам недостаточно, вендор рекомендует использовать ПО SonarQube — в нём реализована поддержка анализа прикладного кода 1С:Предприятия с помощью специального плагина.
От проверок кода к тестам
Следующим шагом идёт тестирование наших конфигураций. Тестирование направлено на проверку соответствия функциональным требованиям и спецификациям продукта, а также на установление его работоспособности в различных сценариях использования.
В экосистеме платформы 1С существует ряд программных продуктов, которые отвечают за тестирование: 1С:Сценарное тестирование, 1С:Тестировщик и 1С:Тест‑центр. Первый продукт позволяет автоматизировать все потребности специалистов по тестированию, включая планирование работ, проектирование тестов, выполнение тестирования и анализ полученных результатов. Так, мы можем осуществить имитацию всех действий пользователя с интерфейсом тестируемой конфигурации, автоматизировать выполнение теста до точки остановки с возможностью продолжения выполнения в пошаговом или автоматическом режиме, запротоколировать выполняемые действия и многое другое.
1С:Тестировщик является упрощенной версией Сценарного тестирования, предназначенной для ознакомления широкого круга пользователей с возможностями автоматизированного тестирования приложений в простых случаях. Стоит отметить, что оба этих продукта совместимы между собой.
1С:Тест‑центр предназначен для выполнения нагрузочного тестирования. Нагрузочное тестирование позволяет оценить производительность, стабильность и готовность системы к работе при высоких нагрузках.
С помощью 1С:Тест‑центра эксперты и разработчики могут проводить нагрузочное тестирование системы с оптимальной гибкостью и удобством. А также могут создавать «реалистичные» сценарии использования системы, моделировать различные типы нагрузки и проводить тестирование в распределенной среде. По результатам тестирования можно выявить узкие места и оптимизировать производительность системы.
Инфраструктура как код
Технология инфраструктура как код (IaC) позволяет создавать нужную для работы систем инфраструктуру в облачных средах. Например, мы можем с помощью кода описать создание нужного числа виртуальных машин с соответствующими сетевыми интерфейсами и подсетями.
В 1С для этих целей можно использовать продукт 1С:Центр администрирования. Вся функциональность 1С:ЦА реализована с помощью выполнения внешних скриптов на целевом сервере. При этом, поддерживается любой скриптовый интерпретатор и язык программирования к нему.
Мониторинг самочувствия
После того, как наше решение будет развернуто в продуктивной среде, нам важно отслеживать текущее состояние и своевременно выявлять проблемы с производительностью. Важно понимать, что анализ проблем является важной частью процесса управления информационными системами.
Для решения задач мониторинга в 1С предусмотрено решение 1С: Центр управления производительностью (1С: ЦУП), которое предоставляет администраторам информационных систем возможности для обнаружения и анализа проблем, связанных с производительностью. С помощью этого инструмента можно получить информацию о состоянии системы, нагрузке на процессор, память, дисковую подсистему, сеть и другие ресурсы.
1С:ЦУП предоставляет возможность установить определенные пороги для параметров производительности, такие как использование процессора, память, пропускная способность сети и другие. Когда значения параметров превышают заданные пороги, 1С: ЦУП автоматически генерирует предупреждения или оповещения, чтобы предотвратить возможные проблемы производительности.
Центр управление производительностью собирает информацию по следующим основным группам показателей: работа запросов к СУБД, серверные вызовы, ожидания на блокировках данных, количество взаимоблокировок, количество таймаутов и произвольные счетчики ОС.
Результаты можно представить в виде различных графиков, при этом эксперт может сделать выборку по различным интервалам времени и другим интересующим параметрам.
Заключение
В этой статье мы кратко рассмотрели тот набор инструментов, который предлагает 1С для реализации DevOps и конвейера CI/CD. С помощью данных инструментов можно автоматизировать процесс разработки новых конфигураций.
В завершение напоминаю про открытый урок 21 января, на котором будут разбираться современные решения для автоматизации задач обслуживания 1С. Записаться можно по ссылке.
saag
Эта самая 1С:EDT может на голубом глазу сообщить, что не обнаружила поддерживаемую версию 1С, даже если ей указать путь к ней