Skip to content

Deployment

FluxiQ Core is designed for deployment on Google Cloud Platform (GCP) in the southamerica-east1 (Sao Paulo) region, optimized for low-latency PIX processing in Brazil.

Infrastructure Overview

ComponentGCP ServiceConfiguration
API ServerCloud Run2-4 vCPU, 2-4 GiB, auto-scaling 1-100
Frontend AppsCloud Run + CDNStatic builds served via nginx
DatabaseCloud SQL PostgreSQL 16HA, 8 vCPU, 32 GB, PITR
CacheMemorystore Redis 7.2Standard HA, 2-5 GB
Message QueueGKE + NATSJetStream enabled, 2-3 replicas
LedgerGKE + TigerBeetleSingle node (expandable to 3-6 replicas)
Load BalancerGlobal HTTPS L7CDN enabled, managed SSL
SecretsSecret ManagerAuto-rotation for credentials
MonitoringCloud Monitoring + GrafanaCustom dashboards and alerts

Prerequisites

  • GCP project with billing enabled
  • gcloud CLI installed and authenticated
  • kubectl configured for GKE cluster access
  • Domain DNS configured (e.g., *.fluxiq.com.br)
  • Docker and container registry access

Step 1: Infrastructure Setup

VPC Network

bash
# Create VPC
gcloud compute networks create fluxiq-vpc \
  --subnet-mode=custom \
  --project=YOUR_PROJECT_ID

# Create subnet
gcloud compute networks subnets create fluxiq-subnet \
  --network=fluxiq-vpc \
  --region=southamerica-east1 \
  --range=10.0.0.0/20

Cloud SQL (PostgreSQL)

bash
# Create instance
gcloud sql instances create fluxiq-db \
  --database-version=POSTGRES_16 \
  --tier=db-custom-8-32768 \
  --region=southamerica-east1 \
  --availability-type=REGIONAL \
  --storage-type=SSD \
  --storage-size=100GB \
  --backup-start-time=03:00 \
  --enable-point-in-time-recovery \
  --network=fluxiq-vpc

# Create database
gcloud sql databases create fluxiq --instance=fluxiq-db

Redis (Memorystore)

bash
gcloud redis instances create fluxiq-cache \
  --size=2 \
  --region=southamerica-east1 \
  --tier=STANDARD_HA \
  --redis-version=redis_7_2 \
  --network=fluxiq-vpc

GKE Cluster

bash
gcloud container clusters create fluxiq-cluster \
  --region=southamerica-east1 \
  --machine-type=e2-standard-4 \
  --num-nodes=2 \
  --enable-ip-alias \
  --network=fluxiq-vpc \
  --subnetwork=fluxiq-subnet

Step 2: Deploy Infrastructure Services

NATS with JetStream

bash
kubectl apply -f infrastructure/k8s/nats/nats-deployment.yaml
kubectl apply -f infrastructure/k8s/nats/nats-streams-midaz.yaml

TigerBeetle

bash
kubectl apply -f infrastructure/k8s/tigerbeetle/namespace.yaml
kubectl apply -f infrastructure/k8s/tigerbeetle/pvc.yaml
kubectl apply -f infrastructure/k8s/tigerbeetle/deployment.yaml
kubectl apply -f infrastructure/k8s/tigerbeetle/service.yaml

Step 3: Build and Deploy Application

bash
# Build backend image
gcloud builds submit backend/ \
  --tag southamerica-east1-docker.pkg.dev/PROJECT_ID/fluxiq/api:latest

# Deploy to Cloud Run
gcloud run deploy fluxiq-api \
  --image=southamerica-east1-docker.pkg.dev/PROJECT_ID/fluxiq/api:latest \
  --region=southamerica-east1 \
  --cpu=2 --memory=2Gi \
  --min-instances=1 --max-instances=100 \
  --vpc-connector=fluxiq-connector

Step 4: Load Balancer and SSL

bash
# Create managed SSL certificate
gcloud compute ssl-certificates create fluxiq-cert \
  --domains="api.fluxiq.com.br,banking.fluxiq.com.br,admin.fluxiq.com.br,merchant.fluxiq.com.br"

# Create URL map and HTTPS proxy
gcloud compute url-maps create fluxiq-url-map \
  --default-service=fluxiq-api-backend

gcloud compute target-https-proxies create fluxiq-https-proxy \
  --url-map=fluxiq-url-map \
  --ssl-certificates=fluxiq-cert

Rollback Procedure

bash
# List recent revisions
gcloud run revisions list --service=fluxiq-api --region=southamerica-east1 --limit=5

# Route traffic to previous revision
gcloud run services update-traffic fluxiq-api \
  --to-revisions=fluxiq-api-PREVIOUS_REVISION=100 \
  --region=southamerica-east1

Cost Estimate

ComponentMonthly Cost
Cloud SQL (HA, 8 vCPU)~$400
Memorystore Redis (HA, 2GB)~$120
GKE (2 nodes, e2-standard-4)~$200
Cloud Run (API + 3 UIs)~$300
Load Balancer + CDN~$50
Cloud NAT~$45
Monitoring and Logging~$85
Total~$1,200/month

FluxiQ Core - PIX Payment Gateway