Перейти к содержанию

Компонентные схемы развертывания


Архитектура GitFlic (self-hosted) поддерживает несколько моделей развертывания. Модель выбирается исходя из предъявляемых требований платформе разработки, относительно доступности, производительности и защищённости.

Минимальные требования к ВМ для установки GitFlic приведены в документации: https://docs.gitflic.ru/latest/setup/gitflic_app/min_req/

Обозначения на схемах: TLS Cert — сертификат для HTTPS на прокси-сервере; SSH Cert — ключ встроенного SSH-сервера GitFlic.

Базовая http схема

Все компоненты работают на одной виртуальной машине (ВМ). HTTP- и SSH-трафик приходит в приложение напрямую, без прокси, при этом веб-трафик не шифруется. Схема подходит для демонстрации и функционального тестирования в изолированном контуре.

http_sheme

Базовая https схема

Схема повторяет HTTP-схему, но веб-трафик шифруется по протоколу TLS, где перед приложением обрабатывает трафик Nginx или HAProxy с TLS-сертификатом. Подходит для стандартных процессов разработки, где допустим кратковременный простой.

http_sheme

Базовая Кластерная схема

Приложение GitFlic и базы данных разнесены по двум ВМ. На одной работают прокси и несколько экземпляров GitFlic, на другой — PostgreSQL, KeyDB (Redis) и брокер сообщений. Часть файлов вынесена в объектное хранилище S3. Схема подходит для средних нагрузок, когда одного экземпляра приложения уже не хватает.

http_sheme

Кластерная схема для Production среды

Каждый слой вынесен на отдельные узлы: входящий трафик принимает отдельная ВМ балансировщика, приложение GitFlic разворачивается минимум на двух нодах. Слой данных: PostgreSQL с репликой; кластер KeyDB/Redis из трёх master-узлов; общее файловое хранилище (NFS или Ceph) для репозиториев и изображений; S3 для реестра пакетов, LFS и артефактов CI/CD. Схема предназначена для эксплуатации с высокой нагрузкой и требованиями к отказоустойчивости.

http_sheme