Delete docs/gitops-cicd/04-component-specs-part1.md

This commit is contained in:
2026-01-13 08:53:28 +00:00
parent 3f886b6311
commit a66eebe77c

View File

@@ -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: _______________