Одна из ведущих компаний по разработке информационных систем на базе 1С обратилась к нам с вопросом автоматизации разработки и тестирования кода в рамках реализации проекта Delans.
Задачи клиента
Особенность разработки программных решений для сервиса Delans состоит в том, что код пишется в существующей базе 1С непосредственно в конфигураторе платформы 1С:Предприятия и сохраняется в конкретной базе или сохраняется отдельно в качестве внешней обработки, что значительно уменьшает возможности разработки программистов 1С.
В результате проведения конференции по оценке деятельности разработчиков 1С были выявлены следующие задачи клиента:
- автоматизировать процесс разработки;
- автоматизировать тестирование написанного кода;
- использовать систему версионности кода;
- реализовать возможность работы нескольких программистов над одним проектом;
- унифицировать Dev-среду, приблизить ее к Stage и Prod;
- получить удобный инструмент развертывания и управления Dev-средой.
Как мы решили задачи клиента
Для унификации Dev-среды был использован docker и контейнеризация основных сервисов: веб-сервер для публикации базы, сервер 1С и сервер СУБД. Из-за особенностей компиляции кода в 1С, был развернут отдельный сервер с легковесным иксами, для запуска конфигуратора, а также проведения автотестов. Проекты программистов были размещены на Gitlab, где кроме системы версионности и коллаборации, использовался механизм CI для автоматического деплоя кода в конфигурацию и запуска автотестов.
Таким образом, после объединения версий в ветку проекта (dev, stage) запускался механизм CI, который создавал и публиковал отдельную базу, компилировал и встраивал код в конфигурацию, запускал функциональные автотесты. Для удобства программистам 1С была развернута инфраструктура OneScript, которая позволяла работать с другими подсистемами инфраструктуры посредством привычном им синтаксиса языка 1С. Все сервисы были подключены к системе мониторинга zabbix,в которой снимались основные параметры доступности и производительности системы.
Рисунок 1 – Схема использованной инфраструктуры
Результат проекта
В результате выполнения проекта заказчик получил:
- унифицированную Dev-среду, которая разворачивается автоматически на любой инфраструктуре;
- автоматический механизм компиляции и деплоя кода;
- автоматическую систему тестирования;
- систему версионности кода.