Микросервисы на Golang. Часть 6. Докеризация, Начальная оркестрация, CD\CI

21.06.21

Разработка - DevOps и автоматизация разработки

Создадим микросервис, поместим его в докер, проведем его масштабирование на нескольких виртуальных машинах с помощью оркестрации Docker Swarm, выполним также CD\CD микросервиса с помощью GitHub Action (Микросервис взят с прода, обрезан лишний функционал) будет показан пример его взаимодействия с 1С клиентом.

Предыдущие и будущие статьи:

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

Возьмем для примера только функционал получения количества записей и очистки, выглядит это в 1С так. 

Вырезал из микросервиса все лишнее и положил его в ранее опубликованный GitHub репозиторий посмотреть можно тут

Как собрать этот микросервис и поместить в докер можно посмотреть в ранних статьях цикла.

Предположим, что у нас появилось условно 100 000 аналитиков :), которые регулярно взаимодействуют с postgresql, теперь один наш контейнер с микросервисом не способен обработать такой поток нагрузки. Поэтому мы применяем оркестрацию контейнеров. Например это умеют Kubernetes, но более простой вариант для понимания - это Docker Swarm, его и рассмотрим в статье. (Маcштабирование postgresql, серверов и сети в этой статье рассматривать не будет, предполагается, что оно уже сделано).

Docker Swarm умеет объединять несколько северов в кластер, распределяя между ними множество контейнеров - например, для моих микросервисов используется 3 сервера.

А сам микросервис запушен в 80 контейнерах, которые система распределяет по серверам (можно сказать, оркестрирует).

Развернуть все это можно yml скриптом, он очень похож на docker-compose файл.

Стрелочками я выделил количество контейнеров, а также образ для контейнера. Собрал я образ с помощью GitHub Action (инструмент из области CD\CI).

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

Вкратце - GitHub Action на основании скрипта собирает образ и помещает его в реджестри (регистр образов для докера). Кстати, Docker Hub является одним из самых популярных публичных регистров образов. Как туда поместить свой собственный образ я тоже писал ранее.

GitHub Action выглядит примерно так:

Видел, как некоторые делали CD\CI 1С на GitHub Action, найти такие материалы - это возможность погрузиться в этот функционал глубже...

Когда выполняется коммит в код микросервиса, стартует сборка, которая в конечном итоге обновляет докер образ в registry, а Docker в режиме Swarm обновляет запущенные контейнеры на новый образ перезапуская все 80 запущенных реплик.

Я сделал докер образ публичным, можете с ним экспериментировать, если интересно

Пример клиента на 1С тоже есть в репозитории. Запускался на 8.3.18.1208

P.S. Интересно, увидим ли мы платформу 1С в докер контейнерах, которые можно легко масштабировать и компоновать?

Вступайте в нашу телеграмм-группу Инфостарт

Golang Go Docker Swarm CD\CI GitHub Action Orchestration

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Тестирование QA DevOps и автоматизация разработки Программист Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет Платные (руб)

Автотесты 1С - готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Бухгалтерия предприятие 3.0 и версии КОРП: 3.0.190.11.

5368 руб.

20.01.2022    11514    48    1    

21

DevOps и автоматизация разработки Тестирование QA Программист Пользователь 1С:Предприятие 8 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Автотесты 1С - готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Зарплата и Управление Персоналом 3 и версии КОРП: 3.1.35.48.

5000 руб.

05.08.2024    5773    36    1    

20

Тестирование QA DevOps и автоматизация разработки Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Налоговый учет Платные (руб)

Готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарии возможно использовать как для vanessa-automation, так и для СППР. Поддерживаемые версии конфигураций ERP2 и КА2: 2.5.22.145.

5000 руб.

04.07.2022    13605    50    6    

39

DevOps и автоматизация разработки Программист Бесплатно (free)

Статья о том, как команда 1С смогла перейти от ручного управления к полноценной автоматизации, внедрив практики DevOps в среде 1С. Разбираем проблемы, которые мешали развиваться: медленный процесс командной разработки, отсутствие тестирования, длительные релизы, хаос с хотфиксами и ручные действия на каждом этапе. Объясняем, как внедренные решения – GitLab, Jenkins, автоматизированные пайплайны, тестовое окружение, стандарты разработки и тестирования – позволили масштабировать команду и повысить стабильность поставок.

14.04.2026    588    Sicuro    4    

1

DevOps и автоматизация разработки Мониторинг Системный администратор Программист Бесплатно (free)

Практический гайд по применению DevOps-практик в 1С-инфраструктуре: контейнеризация СУБД, инфраструктура как код, мониторинг с алертами, автоматические бэкапы. Разбираю подводные камни и делюсь готовыми конфигами. Для 1С-разработчиков, которые хотят автоматизировать рутину и приблизиться к продакшен-среде.

06.04.2026    8977    vladimir-89    10    

28

DevOps и автоматизация разработки Программист Бесплатно (free)

Если вы думаете, что внедрение CDC конвейера — это геморрой, то вы правы. Но мы уже прошли через все боли: от настройки MSSQL CDC до танцев с Kafka и ClickHouse. Теперь конвейер работает и данные ключевых операций в 1С, от которых зависит бизнес, попадают в ClickHouse, где их можно анализировать и использовать для мониторинга в реальном времени. В этой статье я расскажу, как выглядит архитектура и с какими проблемами можно столкнуться

05.03.2026    992    NesterTop1    4    

5

DevOps и автоматизация разработки EDT Программист Бесплатно (free)

Разбираемся, почему ручной деплой в 1С все еще жив и сколько времени он на самом деле занимает, несмотря на стремительное развитие CI/CD-подходов. На реальном кейсе показываем, что корень проблемы чаще кроется не в автоматизации, а в ее неэффективной настройке. Событийная модель вместо расписаний, параллельные тесты, использование кеша Gitlab для оптимизаций и правильные настройки для управления репозиториями на раннерах радикально меняют скорость delivery. Объясняем, почему переход на Docker иногда замедляет процесс, как платформенные особенности 1С влияют на пайплайны и какие стратегии позволяют устранить узкие места. Материал будет полезен тем, кто хочет понять реальную стоимость ручного деплоя и сравнить ее с возможностями правильно настроенной автоматизации.

04.03.2026    1118    konst1231    0    

4

DevOps и автоматизация разработки EDT Программист 1С 8.3 Бесплатно (free)

Входные данные - конфигурация 1С в формате EDT, для системы контроля версий используется Git, две базы - рабочая и тестовая. Задача: коммит в ветку должен автоматически обновлять базу. Без ручного запуска конфигуратора, без «сохрани CF и скопируй на сервер». Инструмент - GitHub Actions + PowerShell-скрипты на сервере. Платформа 8.3.27.

27.02.2026    1568    BiLBelarus    0    

8
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Eremkin 23.11.21 11:14 Сейчас в теме
P.S. Интересно, увидим ли мы платформу 1С в докер контейнерах, которые можно легко масштабировать и компоновать?


Полагаю вопрос с лицензированием несколько затрудняет сборки таких контейнеров. С USB в принципе нетрудно "прокинуть" hasp.ini, но вот с программными конечно то еще приключение. Смотрел как-то вебинар на эту тему. В конце уже запутался где и что делать нужно. Хотя другие люди не стесняются выкладывать на докер хаб образы с пропатченными 1С внутри.
2. dmitry-irk38 139 12.12.21 18:24 Сейчас в теме
(1) Тут идея в том что сама 1С разбивает монолитную платформу на контейнеры, где каждый контейнер отвечает за разные функции. Нужно человеку маштабирование до 10 000 пользователей, добавил реплик\нодов и система держит нагрузку. Некоторые компании ушли от монолита и поставляют микросервисную платформу например SAS
3. Eremkin 14.12.21 17:02 Сейчас в теме
(2)Серверную часть теоретически можно распихать по контейнерам. Ведь под капотом 100500 служб, которые между собой общаются через RPC. Правда там и без микросервисов хватаем различных метаморфоз. И споры по поводу Microservices vs Monolith еще не утихли.
Для отправки сообщения требуется регистрация/авторизация