docs: complete comprehensive component specifications document
This commit is contained in:
@@ -1,35 +1,653 @@
|
||||
# FinTech GitOps CI/CD - Технические спецификации компонентов (Часть 1)
|
||||
# FinTech GitOps CI/CD - Технические спецификации компонентов
|
||||
|
||||
**Версия:** 1.0
|
||||
**Дата:** Январь 2026
|
||||
**Целевая аудитория:** Infrastructure Team, DevOps, System Administrators
|
||||
**Целевая аудитория:** Infrastructure Team, DevOps, System Administrators, Procurement
|
||||
|
||||
---
|
||||
|
||||
## Содержание Части 1
|
||||
## Содержание
|
||||
|
||||
1. [Gitea - Git Repository & Knowledge Base](#1-gitea---git-repository--knowledge-base)
|
||||
2. [Jenkins - CI Automation Server](#2-jenkins---ci-automation-server)
|
||||
3. [Harbor - Enterprise Container Registry](#3-harbor---enterprise-container-registry)
|
||||
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 - Git Repository & Knowledge Base
|
||||
## 1. Gitea
|
||||
|
||||
### 1.1 Назначение и роль
|
||||
### Назначение
|
||||
Централизованное хранилище кода, конфигураций и базы знаний компании.
|
||||
|
||||
**Основные функции:**
|
||||
- Централизованное хранилище исходного кода всех приложений
|
||||
- База знаний компании через Wiki и Markdown documentation
|
||||
- Version control для Infrastructure as Code
|
||||
- Code review platform через Pull Requests
|
||||
- Webhook integration для CI/CD automation
|
||||
- Issue tracking для технических задач
|
||||
### Production спецификация
|
||||
|
||||
**Критичность:** HIGH
|
||||
- Без Gitea невозможна разработка
|
||||
- Single source of truth для всех конфигураций
|
||||
- Необходим для CI/CD pipeline
|
||||
- Содержит всю корпоративную документацию
|
||||
| Параметр | Значение | Обоснование |
|
||||
|----------|----------|-------------|
|
||||
| **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: _______________
|
||||
Reference in New Issue
Block a user