From a66eebe77c839cfbedbaaa8e38f228ae60dc2218 Mon Sep 17 00:00:00 2001 From: admin Date: Tue, 13 Jan 2026 08:53:28 +0000 Subject: [PATCH] Delete docs/gitops-cicd/04-component-specs-part1.md --- docs/gitops-cicd/04-component-specs-part1.md | 653 ------------------- 1 file changed, 653 deletions(-) delete mode 100644 docs/gitops-cicd/04-component-specs-part1.md diff --git a/docs/gitops-cicd/04-component-specs-part1.md b/docs/gitops-cicd/04-component-specs-part1.md deleted file mode 100644 index 8bb7cef..0000000 --- a/docs/gitops-cicd/04-component-specs-part1.md +++ /dev/null @@ -1,653 +0,0 @@ -# FinTech GitOps CI/CD - Технические спецификации компонентов - -**Версия:** 1.0 -**Дата:** Январь 2026 -**Целевая аудитория:** Infrastructure Team, DevOps, System Administrators, Procurement - ---- - -## Содержание - -1. [Gitea - Git Repository](#1-gitea) -2. [Jenkins - CI Server](#2-jenkins) -3. [Harbor - Container Registry](#3-harbor) -4. [Docker Swarm Cluster](#4-docker-swarm-cluster) -5. [GitOps Operator](#5-gitops-operator) -6. [Portainer - Management UI](#6-portainer) -7. [Ollama - AI Server](#7-ollama) -8. [MCP Server](#8-mcp-server) -9. [Monitoring Stack](#9-monitoring-stack) -10. [Database Infrastructure](#10-database-infrastructure) -11. [Storage Infrastructure](#11-storage-infrastructure) -12. [Network Infrastructure](#12-network-infrastructure) -13. [Сводная таблица ресурсов](#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: _______________ \ No newline at end of file