# Требования к тестовому серверу GitOps CI/CD **Версия:** 1.0 **Дата:** Январь 2026 **Целевая аудитория:** Отделы инфраструктуры, безопасности, закупок --- ## Содержание 1. [Обзор и назначение](#1-обзор-и-назначение) 2. [Структурные схемы](#2-структурные-схемы) 3. [Варианты реализации](#3-варианты-реализации) 4. [Детальные технические требования](#4-детальные-технические-требования) 5. [Сетевая инфраструктура](#5-сетевая-инфраструктура) 6. [Хранилище данных](#6-хранилище-данных) 7. [Безопасность](#7-безопасность) 8. [Бюджетные расчеты](#8-бюджетные-расчеты) 9. [План закупок](#9-план-закупок) --- ## 1. Обзор и назначение ### 1.1 Зачем нужен тестовый сервер Тестовый (Development) сервер является **критически важным этапом** внедрения GitOps CI/CD в FinTech компании по следующим причинам: **Снижение рисков:** - Тестирование новой инфраструктуры без влияния на production - Выявление проблем на ранних стадиях - Валидация security политик в безопасной среде - Отработка disaster recovery процедур **Обучение команды:** - Практический опыт работы с новыми инструментами - Hands-on тренинг на реальной инфраструктуре - Создание runbooks и документации - Onboarding новых сотрудников **Оптимизация архитектуры:** - Проверка capacity planning расчетов - Выявление bottlenecks производительности - Тюнинг конфигураций - Корректировка требований для production **Финансовая обоснованность:** - Меньший initial investment (~40% от production) - Возможность корректировки решений до major закупок - Proof of concept для stakeholders - ROI демонстрация перед full rollout ### 1.2 Ключевые отличия от production | Параметр | Production | Test/Dev | Обоснование | |----------|-----------|----------|-------------| | **Масштаб** | Full scale | 40% scale | Достаточно для testing | | **HA** | Full redundancy | Simplified | Downtime acceptable | | **Данные** | Real production | Synthetic/mock | Безопасность данных | | **SLA** | 99.9% uptime | Best effort | Не критично для dev | | **Access** | Restricted | More open | Удобство для dev team | | **Cost** | $518K | ~$100K | Budget-friendly PoC | --- ## 2. Структурные схемы ### 2.1 Общая архитектура тестового окружения ``` ┌─────────────────────────────────────────────────────────────────────────┐ │ TEST/DEV ENVIRONMENT │ │ VLAN 100: 10.100.0.0/16 │ │ │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ EXTERNAL ACCESS │ │ │ │ │ │ │ │ ┌──────────────────────────────────────────────────────┐ │ │ │ │ │ Corporate VPN (shared с production) │ │ │ │ │ │ • Доступ для dev team │ │ │ │ │ │ • MFA опционально (можно без для dev) │ │ │ │ │ │ • IP: 10.100.1.1 │ │ │ │ │ └──────────────────────────────────────────────────────┘ │ │ │ │ │ │ │ │ │ ▼ │ │ │ │ ┌──────────────────────────────────────────────────────┐ │ │ │ │ │ Jump Host (опционально для dev) │ │ │ │ │ │ • Можно direct access для удобства │ │ │ │ │ │ IP: 10.100.1.10 │ │ │ │ │ └──────────────────────────────────────────────────────┘ │ │ │ └────────────────────────────────────────────────────────────────┘ │ │ │ │ │ ════════════════════════════════════════════════════════════════════ │ │ │ │ │ ┌────────────────────────────▼──────────────────────────────────┐ │ │ │ MANAGEMENT ZONE (10.100.10.0/24) │ │ │ │ │ │ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ │ │ Gitea │ │ Jenkins │ │ Harbor │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 4 vCPU │ │ 8 vCPU │ │ 4 vCPU │ │ │ │ │ │ 8 GB RAM │ │ 16 GB RAM │ │ 8 GB RAM │ │ │ │ │ │ 200 GB SSD │ │ 500 GB SSD │ │ 2 TB HDD │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ .10.10 │ │ .10.20 │ │ .10.30 │ │ │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ │ │ │ │ │ │ │ ┌──────────────┐ ┌──────────────────────────────┐ │ │ │ │ │ GitOps Ops │ │ Portainer │ │ │ │ │ │ │ │ │ │ │ │ │ │ 2 vCPU │ │ Combined на одной VM: │ │ │ │ │ │ 4 GB RAM │ │ GitOps Operator + Portainer │ │ │ │ │ │ 50 GB SSD │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ .10.40 │ │ .10.50 │ │ │ │ │ └──────────────┘ └──────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────┘ │ │ │ │ │ ════════════════════════════════════════════════════════════════════│ │ │ │ │ ┌────────────────────────────▼──────────────────────────────────┐ │ │ │ DOCKER SWARM ZONE (10.100.20.0/24) │ │ │ │ │ │ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ │ │ MANAGER NODE (single для dev - упрощение) │ │ │ │ │ │ │ │ │ │ │ │ ┌──────────────────────────────────────┐ │ │ │ │ │ │ │ Swarm Manager │ │ │ │ │ │ │ │ • Orchestration │ │ │ │ │ │ │ │ • API endpoint │ │ │ │ │ │ │ │ • Scheduling │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 4 vCPU, 8 GB RAM, 100 GB SSD │ │ │ │ │ │ │ │ IP: 10.100.20.1 │ │ │ │ │ │ │ └──────────────────────────────────────┘ │ │ │ │ │ └─────────────────────────────────────────────────────┘ │ │ │ │ │ │ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ │ │ WORKER NODES (3 ноды - достаточно для HA test) │ │ │ │ │ │ │ │ │ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ │ │ │ │ Worker 1 │ │ Worker 2 │ │ Worker 3 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 8 vCPU │ │ 8 vCPU │ │ 8 vCPU │ │ │ │ │ │ │ │ 16 GB RAM │ │ 16 GB RAM │ │ 16 GB RAM │ │ │ │ │ │ │ │ 200 GB SSD │ │ 200 GB SSD │ │ 200 GB SSD │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ .20.2 │ │ .20.3 │ │ .20.4 │ │ │ │ │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │ │ │ │ │ │ │ │ │ │ │ • Application containers │ │ │ │ │ │ • Overlay network │ │ │ │ │ │ • Service tasks │ │ │ │ │ └─────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────┘ │ │ │ │ │ ════════════════════════════════════════════════════════════════ │ │ │ │ │ ┌────────────────────────────▼──────────────────────────────────┐│ │ │ AI ZONE (10.100.30.0/24) ││ │ │ ││ │ │ ┌──────────────────────────────────────────────────┐ ││ │ │ │ Ollama AI Server │ ││ │ │ │ • Llama 3.3 70B (или меньшая модель для dev) │ ││ │ │ │ • Qwen 2.5 Coder │ ││ │ │ │ • DeepSeek R1 (опционально) │ ││ │ │ │ │ ││ │ │ │ 8 vCPU, 32 GB RAM, 500 GB SSD │ ││ │ │ │ IP: 10.100.30.10 │ ││ │ │ │ GPU: Опционально (можно без GPU в dev) │ ││ │ │ └──────────────────────────────────────────────────┘ ││ │ │ │ ││ │ │ ▼ ││ │ │ ┌──────────────────────────────────────────────────┐ ││ │ │ │ MCP Server │ ││ │ │ │ • Gitea connector │ ││ │ │ │ • Docker Swarm connector │ ││ │ │ │ • Database connector │ ││ │ │ │ • Prometheus connector │ ││ │ │ │ │ ││ │ │ │ 4 vCPU, 8 GB RAM, 50 GB SSD │ ││ │ │ │ IP: 10.100.30.20 │ ││ │ │ └──────────────────────────────────────────────────┘ ││ │ └─────────────────────────────────────────────────────────────┘││ │ │ ││ │ ════════════════════════════════════════════════════════════════││ │ │ ││ │ ┌────────────────────────────▼──────────────────────────────────┐│ │ │ MONITORING ZONE (10.100.40.0/24) │ │ │ │ │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ │ Combined Monitoring Stack (на одной VM) │ │ │ │ │ │ │ │ │ │ • Prometheus (metrics) │ │ │ │ │ • Grafana (visualization) │ │ │ │ │ • Loki (logs) │ │ │ │ │ • AlertManager (alerts) │ │ │ │ │ │ │ │ │ │ 8 vCPU, 16 GB RAM, 1 TB HDD │ │ │ │ │ IP: 10.100.40.10 │ │ │ │ └─────────────────────────────────────────────────────┘ │ │ └─────────────────────────────────────────────────────────────┘ │ │ │ ════════════════════════════════════════════════════════════════ │ │ │ ┌────────────────────────────▼──────────────────────────────────┐ │ │ DATA ZONE (10.100.50.0/24) │ │ │ │ │ │ ┌──────────────────────────────────────────────────┐ │ │ │ │ PostgreSQL Server │ │ │ │ │ • Все dev databases на одном сервере │ │ │ │ │ • Gitea DB │ │ │ │ │ • Harbor DB │ │ │ │ │ • Portainer DB │ │ │ │ │ • Application test DBs │ │ │ │ │ │ │ │ │ │ 4 vCPU, 8 GB RAM, 200 GB SSD │ │ │ │ │ IP: 10.100.50.10 │ │ │ │ │ No replication в dev (упрощение) │ │ │ │ └──────────────────────────────────────────────────┘ │ │ │ │ │ │ ┌──────────────────────────────────────────────────┐ │ │ │ │ NFS Storage Server │ │ │ │ │ • Persistent volumes для Swarm │ │ │ │ │ • Backup storage │ │ │ │ │ • Harbor image storage │ │ │ │ │ │ │ │ │ │ 2 vCPU, 8 GB RAM, 5 TB HDD RAID 10 │ │ │ │ │ IP: 10.100.50.20 │ │ │ │ └──────────────────────────────────────────────────┘ │ │ └─────────────────────────────────────────────────────────────┘ └─────────────────────────────────────────────────────────────────────────┘ ИТОГО: 12 VM / 72 vCPU / 168 GB RAM / ~10 TB Storage ``` ### 2.2 Сетевая топология ``` Internet/Corporate Network │ │ ┌──────────▼──────────┐ │ Firewall/Router │ │ + VPN Gateway │ └──────────┬──────────┘ │ ┌──────────────────┼──────────────────┐ │ │ │ ┌──────▼──────┐ ┌─────▼──────┐ ┌──────▼──────┐ │ Production │ │ Dev/Test │ │ Other │ │ VLANs │ │ VLAN 100 │ │ Networks │ │ 10.10.x.x │ │ 10.100.x.x │ │ │ └─────────────┘ └────────────┘ └─────────────┘ │ ┌───────────────┼───────────────┐ │ │ │ ┌───────▼──────┐ ┌─────▼─────┐ ┌──────▼──────┐ │ Management │ │ Swarm │ │ AI/Monitor │ │ 10.100.10/24 │ │10.100.20/24│ │10.100.30-40 │ │ │ │ │ │ /24 │ │ • Gitea │ │ • Manager │ │ • Ollama │ │ • Jenkins │ │ • Workers │ │ • MCP │ │ • Harbor │ │ │ │ • Prometheus│ │ • Portainer │ │ │ │ • Grafana │ └──────────────┘ └───────────┘ └─────────────┘ │ │ │ └───────────────┼───────────────┘ │ ┌───────▼───────┐ │ Data Zone │ │ 10.100.50/24 │ │ │ │ • PostgreSQL │ │ • NFS Storage │ └───────────────┘ Firewall Rules (Simplified для Dev): ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • VPN → All Dev VLANs: ALLOW (SSH, HTTPS, Custom ports) • Management → Swarm: ALLOW (2377, 7946, 4789) • Management → Data: ALLOW (5432 PostgreSQL, 2049 NFS) • Swarm → Management: ALLOW (443 Harbor, 80/443 Gitea) • All → Monitoring: ALLOW (metrics collection) • AI → All: READ-ONLY через MCP • Dev VLANs → Production VLANs: DENY (isolation) ``` ### 2.3 Data Flow диаграмма ``` ┌─────────────┐ │ Developer │ │ Workstation│ └──────┬──────┘ │ 1. Git push ▼ ┌─────────────────┐ │ Gitea │ ◄────── База знаний, документация │ 10.100.10.10 │ └──────┬──────────┘ │ 2. Webhook trigger ▼ ┌─────────────────┐ │ Jenkins │ │ 10.100.10.20 │ │ │ │ ┌─────────────┐ │ │ │ CI Pipeline │ │ │ │ • Build │ │ │ │ • Test │ │ │ │ • Security │ │ │ │ • Scan │ │ │ └─────────────┘ │ └──────┬──────────┘ │ 3. Docker push ▼ ┌─────────────────┐ │ Harbor │ │ 10.100.10.30 │ │ Container Reg │ └──────┬──────────┘ │ 4. Update compose ▼ ┌─────────────────┐ │ Gitea │ │ (GitOps repo) │ └──────┬──────────┘ │ 5. Git pull ▼ ┌─────────────────┐ │ GitOps Operator │ │ 10.100.10.40 │ └──────┬──────────┘ │ 6. Stack deploy ▼ ┌─────────────────────────────────┐ │ Docker Swarm Cluster │ │ │ │ Manager Workers │ │ 10.100.20.1 10.100.20.2-4 │ │ │ │ ┌──────────┐ ┌──────────┐ │ │ │ Service │ │ Service │ │ │ │ A │ │ B │ │ │ └──────────┘ └──────────┘ │ └─────────────────────────────────┘ │ │ 7. Metrics & Logs ▼ ┌─────────────────────────────────┐ │ Monitoring Stack │ │ 10.100.40.10 │ │ │ │ Prometheus → Grafana │ │ Loki → Dashboards │ └─────────────────────────────────┘ │ │ 8. AI Analysis ▼ ┌─────────────────────────────────┐ │ AI Stack │ │ │ │ ┌────────────┐ ┌───────────┐ │ │ │ Ollama │←→│MCP Server │ │ │ │ 10.100.30.10 │10.100.30.20│ │ │ └────────────┘ └─────┬─────┘ │ └────────────────────────┼───────┘ │ ┌───────────────┼───────────────┐ │ │ │ ┌────▼────┐ ┌────▼────┐ ┌────▼────┐ │ Gitea │ │ Swarm │ │ Logs │ │ Docs │ │ API │ │Metrics │ └─────────┘ └─────────┘ └─────────┘ ``` --- ## 3. Варианты реализации ### 3.1 Вариант A: Отдельные виртуальные машины (Рекомендуется) **Описание:** Каждый компонент развернут на dedicated VM. Это наиболее гибкий и production-like подход. **Преимущества:** - ✅ Maximum flexibility при масштабировании - ✅ Resource isolation между компонентами - ✅ Easier troubleshooting - ✅ Более похоже на production setup - ✅ Можно selective upgrade компонентов **Недостатки:** - ❌ Больше overhead (каждая VM = OS) - ❌ Сложнее management (12 VMs) - ❌ Выше licensing costs (если Windows/RHEL) **Технические требования:** | # | Component | vCPU | RAM | Storage | Network | OS | |---|-----------|------|-----|---------|---------|---| | 1 | Gitea | 4 | 8 GB | 200 GB SSD | 1 Gbps | Ubuntu 22.04 | | 2 | Jenkins | 8 | 16 GB | 500 GB SSD | 1 Gbps | Ubuntu 22.04 | | 3 | Harbor | 4 | 8 GB | 2 TB HDD | 1 Gbps | Ubuntu 22.04 | | 4 | Swarm Manager | 4 | 8 GB | 100 GB SSD | 1 Gbps | Ubuntu 22.04 | | 5-7 | Swarm Workers | 8 each | 16 GB each | 200 GB SSD each | 1 Gbps | Ubuntu 22.04 | | 8 | GitOps/Portainer | 2 | 4 GB | 50 GB SSD | 1 Gbps | Ubuntu 22.04 | | 9 | Ollama | 8 | 32 GB | 500 GB SSD | 1 Gbps | Ubuntu 22.04 | | 10 | MCP Server | 4 | 8 GB | 50 GB SSD | 1 Gbps | Ubuntu 22.04 | | 11 | Monitoring | 8 | 16 GB | 1 TB HDD | 1 Gbps | Ubuntu 22.04 | | 12 | PostgreSQL | 4 | 8 GB | 200 GB SSD | 1 Gbps | Ubuntu 22.04 | | 13 | NFS Storage | 2 | 8 GB | 5 TB HDD RAID 10 | 1 Gbps | Ubuntu 22.04 | **ИТОГО:** - **VMs:** 13 - **vCPU:** 72 total - **RAM:** 168 GB total - **SSD:** ~2.6 TB - **HDD:** ~8 TB - **Network:** 13x 1 Gbps ports **Минимальный hypervisor host:** - CPU: 2x Intel Xeon или AMD EPYC (минимум 96 threads с учетом oversubscription 1:1.3) - RAM: 256 GB (168 GB для VMs + 88 GB для hypervisor и overhead) - Storage: 2x 2TB NVMe SSD (RAID 1) + 2x 8TB HDD (RAID 10) - Network: 2x 10 Gbps (bonded для redundancy) ### 3.2 Вариант B: Single Powerful Server (Budget Option) **Описание:** Все компоненты на одном мощном сервере как VMs или containers. Подходит для tight budget. **Преимущества:** - ✅ Значительная экономия costs (~60% дешевле) - ✅ Проще management (один сервер) - ✅ Lower power consumption - ✅ Меньше физического space - ✅ Быстрее deployment **Недостатки:** - ❌ Single point of failure - ❌ Limited scalability - ❌ Resource contention возможна - ❌ Не production-like architecture **Технические требования:** **Single Server Specifications:** | Component | Specification | Примечание | |-----------|--------------|-----------| | **CPU** | 2x Intel Xeon Gold 6348 (28 cores, 56 threads each) = 112 threads total | Или эквивалент AMD EPYC | | **RAM** | 256 GB DDR4 ECC (8x 32GB modules) | Расширяемо до 512 GB | | **Storage 1** | 2x 2TB NVMe SSD в RAID 1 | Для OS, VMs, databases | | **Storage 2** | 4x 8TB HDD в RAID 10 = 16 TB usable | Для Harbor images, backups | | **Storage Controller** | Hardware RAID controller с BBU | Для integrity | | **Network** | 2x 10 Gbps (bonded) | Redundancy | | **PSU** | 2x Redundant Power Supplies | High availability | | **Management** | iDRAC/iLO/IPMI | Remote management | | **Form Factor** | 2U Rackmount | Standard datacenter | **Примеры подходящих серверов:** - Dell PowerEdge R750 - HPE ProLiant DL380 Gen11 - Supermicro SuperServer SYS-2029U-TN24R4T - Lenovo ThinkSystem SR650 V3 **Software Stack:** - Hypervisor: Proxmox VE (free) или VMware ESXi (с лицензией) - VMs: Ubuntu 22.04 LTS для каждого компонента - Management: Proxmox Web UI или vCenter **Estimated Cost:** ~$35,000-45,000 (vs $70,000-90,000 для отдельных серверов) ### 3.3 Вариант C: Hybrid Approach (Оптимальный компромисс) **Описание:** Комбинация: critical компоненты отдельно, non-critical объединены. **Архитектура:** | Physical Server | Components | Resources | |----------------|------------|-----------| | **Server 1: CI/CD Hub** | Gitea, Jenkins, Harbor, GitOps | 32 vCPU, 64 GB RAM, 3 TB storage | | **Server 2: Swarm Cluster** | 1 Manager + 3 Workers (VMs) | 32 vCPU, 64 GB RAM, 1 TB SSD | | **Server 3: AI & Monitoring** | Ollama, MCP, Prometheus, Grafana | 16 vCPU, 48 GB RAM, 2 TB storage | | **Server 4: Data Layer** | PostgreSQL, NFS Storage | 8 vCPU, 16 GB RAM, 6 TB storage | **ИТОГО:** - **Servers:** 4 physical - **Total:** 88 vCPU, 192 GB RAM, 12 TB storage - **Cost:** ~$55,000-65,000 **Преимущества:** - ✅ Баланс cost vs flexibility - ✅ Some isolation между critical services - ✅ Можно upgrade отдельные servers - ✅ Reasonable failover возможности **Рекомендация:** Этот вариант для большинства FinTech компаний. --- ## 4. Детальные технические требования ### 4.1 Сводная таблица ресурсов | Component | vCPU | RAM (GB) | SSD (GB) | HDD (TB) | Network | |-----------|------|----------|----------|----------|---------| | Gitea | 4 | 8 | 200 | - | 1 Gbps | | Jenkins | 8 | 16 | 500 | - | 1 Gbps | | Harbor | 4 | 8 | 100 | 2 | 1 Gbps | | Swarm Manager | 4 | 8 | 100 | - | 1 Gbps | | Swarm Workers (3x) | 24 | 48 | 600 | - | 1 Gbps | | GitOps/Portainer | 2 | 4 | 50 | - | 1 Gbps | | Ollama | 8 | 32 | 500 | - | 1 Gbps | | MCP Server | 4 | 8 | 50 | - | 1 Gbps | | Monitoring | 8 | 16 | - | 1 | 1 Gbps | | PostgreSQL | 4 | 8 | 200 | - | 1 Gbps | | NFS Storage | 2 | 8 | 50 | 5 | 1 Gbps | | **TOTAL** | **72** | **168** | **~2350** | **~8** | **11 ports** | **Hypervisor Requirements:** - Physical CPU: 96 threads (with 1:1.3 oversubscription) - Physical RAM: 256 GB (168 + overhead) - Storage: 3 TB SSD + 10 TB HDD - Network: 2x 10 Gbps bonded ---