109 lines
2.4 KiB
Markdown
109 lines
2.4 KiB
Markdown
# Deployment
|
||
|
||
## Компоненты
|
||
|
||
```text
|
||
Internet
|
||
│
|
||
HTTPS
|
||
│
|
||
▼
|
||
Reverse proxy / Load Balancer
|
||
│
|
||
▼
|
||
BalanceServer
|
||
│
|
||
▼
|
||
Database
|
||
```
|
||
|
||
## Configuration
|
||
|
||
Все environment variables и flags должны задаваться через deployment environment, а не hard-code в Go.
|
||
|
||
Перед production deployment составьте список переменных, которые реально читает текущий код:
|
||
|
||
```text
|
||
- 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 должна выполняться контролируемо:
|
||
|
||
```text
|
||
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 готов.
|