Gitorion CI/CD Platform

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 репликацию для файлов и директории