Files
k3s-gitops/docs/gitops-cicd/04-component-specs-part1.md

20 KiB
Raw Blame History

FinTech GitOps CI/CD - Технические спецификации компонентов

Версия: 1.0
Дата: Январь 2026
Целевая аудитория: Infrastructure Team, DevOps, System Administrators, Procurement


Содержание

  1. Gitea - Git Repository
  2. Jenkins - CI Server
  3. Harbor - Container Registry
  4. Docker Swarm Cluster
  5. GitOps Operator
  6. Portainer - Management UI
  7. Ollama - AI Server
  8. MCP Server
  9. Monitoring Stack
  10. Database Infrastructure
  11. Storage Infrastructure
  12. Network Infrastructure
  13. Сводная таблица ресурсов

1. Gitea

Назначение

Централизованное хранилище кода, конфигураций и базы знаний компании.

Production спецификация

Параметр Значение Обоснование
CPU 8 vCPU Git операции CPU-intensive при больших репозиториях
RAM 16 GB 8 GB Gitea + 4 GB PostgreSQL + 4 GB OS/cache
Primary Disk 500 GB NVMe SSD RAID 1 Быстрый доступ к Git objects, репликация для HA
Backup Disk 2 TB HDD RAID 10 Долгосрочное хранение всей истории
Network 1-10 Gbps 1 Gbps minimum, 10 Gbps preferred для больших pushes
IOPS 5000+ Множество concurrent операций
IP Address 10.10.10.10 Management VLAN

Development спецификация

Параметр Значение
CPU 4 vCPU
RAM 8 GB
Disk 200 GB SSD
Network 1 Gbps
IP Address 10.10.10.110 (Dev VLAN)

Программное обеспечение

  • OS: Ubuntu Server 22.04 LTS (hardened)
  • Gitea: Latest stable (1.21.x+)
  • Database: PostgreSQL 15.x
  • Web Server: Nginx (reverse proxy, TLS termination)
  • Дополнительно: Git LFS, Fail2ban

Дисковое пространство - расчет

Базовая установка:
- Gitea binary: 500 MB
- PostgreSQL database: 2-5 GB (issues, PRs, metadata)

Код и репозитории (пример для средней FinTech):
- 50 активных репозиториев
- Средний размер с историей: 1.5 GB
- Итого: 75 GB

База знаний и документация:
- 1000+ документов Markdown
- Диаграммы, изображения: 5 GB
- Wiki pages: 1 GB
- Итого: 6 GB

Git LFS objects: 20 GB
Backup snapshots: 100 GB
Buffer для роста: 200 GB

TOTAL: ~400 GB минимум
Recommended: 500 GB с запасом

Backup стратегия

  • Hourly: Incremental Git repositories (только дельта)
  • Daily: Full PostgreSQL dump в 02:00
  • Weekly: Full server snapshot
  • Monthly: Archive backup (7 years retention)

High Availability

  • Master-slave PostgreSQL replication
  • Shared storage для Git repositories через NFS/GlusterFS
  • Automated failover через keepalived/Pacemaker
  • RTO: 15 minutes, RPO: 1 hour

2. Jenkins

Назначение

CI автоматизация - сборка, тестирование, security scanning, push образов.

Production Master спецификация

Параметр Значение Обоснование
CPU 16 vCPU Координация множества параллельных builds
RAM 32 GB JVM heap 24 GB + OS 8 GB
OS Disk 200 GB NVMe SSD RAID 1 Jenkins home, plugins, configs
Workspace Disk 1 TB NVMe SSD Temporary build artifacts
Archive Disk 2 TB HDD RAID 10 Long-term artifact storage
Network 10 Gbps Frequent Docker image push/pull
IOPS 10000+ Parallel builds с интенсивным I/O
IP Address 10.10.10.20 Management VLAN

JVM Configuration

Heap Size: -Xms16g -Xmx24g
GC: -XX:+UseG1GC
GC Pause: -XX:MaxGCPauseMillis=100

Build Agents (динамические)

Тип CPU RAM Disk Назначение
Light 2 vCPU 4 GB 50 GB Unit tests, linting
Standard 4 vCPU 8 GB 100 GB Большинство builds
Heavy 8 vCPU 16 GB 200 GB Integration tests, complex apps
Docker 8 vCPU 16 GB 200 GB SSD Docker builds с layer caching

Development спецификация

Параметр Значение
CPU 8 vCPU
RAM 16 GB (JVM heap 12 GB)
Disk 500 GB SSD
Network 1 Gbps

Программное обеспечение

  • OS: Ubuntu Server 22.04 LTS
  • Jenkins: LTS версия (2.440.x+)
  • Java: OpenJDK 17 LTS
  • Docker: Docker CE latest (для builds)

Критические plugins

  • Git, Gitea, Pipeline, Docker
  • Kubernetes (для dynamic agents)
  • Security: OWASP Dependency-Check, SonarQube, Trivy
  • Credentials Binding, RBAC
  • Slack, Email notifications
  • Prometheus Metrics

3. Harbor

Назначение

Enterprise container registry с security scanning и image signing.

Production спецификация

Параметр Значение Обоснование
CPU 8 vCPU Image scanning и replication workload
RAM 16 GB 8 GB Harbor + 4 GB PostgreSQL + 4 GB Redis/cache
Application Disk 200 GB SSD RAID 1 Harbor application и database
Image Storage 10 TB HDD RAID 10 Docker images (grows significantly)
Network 10 Gbps High-frequency image push/pull
IOPS 5000+ для SSD Metadata operations
IP Address 10.10.10.30 Management VLAN

Storage расчет

Средний Docker image: 500 MB - 2 GB
Количество приложений: 30-50
Версии на app: 10-20 (разные tags)
Growth rate: 50% в год

Пример:
- 40 приложений
- 15 версий каждого
- Средний размер: 1 GB
= 40 * 15 * 1 GB = 600 GB

Плюс:
- Base images (cached): 50 GB
- Third-party images (proxy cache): 200 GB
- Security scan data: 50 GB
- Buffer: 100 GB

TOTAL: ~1 TB минимум
Recommended: 10 TB для long-term growth

Development спецификация

Параметр Значение
CPU 4 vCPU
RAM 8 GB
Disk 2 TB HDD
Network 1 Gbps

Программное обеспечение

  • OS: Ubuntu Server 22.04 LTS
  • Harbor: Latest stable (2.10.x+)
  • Database: PostgreSQL 15.x
  • Cache: Redis 7.x
  • Scanner: Trivy (встроенный)
  • Storage Backend: Local filesystem или S3-compatible

Replication для DR

  • Geo-replication к secondary Harbor в DR site
  • Automated sync production images
  • Push-based replication policy

4. Docker Swarm Cluster

Manager Nodes (3 ноды для HA)

Параметр Значение Обоснование
Количество 3 Quorum для Raft consensus (нечетное число)
CPU per node 4 vCPU Orchestration, API, scheduling
RAM per node 8 GB Raft data, cluster state
Disk per node 200 GB SSD Raft log, etcd data
Network 10 Gbps Raft consensus требует low latency
IP Range 10.20.1.1-3 Swarm VLAN

Important: Manager nodes НЕ запускают application workloads (только infrastructure services).

Worker Nodes (N нод для applications)

Параметр Значение Обоснование
Минимум нод 3 Для redundancy applications
Recommended 5-10+ Зависит от workload
CPU per node 8-16 vCPU Зависит от интенсивности приложений
RAM per node 32-64 GB Зависит от memory footprint приложений
Disk per node 500 GB SSD Local volumes, temporary data
Network 10 Gbps Overlay network performance critical
IP Range 10.20.2.1-N Swarm VLAN

Capacity Planning - Worker Nodes

Расчет на основе workload:

Пример application requirements:
- 30 microservices в production
- Каждый microservice: 3 replicas (для HA)
- Average CPU per replica: 0.5 CPU
- Average RAM per replica: 1 GB

Total requirements:
- CPU: 30 * 3 * 0.5 = 45 CPUs
- RAM: 30 * 3 * 1 GB = 90 GB

С overhead (Swarm, monitoring agents, etc.) +20%:
- CPU: 54 CPUs
- RAM: 108 GB

Распределение на 6 worker nodes:
- CPU per node: 54 / 6 = 9 CPUs → 12 vCPU (с запасом)
- RAM per node: 108 / 6 = 18 GB → 32 GB (с запасом)

Результат: 6 nodes x 12 vCPU x 32 GB RAM

Программное обеспечение

  • OS: Ubuntu Server 22.04 LTS (kernel 5.15+)
  • Docker: Docker CE 24.x+
  • Overlay Network: Encrypted (IPSec default)

5. GitOps Operator

Назначение

Автоматическая синхронизация между Git repository и Docker Swarm cluster.

Спецификация

Параметр Значение
CPU 2 vCPU
RAM 4 GB
Disk 50 GB SSD
Network 1 Gbps
IP Address 10.10.10.40

Программное обеспечение

Варианты реализации:

  • Custom solution (Python/Go script)
  • Flux adapted для Swarm
  • ArgoCD adapted для Swarm

Функционал:

  • Git polling каждые 30 секунд
  • Detect changes в compose files
  • Execute docker stack deploy
  • Health checking после deployment
  • Rollback при failures

High Availability

  • Active-passive pair
  • Heartbeat monitoring
  • Automatic failover

6. Portainer

Назначение

Web UI для визуального управления и мониторинга Docker Swarm.

Спецификация

Параметр Значение
CPU 2 vCPU
RAM 4 GB
Disk 50 GB SSD
Network 1 Gbps
IP Address 10.10.10.50

Программное обеспечение

  • Portainer: Business Edition (для RBAC, audit)
  • Database: PostgreSQL или embedded (small dataset)
  • OS: Ubuntu Server 22.04 LTS

Функционал

  • Swarm cluster visualization
  • Stack management
  • Service scaling
  • Log viewing
  • RBAC для team access
  • Templates для быстрого deploy

7. Ollama - AI Server

Назначение

Локальный AI model serving для company-wide AI assistant.

Production спецификация

Параметр Значение Обоснование
CPU 16 vCPU Fallback если нет GPU
RAM 64 GB Large models требуют ~40-60 GB
GPU NVIDIA A100 40GB или 2x RTX 4090 24GB Значительно ускоряет inference
Disk 2 TB NVMe SSD Models 10-100 GB каждая, multiple models
Network 10 Gbps Fast response delivery
IP Address 10.30.10.10 AI VLAN

GPU Рекомендации

Option 1: NVIDIA A100 40GB (Professional)

  • Pros: Лучшая производительность, FP64 support, ECC memory
  • Cons: Дорого (~$10-15k)
  • Performance: ~10-15 tokens/sec для 70B model

Option 2: 2x NVIDIA RTX 4090 24GB (Enthusiast)

  • Pros: Дешевле (~$3-4k), хорошая производительность
  • Cons: No ECC, gaming card (не для 24/7)
  • Performance: ~8-12 tokens/sec для 70B model (distributed)

Option 3: CPU only (Budget)

  • Pros: No additional hardware
  • Cons: Очень медленно (1-2 tokens/sec для 70B)
  • Workable: Только для small models (7B-13B)

Рекомендуемые модели

Model Size RAM Required Use Case
Llama 3.3 70B ~40 GB 48 GB+ General purpose, сложные задачи
Qwen 2.5 Coder 32B ~20 GB 24 GB+ Code generation, review
DeepSeek-R1 7B ~4 GB 8 GB+ Fast responses, simple queries
Mistral 7B ~4 GB 8 GB+ Легкие задачи, быстрый ответ

Development спецификация

Параметр Значение
CPU 8 vCPU
RAM 32 GB
GPU Optional
Disk 500 GB SSD
Network 1 Gbps

Программное обеспечение

  • OS: Ubuntu Server 22.04 LTS
  • Ollama: Latest version
  • CUDA: 12.x+ (если GPU)
  • Models: Llama 3, Qwen, DeepSeek, etc.

8. MCP Server

Назначение

Model Context Protocol server для интеграции AI с источниками данных.

Спецификация

Параметр Значение
CPU 8 vCPU
RAM 16 GB
Disk 100 GB SSD
Network 1 Gbps
IP Address 10.30.10.20

Connectors (модульные плагины)

Connector Target Access Type
Gitea MCP Gitea API Read-only (code, docs)
Swarm MCP Docker API Read-only (logs, metrics)
PostgreSQL MCP Databases Read-only (metadata only)
Prometheus MCP Prometheus API Read-only (metrics)
Loki MCP Loki API Read-only (logs)

Security

  • Service accounts per connector
  • Rate limiting
  • All queries logged для audit
  • No write permissions to production data

Программное обеспечение

  • OS: Ubuntu Server 22.04 LTS
  • Runtime: Node.js или Python
  • MCP Implementation: TypeScript/Python SDK

9. Monitoring Stack

Prometheus

Параметр Значение
CPU 8 vCPU
RAM 32 GB
Disk 2 TB HDD RAID 10
Network 1 Gbps
IP Address 10.40.10.10
Retention 30 days local, long-term в Thanos

Grafana

Параметр Значение
CPU 4 vCPU
RAM 8 GB
Disk 100 GB SSD
Network 1 Gbps
IP Address 10.40.10.20

Loki

Параметр Значение
CPU 8 vCPU
RAM 16 GB
Disk 5 TB HDD RAID 10
Network 1 Gbps
IP Address 10.40.10.30
Retention 90 days

AlertManager

Параметр Значение
CPU 2 vCPU
RAM 4 GB
Disk 50 GB SSD
Network 1 Gbps
IP Address 10.40.10.40

10. Database Infrastructure

Infrastructure PostgreSQL (Gitea, Harbor, Portainer)

Primary:

Параметр Значение
CPU 8 vCPU
RAM 16 GB
Disk 500 GB SSD RAID 10
Network 10 Gbps
IP Address 10.50.10.10

Replica:

Параметр Значение
CPU 8 vCPU
RAM 16 GB
Disk 500 GB SSD RAID 10
Network 10 Gbps
IP Address 10.50.10.11

Configuration:

  • Streaming replication (synchronous)
  • Automated failover (Patroni/repmgr)
  • Continuous WAL archiving
  • Daily full backup + point-in-time recovery

Application Databases

Varies per application - отдельная спецификация per app.


11. Storage Infrastructure

Shared Storage для Swarm Persistent Volumes

Technology: GlusterFS (replicated) или NFS с HA

Спецификация (3 storage nodes для 3-way replication):

Параметр Per Node
CPU 4 vCPU
RAM 16 GB
Disk 5 TB HDD RAID 10
Network 10 Gbps (критично для performance)
IP Range 10.50.30.1-3

Capacity Planning:

Persistent data estimate:
- Databases: 500 GB
- Application data: 1 TB
- Logs: 500 GB
- Growth: 50% per year

Total: 2 TB current
+ 1 TB growth
+ 1 TB buffer
= 4 TB minimum

With 3-way replication: 4 TB * 3 = 12 TB raw
Recommended: 15 TB (5 TB per node)

12. Network Infrastructure

Core Network Requirements

Switches:

  • Core Switch: 10 Gbps, Layer 3, VLAN capable
  • Access Switches: 1 Gbps per port, 10 Gbps uplink
  • Redundancy: Stacked или MLAG для HA

Bandwidth Allocations:

Zone Bandwidth Justification
Management 1-10 Gbps Harbor push/pull traffic
Swarm 10 Gbps Overlay network performance
AI 10 Gbps Model loading, fast responses
Monitoring 1 Gbps Metrics collection
Data 10 Gbps Database replication
Backup 10 Gbps Fast backup completion

Firewall:

  • Enterprise firewall appliance
  • Throughput: 10 Gbps+
  • VLAN routing
  • IDS/IPS capabilities
  • VPN termination

VPN Gateway:

  • 1 Gbps throughput minimum
  • 100+ concurrent users
  • Multi-factor authentication
  • Split-tunnel disabled

13. Сводная таблица ресурсов

Production Environment - Total Resources

Component Quantity CPU (each) RAM (each) Storage (each) Network
Gitea 1 8 16 GB 500 GB SSD + 2 TB HDD 10G
Jenkins 1 16 32 GB 200 GB SSD + 1 TB SSD + 2 TB HDD 10G
Harbor 1 8 16 GB 200 GB SSD + 10 TB HDD 10G
Swarm Managers 3 4 8 GB 200 GB SSD 10G
Swarm Workers 6 12 32 GB 500 GB SSD 10G
GitOps Operator 1 2 4 GB 50 GB SSD 1G
Portainer 1 2 4 GB 50 GB SSD 1G
Ollama 1 16 64 GB 2 TB SSD 10G
MCP Server 1 8 16 GB 100 GB SSD 1G
Prometheus 1 8 32 GB 2 TB HDD 1G
Grafana 1 4 8 GB 100 GB SSD 1G
Loki 1 8 16 GB 5 TB HDD 1G
AlertManager 1 2 4 GB 50 GB SSD 1G
PostgreSQL Primary 1 8 16 GB 500 GB SSD 10G
PostgreSQL Replica 1 8 16 GB 500 GB SSD 10G
Storage Nodes 3 4 16 GB 5 TB HDD 10G
Backup Server 1 4 8 GB 20 TB HDD 10G
--- --- --- --- --- ---
TOTAL 27 servers 200 vCPU 464 GB RAM ~80 TB storage -

Development Environment - Total Resources

Масштаб: Примерно 40% от production

Total CPU RAM Storage
Dev Environment 80 vCPU 180 GB RAM 25 TB

Budget Estimate (Hardware only, approximate)

Production:

  • Compute servers: $80,000 - $120,000
  • Storage: $30,000 - $50,000
  • Network equipment: $40,000 - $60,000
  • Total Hardware: $150,000 - $230,000

Software Licenses (annual):

  • RHEL subscriptions (if used): $10,000
  • Portainer Business: $5,000
  • Monitoring tools: $5,000
  • Total Software: $20,000/year

Note: Использование Ubuntu Server (бесплатно) снижает software costs.


Утверждение:

  • Infrastructure Lead: _______________
  • Finance: _______________
  • CTO: _______________
  • Date: _______________