Компонентные схемы развертывания
Архитектура GitFlic (self-hosted) поддерживает несколько моделей развертывания. Модель выбирается исходя из предъявляемых требований платформе разработки, относительно доступности, производительности и защищённости.
Минимальные требования к ВМ для установки GitFlic приведены в документации: https://docs.gitflic.ru/latest/setup/gitflic_app/min_req/
Обозначения на схемах: TLS Cert — сертификат для HTTPS на прокси-сервере; SSH Cert — ключ встроенного SSH-сервера GitFlic.
Базовая http схема
Все компоненты работают на одной виртуальной машине (ВМ). HTTP- и SSH-трафик приходит в приложение напрямую, без прокси, при этом веб-трафик не шифруется. Схема подходит для демонстрации и функционального тестирования в изолированном контуре.
Базовая https схема
Схема повторяет HTTP-схему, но веб-трафик шифруется по протоколу TLS, где перед приложением обрабатывает трафик Nginx или HAProxy с TLS-сертификатом. Подходит для стандартных процессов разработки, где допустим кратковременный простой.
Базовая Кластерная схема
Приложение GitFlic и базы данных разнесены по двум ВМ. На одной работают прокси и несколько экземпляров GitFlic, на другой — PostgreSQL, KeyDB (Redis) и брокер сообщений. Часть файлов вынесена в объектное хранилище S3. Схема подходит для средних нагрузок, когда одного экземпляра приложения уже не хватает.
Кластерная схема для Production среды
Каждый слой вынесен на отдельные узлы: входящий трафик принимает отдельная ВМ балансировщика, приложение GitFlic разворачивается минимум на двух нодах. Слой данных: PostgreSQL с репликой; кластер KeyDB/Redis из трёх master-узлов; общее файловое хранилище (NFS или Ceph) для репозиториев и изображений; S3 для реестра пакетов, LFS и артефактов CI/CD. Схема предназначена для эксплуатации с высокой нагрузкой и требованиями к отказоустойчивости.