Skip to main content

Architettura con Nomad

Questa pagina descrive l'architettura target per la migrazione a Nomad.

Principi Architetturali

1. Separazione tra Stateful e Stateless

[!IMPORTANT] I servizi stateful (database, cache) vengono gestiti come servizi cloud managed, mentre i servizi stateless (microservices) vengono orchestrati da Nomad.

TipoGestioneEsempi
StatefulGoogle Cloud ManagedPostgreSQL, Redis
StatelessNomadauth, devices, decoder, etc.

2. Perché Servizi Managed per DB e Redis?

Vantaggi:

AspettoServizio ManagedSelf-hosted
Backup✅ Automatici, point-in-time❌ Da configurare
HA/Failover✅ Automatico❌ Complesso
Scaling✅ Un click❌ Downtime
Patching✅ Automatico❌ Manuale
Monitoring✅ Incluso❌ Da configurare
Costo operativo✅ Basso❌ Alto

Svantaggi:

  • Costo mensile più alto rispetto a VM raw
  • Vendor lock-in (mitigabile con standard SQL/Redis protocol)

3. Network Architecture

Componenti del Cluster

Control Plane (Alta Disponibilità)

Per produzione, raccomandiamo 3 o 5 nodi per quorum:

ComponenteNodiRisorse per Nodo
Nomad Server32 vCPU, 4GB RAM
Consul Server32 vCPU, 4GB RAM

[!TIP] Nomad e Consul Server possono coesistere sulle stesse VM per ridurre i costi in ambienti non critici.

Worker Nodes (Auto-scaling)

TipoMinMaxRisorse
General Purpose2104 vCPU, 8GB RAM
Decoder (High CPU)158 vCPU, 16GB RAM

Servizi Gestiti

ServizioGoogle CloudTier Consigliato
PostgreSQLCloud SQLdb-custom-2-8192
RedisMemorystoreBasic 2GB

Mapping Servizi Attuali → Nomad Jobs

Servizio AttualeNomad JobTipoReplicas
authauth-serviceservice2-5
devicesdevices-serviceservice2-5
trackingtracking-serviceservice2-5
sharingsharing-serviceservice2-3
commandscommands-serviceservice2-3
notificationsnotifications-serviceservice2-3
billingbilling-serviceservice2-3
websocketwebsocket-serviceservice2-5
decoderdecoder-serviceservice2-10
position-filterposition-filter-serviceservice2-5
position-enricherposition-enricher-serviceservice2-5
db-persisterdb-persister-serviceservice2-3
event-detectorevent-detector-serviceservice2-3
nginx (gateway)traefiksystem1 per node

Data Flow con Nomad

Considerazioni sulla Sicurezza

Network Security

  1. VPC Privata - Tutti i worker in subnet privata
  2. NAT Gateway - Per accesso internet outbound
  3. Private Service Connect - Per Cloud SQL e Memorystore
  4. Firewall Rules - Solo porte necessarie aperte

Secrets Management

Opzioni:

  1. HashiCorp Vault (raccomandato)
  2. Google Secret Manager
  3. Nomad Variables (per secrets non critici)

Stima Costi Mensili (Produzione)

ComponenteSpecificheCosto Est.
Nomad/Consul Servers (3x)n2-standard-2~$150
Worker Nodes (5x)n2-standard-4~$400
Cloud SQLdb-custom-2-8192~$100
Memorystore Redis2GB Basic~$50
Load BalancerStandard~$20
Network Egress~500GB~$50
Totale~$770/mese

[!NOTE] Questi sono costi stimati. Usare il Google Cloud Calculator per stime precise.