2.4 KiB
2.4 KiB
Deployment
Компоненты
Internet
│
HTTPS
│
▼
Reverse proxy / Load Balancer
│
▼
BalanceServer
│
▼
Database
Configuration
Все environment variables и flags должны задаваться через deployment environment, а не hard-code в Go.
Перед production deployment составьте список переменных, которые реально читает текущий код:
- docker-compose.yml
- docker-compose.yml
- docker-compose.yml
- go.mod
- README.md
- README.md
- README.md
- Dockerfile
- Dockerfile
- Dockerfile
- internal/database/database.go
- internal/database/database.go
- internal/database/database.go
- internal/config/config.go
- internal/config/config.go
- internal/config/config.go
- internal/auth/tokens.go
- internal/auth/tokens.go
- internal/auth/tokens.go
- internal/auth/password.go
Docker
Если репозиторий содержит Dockerfile/compose, используйте их как canonical deployment recipe.
Не включайте secrets в Docker image.
Health/readiness
Если проект предоставляет health endpoint, load balancer должен использовать его для readiness.
Database connectivity желательно проверять отдельно от liveness.
Database migrations
Migration должна выполняться контролируемо:
backup
↓
migration
↓
health check
↓
application rollout
Не запускайте destructive migration автоматически без backup/rollback plan.
Backups
Финансовые данные — пользовательские данные высокой ценности.
Минимум:
- регулярные DB backups;
- retention policy;
- периодическая проверка restore;
- encrypted backup storage.
Observability
Рекомендуется мониторить:
- HTTP 5xx;
- auth failures;
- sync failures;
- latency;
- DB latency/errors;
- active users/devices;
- size/lag of sync change log;
- disk/storage usage.
Release checklist
- Tests green.
- Database migrations проверены.
- Backup создан.
- Secrets injected через secure mechanism.
- HTTPS включён.
- Health checks работают.
- Sync tested with both mobile clients.
- Rollback plan готов.