Микросервисы на 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

См. также

Автотесты для типовых конфигураций ERP Управление предприятием 2 и Комплексная автоматизация 2 (для vanessa automation)

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

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

2220 руб.

04.07.2022    6937    26    1    

24

Автотесты для типовых конфигураций Бухгалтерия предприятия КОРП 3.0 и Бухгалтерия предприятия 3.0 (vanessa automation)

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

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

1728 руб.

20.01.2022    6710    10    0    

9

Системы контроля версий для 1С-разработчиков.

1С-программирование DevOps и автоматизация разработки Групповая разработка (Git, хранилище) DevOps для 1С Платформа 1С v8.3 Платные (руб)

Основы командной разработки на 1С. Использование систем контроля версий при разработке на платформе 1С:Предприятие 8

4900 руб.

29.06.2022    9387    78    4    

112

Управление сборкой. Расширение для конфигурации СППР

DevOps и автоматизация разработки Платформа 1С v8.3 Конфигурации 1cv8 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Подсистема «Управление сборкой GLI» предназначена для динамического формирования сборочных линий Gitlab и отслеживания процесса доработок систем на базе1С:Предприятия Позволяет упростить выпуск новых релизов системы, подготовить описание доработок системы. Интегрируется с GitLab API по событиям Push, Merge-request, Pipeline. Уведомляет пользователей о результатах сборки/тестирования сборочных конвейеров через СВ, либо при её недоступности или отсутствию по E-Mail. Поможет при отправке исправлений ошибок в общую базу тестирования, сформирует запросы на слияние в ветку версии только по протестированному и подтверждённому функционалу. Подсистема рассчитана исключительно на клиент - серверную архитектуру тестовых ИБ. Поддерживаемая версии СППР 2.0.4.15, платформа не ниже 8.3.17.1549, 2.0.7.3 / не ниже 8.3.21.1664, начиная с релиза 1.0.4.30 требуется платформа не ниже 8.3.23 рекомендуемый релиз 8.3.23.1997

7000 руб.

26.08.2022    10775    7    5    

30

Автоматическое подтверждение легальности обновления базы или как обновить 100 типовых баз 1С за 5 часов

DevOps и автоматизация разработки Обновление 1С Платформа 1С v8.3 Конфигурации 1cv8 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Расширение для конфигураций 1С для автоматического подтверждения легальности обновления и выполнения обработчиков обновления при пакетном автоматическом обновлении большого числа баз 1С. А также сам модуль обработки по автоматическому обновлению баз.

2 стартмани

08.05.2019    24400    56    VPanin56    26    

27

1С, СППР и Архитектура как код

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

Можно ли идеи подхода «Архитектура как код» положить на 1С или иную платформу, чтобы не изобретать ещё какой-то язык и сразу получить множество готовых библиотек функций и инструмент достижения главной цели подхода AaC.

01.02.2024    2739    roman72    9    

8

TCP прокси-сервер хранилища конфигурации 1С

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) OneScript Платформа 1С v8.3 Бесплатно (free)

Продолжение истории с прокси хранилища, но уже не на HTTP, а на TCP и без падений по памяти веб-сервера. Проверяем комментарии хранилища, вызываем веб-хуки, старты пайплайнов, gitsync по событию помещения версии в хранилище. И все это полностью на знакомом и понятном OneScript.

17.01.2024    3007    kamisov    17    

60

Infrastructure as code: кнопка «Сделать всё», или Упаковываем наше окружение в 5 кБ текста

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

Когда под каждый проект нужно развернуть отдельный стенд разработки и сборочную линию для его обслуживания, велик риск влияния человеческого фактора. О том, как зафиксировать инженерный опыт в скриптах и унифицировать необходимые настройки для автоматизированного разворачивания инфраструктуры с помощью Terraform и Ansible, пойдет речь в статье.

01.11.2023    1390    Libelle    5    

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


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