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
- Opprett GCP-prosjekt (allerede: project-72cd303f)
- Aktiver Cloud Run API
- Opprett Cloud SQL PostgreSQL-instans (db-f1-micro for dev)
- Konfigurer secrets i Secret Manager
- 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:
- Drop er ~7,600 linjer TypeScript — full rewrite til Kotlin = 2-3 mnd
- SpareBank 1 sin API er REST/GraphQL — språket på vår side er irrelevant
- TypeScript fullstack = ett språk, ett team, raskere iterasjon
- Next.js API Routes er tilstrekkelig for vår skala (fintech MVP)
- 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
No comments to display
No comments to display