Skip to content

Инфраструктура

Инфраструктура системы построена на базе контейнеризации и GitOps-подхода. Все сервисы разворачиваются в Kubernetes-кластере и управляются декларативно через Argo CD.

Общая архитектура

Инфраструктура включает:

  • Kubernetes-кластер (на базе k3s)
  • GitHub как источник правды (monorepo + infra repo)
  • CI/CD через GitHub Actions
  • GitOps-деплой через Argo CD

Основные компоненты

Приложения (business layer)

  • gateway
  • article
  • rag
  • frontend
  • documentation

Каждое приложение разворачивается как отдельный deployment в Kubernetes.

Инфраструктурные компоненты

  • PostgreSQL — основная БД
  • RabbitMQ — брокер сообщений
  • Keycloak — аутентификация
  • NGINX (ingress-nginx)
  • cert-manager — TLS сертификаты
  • MetalLB — балансировка
  • Sealed Secrets — управление секретами

GitOps подход

  • Все манифесты хранятся в инфраструктурном репозитории
  • Argo CD синхронизирует состояние кластера с Git
  • Изменения применяются автоматически

CI/CD поток

  1. Разработчик делает push в monorepo

  2. GitHub Actions:

    • запускает тесты
    • собирает Docker-образы
    • пушит в registry
  3. Обновление тегов (пока вручную)

  4. Argo CD подтягивает изменения в кластер

Особенности

  • Разделение кода и инфраструктуры (2 репозитория)
  • Событийная архитектура (RabbitMQ)
  • Поддержка RAG pipeline
  • Возможность масштабирования компонентов независимо