Ekspluatatsiya
Production deployment
Compose topologiyasi, release tartibi, secretlar, TLS va smoke testlar.
Production topologiyasi
Compose stack pgvector/PostgreSQL, Redis, one-shot migrate, ixtiyoriy seed, API, worker, web, caddy-init va Caddy servislaridan iborat. Faqat Caddy hostga 80/443 portlarini publish qiladi.
| Servis | Public | Muhim dependency |
|---|---|---|
| caddy | 80/443 | web, api, TLS volume |
| web | Yo‘q | api origin |
| api | Yo‘q | PostgreSQL, Redis, S3, provider |
| worker | Yo‘q | PostgreSQL, S3 |
| migrate | One-shot | PostgreSQL |
| postgres | Yo‘q | Persistent volume |
| redis | Yo‘q | Maxmemory policy |
Release tartibi
- Target versiya va image digestlarini pin qiling.
- Database va S3 backupini oling; restore drill natijasini tekshiring.
- Production environment invariantlarini preflight qiling.
- Migration image/commandni bir marta ishga tushiring.
- API, worker va web image’larini rolling yoki boshqariladigan restart bilan yangilang.
/health,/ready, metrics va loglarda xato yo‘qligini tekshiring.- Login, chat, upload va admin/provider smoke testlarini bajaring.
Compose release
docker compose pull
docker compose run --rm migrate
docker compose up -d --no-deps api worker web caddy
docker compose ps
curl -fsS https://ai.example.uz/health
curl -fsS https://ai.example.uz/readyTLS va tarmoq
CADDY_DOMAINDNS’i edge hostga yo‘naltirilgan bo‘lsin.- Caddy ACME storage volume’ini persistent saqlang.
- PostgreSQL/Redis/S3 endpointlarini internetga publish qilmang.
- Cloud firewall’da faqat zarur inbound 80/443 va boshqaruv kanalini oching.
- API egressini faqat provider va S3 manzillariga cheklashni ko‘rib chiqing.
Rollback
Application image’ni oldingi digestga qaytarish mumkin, lekin schema migration backward-compatible bo‘lishi shart. Destructive schema rollback avtomatik emas: oldindan restore nuqtasi, migration compatibility va maintenance window rejasini tayyorlang.
DB’ni image bilan ko‘r-ko‘rona orqaga qaytarmang
Yangi kod yozgan ma’lumot eski binary tomonidan o‘qiladimi — release’dan oldin tekshiriladi. Zarur bo‘lsa roll-forward tuzatish xavfsizroq.