
CI/CD платформа Gitorion
Gitorion - это CI/CD платформа для командной разработки и доставки программного обеспечения. Платформа полностью собрана из бесплатных Open-source инструментов, поддерживаемых сообществами

Системные требования
Платформа спроектирована для установки и последующего масштабированая на "голом железе" под управлением операционной системы Linux (Ubuntu или Debian)

Кластер Kubernetes
Все компоненты платформы и разрабатываемого приложения развертываются в кластере Kubernetes. Настройка и администирование выполняется только стандартными утилитами kubeadm, kubectl и helm чтобы унифицировать поддержку

Контейнеры Docker
Компоненты платформы запускаются в контейнерах из официальных Docker-образов. Разратываемое с помощью платформы приложение так же упаковывается в Docker-образы и запускается в Docker-контейнерах

Непрерывная интеграция Forgejo
Инструменты непрерывной интеграции (Continuous Integration, CI) реализует Forgejo - легковесный хостинг кода, позволяющий создавать и управлять репозиториями на базе Git

Непрерывная доставка Jenkins
Сборку приложений, упаковку в образы Docker и непрерывную доставку (Continuous Delivery, CD) в изолированные контуры dev, staging и prod автоматизирует Jenkins. Откатиться к предыдущей версии приложения можно с помощью rollback пайплайна. Протестировать новую версию с помощью canary пайплайна

Приватный реестр Harbor
Для хранения образов Docker в платформу интегрирован приватный реестр Harbor

Единый вход SSO Keycloak
Технологию единого входа SSO во все сервисы платформы реализует Keycloak. Логины и пароли пользователей централизованно хранятся в базе данных Keycloak

Мониторинг платформы Prometheus
Prometheus собирает и хранит метрики производительности платформы и бизнес-метрики разрабатываемого приложения

Визуализация мониторинга Grafana
Grafana визуализирует метрики в виде графиков, гистограмм и счетчиков

Горизонтальное масштабирование и отказоустойчивость
Платформу можно масштабировать на два дата центра, чтобы в случае падения одного датацентра продолжить работу во втором. Мы используем PostgreSQL Master-Slave репликацию для базы данных и DRBD Primary-Secondary репликацию для файлов и директории