8.3 KiB
8.3 KiB
Enterprise DevOps Infrastructure
Архитектура для 15+ проектов на Proxmox
🏗️ Общая схема
Internet
↓
[Traefik LB/SSL] ← git.domain.com, registry.domain.com, vault.domain.com
↓
┌─────────────────────────────────────────────────────────────────┐
│ Proxmox Infrastructure │
├─────────────────────────────────────────────────────────────────┤
│ Core Services Network: 10.10.0.0/24 │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Traefik │ │ Gitea │ │ Registry │ │
│ │ 10.10.0.10 │ │ 10.10.0.20 │ │ 10.10.0.30 │ │
│ │ (Gateway) │ │ (Git+CI/CD) │ │ (Docker Hub) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Nexus │ │ Vault │ │ SonarQube │ │
│ │ 10.10.0.40 │ │ 10.10.0.50 │ │ 10.10.0.60 │ │
│ │ (Artifacts) │ │ (Secrets) │ │ (Quality) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ Prometheus │ │ Grafana │ │
│ │ 10.10.0.70 │ │ 10.10.0.80 │ │
│ │ (Metrics) │ │ (Dashboard) │ │
│ └──────────────┘ └──────────────┘ │
├─────────────────────────────────────────────────────────────────┤
│ Production Apps Network: 10.10.1.0/24 │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ MikroTik Bot │ │ Project2 │ │ Project3 │ │
│ │ 10.10.1.10 │ │ 10.10.1.20 │ │ 10.10.1.30 │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ ... до 15 проектов │
└─────────────────────────────────────────────────────────────────┘
📊 Спецификации LXC контейнеров
| Сервис | IP | RAM | CPU | Disk | Описание |
|---|---|---|---|---|---|
| Traefik | 10.10.0.10 | 1GB | 2 | 10GB | Reverse proxy, SSL, маршрутизация |
| Gitea | 10.10.0.20 | 4GB | 4 | 50GB | Git repos, CI/CD, PostgreSQL |
| Registry | 10.10.0.30 | 2GB | 2 | 100GB | Docker images storage |
| Nexus | 10.10.0.40 | 6GB | 4 | 200GB | Artifacts, proxy repos |
| Vault | 10.10.0.50 | 2GB | 2 | 20GB | Secrets management |
| SonarQube | 10.10.0.60 | 4GB | 4 | 30GB | Code quality, PostgreSQL |
| Prometheus | 10.10.0.70 | 4GB | 2 | 50GB | Metrics collection |
| Grafana | 10.10.0.80 | 2GB | 2 | 20GB | Monitoring dashboards |
| Apps 1-15 | 10.10.1.x | 1-4GB | 1-2 | 10-30GB | Production applications |
Итого Core: ~25GB RAM, 24 CPU, 480GB Disk
Итого Apps: ~30GB RAM, 22 CPU, 300GB Disk
Общий бюджет: ~55GB RAM, 46 CPU, 780GB Disk
🔄 CI/CD Workflow
graph LR
A[git push] --> B[Gitea Actions]
B --> C[SonarQube Scan]
C --> D[Docker Build]
D --> E[Nexus Dependencies]
E --> F[Registry Push]
F --> G[Vault Secrets]
G --> H[Deploy to Prod]
H --> I[Prometheus Metrics]
🌐 External Access (Traefik Routes)
| Service | URL | Auth |
|---|---|---|
| Gitea | git.yourdomain.com |
Gitea Auth |
| Registry UI | registry.yourdomain.com |
Basic Auth |
| Nexus | nexus.yourdomain.com |
Nexus Auth |
| Vault | vault.yourdomain.com |
Vault Auth |
| SonarQube | sonar.yourdomain.com |
Sonar Auth |
| Grafana | monitoring.yourdomain.com |
Grafana Auth |
| Apps | app1.yourdomain.com |
App-specific |
🔧 Технологический стек
Core Infrastructure:
- Traefik 3.0: HTTP router, SSL automation, load balancing
- Gitea 1.21: Git hosting, Actions CI/CD, issue tracking
- Docker Registry 2.8: Image storage с UI (registry-ui)
- Nexus OSS 3.45: PyPI/npm/Maven proxy, vulnerability scanning
- Vault 1.15: Secrets management, dynamic secrets
- SonarQube CE 10.3: Code quality, security analysis
Monitoring Stack:
- Prometheus 2.48: Metrics collection
- Grafana 10.2: Visualization, alerting
- Node Exporter: System metrics
- cAdvisor: Container metrics
Security & Automation:
- Watchtower: Auto-updates production containers
- Let's Encrypt: Automatic SSL certificates
- Fail2ban: Intrusion prevention
- UFW: Firewall management
📁 Project Structure Template
project-name/
├── .gitea/
│ └── workflows/
│ ├── build.yml # Build & test
│ ├── quality.yml # SonarQube scan
│ └── deploy.yml # Deploy to production
├── docker/
│ ├── Dockerfile
│ ├── docker-compose.yml
│ └── docker-compose.prod.yml
├── infra/
│ ├── vault-secrets.yml # Vault integration
│ ├── monitoring.yml # Prometheus config
│ └── deployment.yml # Production deployment
├── src/ # Application code
├── tests/ # Test suite
├── requirements.txt # Dependencies (via Nexus)
├── sonar-project.properties # SonarQube config
└── README.md
🚀 Deployment Phases
Phase 1: Core Infrastructure
- Setup Traefik (gateway)
- Deploy Gitea + PostgreSQL
- Configure Docker Registry
- Setup basic monitoring
Phase 2: DevOps Tools
- Deploy Nexus Repository
- Setup Vault secrets
- Configure SonarQube
- Integrate CI/CD pipelines
Phase 3: Production
- Migrate MikroTik bot
- Setup monitoring alerts
- Configure auto-deployments
- Documentation & training
💡 Key Benefits
For Developers:
- 🔄 Автоматический CI/CD из коробки
- 📦 Быстрые сборки через Nexus cache
- 🛡️ Безопасность через Vault + SonarQube
- 📊 Мониторинг production apps
For Operations:
- 🔒 Централизованное управление секретами
- 📈 Полная observability
- 🚀 Zero-downtime deployments
- 💾 Backup & disaster recovery
For Business:
- 💰 Экономия на внешних SaaS
- ⚡ Быстрая разработка новых проектов
- 🔐 Контроль над данными
- 📊 Метрики качества кода
Готов начать с автоматизированного развертывания?