Контейнеры. Как Обрабатывать Большие Развертывания С Помощью Таких Инструментов, Как Gitlab И Docker.

  • Автор темы CartoonX
  • Обновлено
  • 21, Oct 2024
  • #1

Как развернуть несколько экземпляров (более 40) одного и того же приложения с помощью gitlab? (это простое веб-приложение Tomcat)

Я хочу иметь возможность индивидуально обновлять/понижать их версию с помощью веб-интерфейса.

У нас уже есть рабочий конвейер gitlab+docker, который развертывает один экземпляр приложения. Мы пока не используем k8s.

Должны ли мы создавать среду gitlab для каждого экземпляра? Есть ли у нас варианты получше, кроме среды gitlab?

Обновлять:

Экземпляры (веб-сайты) различаются: они имеют одинаковую кодовую базу, но разную конфигурацию. Сейчас масштабирование не является приоритетом, нам действительно нужен интерфейс для добавления, развертывания, обновления и понижения версии веб-сайтов. Я пробовал среду gitlab в небольшом проекте, и это действительно здорово, когда у вас есть один или два веб-сайта, но когда у вас 10 или более и у вас есть одна среда для каждого веб-сайта, .gitlab-ci.yml растет в геометрической прогрессии.

CartoonX


Рег
28 Nov, 2011

Тем
63

Постов
198

Баллов
523
  • 25, Oct 2024
  • #2

документация показывает, что у вас может быть более 40 ветвей с разными конфигурациями. Вы выражаете обеспокоенность тем, что конфигурация становится большой. С хорошим редактором это не проблема. И все же это кажется неправильным, не так ли?

В целом, в git репозиторий для каждого независимого развертываемого объекта работает лучше, чем один репозиторий, содержащий множество независимых развертываемых объектов. Таким образом, альтернативная схема — это не 1 репо с 40 филиалами, а 1+40 репозиториев. Это будет один репозиторий, в котором будет собран последний код и создает релизы. Затем 40 репозиториев, представляющих конфигурацию для развертывания определенной версии кода, настроенной для одного веб-сайта. 40 репозиториев, в которых развертывается код, могут содержать 40 конфигураций для каждого веб-сайта и стандартизированный сценарий сборки, который просто загружает нужную версию кода для развертывания вместе с конфигурацией веб-сайта в среду.

Мы используем 1+N+M репозиториев git. У нас есть 1 репозиторий, в котором хранятся сценарии развертывания. Они версионируются и выпускаются. У нас есть N репозиториев, которые объединяют различные приложения в выпуски. В настоящее время два приложения PHP и два приложения реагирования работают вместе, но развертываются и обновляются независимо. Затем репозитории M, представляющие среды/сайты, которые мы развертываем, которые в настоящее время только промежуточные и активные.

Мы используем k8s (OKD), а сценарии развертывания — helm. Это просто означает, что наши сценарии развертывания и настройка среды стали проще, а откат/понижение версии полностью автоматизированы. На самом деле мы не загружаем приложение для развертывания во время сборки. Вместо этого мы просто извлекаем тег реестра Docker той версии кода, которую хотим развернуть в данной среде.

Я начал проект по открытию нашего подхода к развертыванию приложений из git, который называется ОКР. Работа все еще находится в стадии разработки, но она демонстрирует некоторые из вышеперечисленных идей.

 

Andrey Stepko


Рег
22 Oct, 2020

Тем
77

Постов
188

Баллов
573
Похожие темы Дата
Похожие темы
Python – Как Создавать Динамические Этапы В Конвейере Дженкинса
Веб-Сервисы Amazon. Можно Ли Читать Защищенные Ключи Из Aws-Secrets-Manager Без Использования Доступа К Aws И Секретного Ключа?
Go — Какую Функцию Golang Можно Использовать Для Обеспечения Минимального Покрытия Кода И Возврата Exit1, Если False?
Какова Правильная Взаимосвязь Между Показателями Отката/Наката Вперед И Показателями Mttr?
Культура - Как Стать Ит-Директором?
Docker – Сколько Экземпляров Бд Использовать? Когда Переходить На Контейнерные Сервисы?
Каковы Наилучшие Методы Решения Проблемы «Все Файлы/Каталоги Будут Иметь Разрешения «-Rwxr-Xr-X» При Создании Образов Docker В Windows?
Dns — Где Мне Установить Этот Сертификат Агента Для Puppet В Amazon Linux?
Dockerfile — Минимизировать Время Выполнения `Docker Build` Внутри Контейнеров Docker-In-Docker.
Объявление И Использование Локальной Переменной Docker-Compose
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно