Развертывание на нескольких производственных серверах

У нас есть основной репозиторий на основе Gitlab CD/CI. Теперь, когда мы выросли, нам было трудно обновлять каждое из приложений наших клиентов с помощью автоматического развертывания с помощью Git.

Теперь мы ищем решение, когда пройдены этапы производства и пройдены тесты, после чего все наши клиенты получают самое последнее развертывание и автоматически получают обновления. (Продолжение доставки)

В Gitlab есть развертывание для производства, но это касается отдельного производства, мы хотим продублировать эти шаги для каждого зеркала.

2 ответа

Этап развертывания Gitlab-CI может иметь несколько сред, для каждой из которых вы можете установить автоматическое / ручное развертывание.

Пример: просто измените постановку на customer1, производство на customer2 и добавьте столько, сколько вам нужно.

stages:
  - test
  - build
  - deploy

test:
  stage: test
  script: echo "Running tests"

build:
  stage: build
  script: echo "Building the app"

deploy_staging:
  stage: deploy
  script:
    - echo "Deploy to staging server"
  environment:
    name: staging
    url: https://staging.example.com
  only:
  - master

deploy_prod:
  stage: deploy
  script:
    - echo "Deploy to production server"
  environment:
    name: production
    url: https://example.com
  when: manual
  only:
  - master

Другим решением было бы автоматическое обновление приложений, если у вас нет доступа к средам ваших клиентов.

Также ознакомьтесь со Spinnaker, который, кажется, специально для CD.

Вы можете проверить DeployHQ. Он поддерживает развертывание на неограниченное количество серверов одновременно.

Другие вопросы по тегам