Skip to main content

Cloud Migration Strategy — GCP → Azure

Cloud Migration Strategy — Drop

Dato: 2026-02-18 Status: Planlegging Beslutning: Azure som produksjonsplattform, GCP for dev/staging


SpareBank 1 — Teknisk Stack (Research)

Lag Teknologi
Cloud Azure (primær) — Eunomia-plattformen for 13 banker
Sekundær AWS (mindre workloads)
Backend Kotlin/Java (Spring Boot)
Frontend React + TypeScript
Orkestrering Kubernetes / OpenShift
Meldingskø Apache Kafka
Autentisering BankID (norsk eID)
API Gateway Axway
Partnerskap Microsoft (strategisk partner)

Drops Nåværende Stack

Lag Teknologi
Frontend Next.js 16 + React 19 + Tailwind v4
Backend Next.js API Routes (Node.js)
Database SQLite (better-sqlite3) → PostgreSQL (prod)
Auth JWT (jose) i httpOnly cookies + BankID
Hosting Fly.io (staging), Vercel (planned prod)

Migreringsstrategi

Fase 1: GCP Dev/Staging (NÅ)

  • Gratis prøveperiode: $300/kr2,884 til 20. mai 2026
  • Tjenester: Cloud Run (containerisert Next.js), Cloud SQL (PostgreSQL), Cloud Storage
  • Formål: Utviklingsmiljø + CI/CD testing
  • Ingen regulatorisk risiko (kun testdata)

Fase 2: Azure Produksjon (Når credits kommer)

  • Microsoft Founders Hub — søknad sendt (#1362)
  • Tjenester: Azure App Service eller AKS, Azure Database for PostgreSQL, Azure Blob Storage
  • Formål: Produksjonsmiljø
  • SpareBank 1-tilpasning: Samme skyplattform reduserer friksjon ved partnerskap

Fase 3: Multi-Cloud Beredskap

  • AWS — søknad sendt (#1360), backup/DR
  • Containerisert arkitektur — Docker + eventuelt Kubernetes gjør leverandøruavhengig

GCP Deploy Plan (Fase 1)

Steg 1: Containerisering

# Dockerfile for Drop Next.js
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --production
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "start"]

Steg 2: GCP Oppsett

  1. Opprett GCP-prosjekt (allerede: project-72cd303f)
  2. Aktiver Cloud Run API
  3. Opprett Cloud SQL PostgreSQL-instans (db-f1-micro for dev)
  4. Konfigurer secrets i Secret Manager
  5. Sett opp Cloud Build for CI/CD

Steg 3: Deploy Pipeline

# Build og push container
gcloud builds submit --tag gcr.io/PROJECT_ID/drop-web

# Deploy til Cloud Run
gcloud run deploy drop-web \
  --image gcr.io/PROJECT_ID/drop-web \
  --platform managed \
  --region europe-north1 \
  --allow-unauthenticated \
  --set-env-vars DATABASE_URL=postgresql://...

Steg 4: DNS + SSL

  • Custom domain: drop.alai.no → Cloud Run
  • SSL: Automatisk via Google-managed certificates
  • CDN: Cloud CDN foran Cloud Run (valgfritt)

Regulatoriske Krav (Finanstilsynet)

  • 60-dagers varsel før sky-outsourcing for finansielle tjenester
  • Dokumentasjonskrav: Sikkerhetstiltak, data residency, exit-strategi
  • Data residency: Europe (europe-north1 = Finland, closest to Norway)
  • Handling: Forbered dokumentasjon FØR produksjonsmigrering

Kotlin/Java Vurdering

Beslutning: Nei — beholder Next.js/TypeScript

Hvorfor:

  1. Drop er ~7,600 linjer TypeScript — full rewrite til Kotlin = 2-3 mnd
  2. SpareBank 1 sin API er REST/GraphQL — språket på vår side er irrelevant
  3. TypeScript fullstack = ett språk, ett team, raskere iterasjon
  4. Next.js API Routes er tilstrekkelig for vår skala (fintech MVP)
  5. Når vi trenger mikrotjenester → da vurderer vi Kotlin for spesifikke tjenester

Estimerte Kostnader

Tjeneste GCP (dev) Azure (prod)
Compute Cloud Run: ~$0 (free tier) App Service B1: ~$13/mnd
Database Cloud SQL micro: ~$7/mnd PostgreSQL Basic: ~$25/mnd
Storage 5GB: ~$0.10/mnd 5GB: ~$0.10/mnd
Totalt ~$7/mnd (dekkes av credits) ~$38/mnd (dekkes av credits)

Relaterte Oppgaver

  • MC #1360: AWS credits søknad (sendt)
  • MC #1361: GCP credits søknad (sendt, free trial aktiv)
  • MC #1362: Azure/Microsoft Founders Hub (sendt)
  • MC #1364: Anthropic credits søknad