Cluster Topology ve Placement Matrisi
Bu sayfa, Qapu'nun Docker Swarm uzerindeki hedef cluster topolojisini ve servis placement modelini somutlastirir.
Onerilen Referans Topoloji
Minimum production zihinsel modeli:
manager-1manager-2manager-3worker-app-1worker-app-2worker-stateful-1worker-stateful-2worker-stateful-3
Node Label Onerisi
| Node | Etiketler |
|---|---|
manager-* | qapu.role=manager |
worker-app-* | qapu.role=app |
worker-stateful-1 | qapu.role=stateful, qapu.postgres=true, qapu.storage=true |
worker-stateful-2 | qapu.role=stateful, qapu.redis=true, qapu.kafka=true |
worker-stateful-3 | qapu.role=stateful, qapu.kafka=true, qapu.storage=true |
Not:
- Kafka broker'lari broker bazli ayri placement alir
- PostgreSQL primary placement deterministic kalir
- FOTA serving ve storage deterministic node veya shared storage ile baglanir
Servis Placement Matrisi
| Servis | Sinif | Replica / Topology | Placement | Persistence | Network |
|---|---|---|---|---|---|
| API | Stateless | 2+ | qapu.role=app | Yok | qapu-public, qapu-app, qapu-data? |
| Ingest | Stateless | 2+ | qapu.role=app | Yok | qapu-public, qapu-app, qapu-data |
| Communication | Stateless | 2+ | qapu.role=app | Yok | qapu-app, qapu-data |
| Observer | Stateless | 2+ | qapu.role=app | Yok | qapu-app, qapu-data, qapu-ops? |
| Automation | Stateless | 1+ | qapu.role=app | Yok | qapu-app, qapu-data |
| Egress | Stateless | 2+ | qapu.role=app | Yok | qapu-app, qapu-data |
| PostgreSQL | Stateful | single primary | qapu.postgres=true | Evet | qapu-data, qapu-ops? |
| Redis | Stateful-lite | single instance | qapu.redis=true | Opsiyonel | qapu-data, qapu-ops? |
| Kafka | Stateful | 3 broker | qapu.kafka=true | Evet | qapu-data, qapu-ops? |
| FOTA Storage | Stateful / Edge | single serving plane | qapu.storage=true | Evet | qapu-storage, qapu-ops? |
Placement Kurallari
Kural 1
Stateful servisler random scheduler karariyla dolasmamalidir.
Kural 2
Stateless servisler manager yerine app worker'larda kosmalidir.
Kural 3
Kafka topology replica degil broker mantigiyla dusunulmelidir.
Kural 4
PostgreSQL single-primary gercegi deployment ve restore runbook'lari ile birlikte ele alinmalidir.
Kural 5
FOTA delivery plane, API plane ile ayni edge contract'a sahip sayilmamalidir.