Skip to content

Обзор деплоя

Наша модель деплоя следует стратегии продвижения по веткам: каждая долгоживущая ветка Git напрямую соответствует окружению. GitLab CI обеспечивает сборку и деплой автоматически (или вручную, в случае продакшна), а HashiCorp Nomad оркестрирует работающие сервисы на KVM-хостах, доступных по SSH.

Соответствие веток и окружений

ВеткаОкружениеШаблон доменаТриггер
devDevelopment*.dev.amzhub.aiАвтоматический
stageStaging*.stage.amzhub.aiАвтоматический
mainProduction*.amzhub.aiРучной

Примеры доменов

ОкружениеДомен приложенияДомен документации
Devdev.amzhub.aidocs-dev.amzhub.ai
Stagestage.amzhub.aidocs-stage.amzhub.ai
Prodamzhub.aidocs.amzhub.ai

Процесс деплоя

mermaid
flowchart LR
    A[Feature Branch] -->|merge| B[dev]
    B -->|auto deploy| C[Dev Environment]
    B -->|merge| D[stage]
    D -->|auto deploy| E[Stage Environment]
    D -->|merge| F[main]
    F -->|manual trigger| G[Production]

    style C fill:#4ade80,color:#000
    style E fill:#facc15,color:#000
    style G fill:#f87171,color:#000

Ключевые концепции

Общие шаблоны GitLab CI

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

  1. Build — собирает контейнерный образ и отправляет его в реестр.
  2. Deploy — подключается к целевому KVM-хосту по SSH и отправляет Nomad-задачу.

Nomad на KVM

Сервисы работают как Nomad-задачи на KVM-инфраструктуре. Каждое окружение имеет собственный кластер Nomad (или namespace), а деплои отправляются по SSH с GitLab-раннера.

Модель продвижения

Код движется в одном направлении через окружения:

feature branch --> dev --> stage --> main (prod)

TIP

Никогда не мержьте напрямую в main, минуя stage. Путь продвижения существует для того, чтобы выявлять проблемы до их попадания в продакшн.

WARNING

Деплой в продакшн требует ручного запуска в пайплайне GitLab CI. Одного мержа в main недостаточно для деплоя.

Далее

Документация по инфраструктуре