GOOGLE CLOUD → STACKIT · PRAKTIJKCASUS
Cloud Run en Cloud SQL: een volledig assessment doorgelopen
Eén realistische omgeving, van begin tot eind: een publieke Cloud Run-API, een regionale Cloud SQL-database op een privénetwerk, een secret, een bucket en een registry. StackToIT las 13 resources, vormde 10 migratie-eenheden, schreef STACKIT-Terraform voor zes ervan en liet 22 stukken handwerk over, met 29 kritieke instellingen die op een beslissing wachten. Deze pagina laat zien hoe dat eruitziet.
De run in cijfers
Beoordeeld door StackToIT op 4 november 2026, offline, op een omgeving die voor deze pagina is geschreven. Alle getallen komen uit de console-uitvoer van de run en uit assessment.json.
| Cijfer | Waarde | Betekenis |
|---|---|---|
| Resources en eenheden | 13 resources, 10 eenheden | Drie resources (de database, de secretbinding en de invokerbinding) zijn geen eigen eenheid; 12 afhankelijkheden verbinden de eenheden. |
| Klassen | 1 CONTAINERIZE, 8 RECONFIGURE, 1 REPLATFORM | De service wordt gecontaineriseerd, de database wisselt van platform, de rest wordt herconfigureerd. |
| Concept | 6 alleen Terraform, 1 handmatig, 3 zonder resource | Zes eenheden hebben een blok in het STACKIT-concept; de registry wordt handmatig ingericht; het VPC-netwerk, het gereserveerde privébereik en de private services connection hebben geen blok nodig. |
| Golven | 4 | Fundamenten in golf 1, database als laatste in golf 4. Eenheden in een golf kunnen parallel verhuizen. |
| Openstaand werk | 22 handmatige onderdelen, 29 kritieke instellingen in 9 eenheden | Elk onderdeel is een beslissing of stap van een persoon. Niets draait vanzelf. |
| Gereedheid | 0 van 7 geautomatiseerde stappen kunnen draaien zoals ze er staan | Het pakket is een voorstel; het voorbeeld heeft geen lockbestand voor de Google-provider en de run is niet gevraagd met OpenTofu te valideren. |
De run eindigde met 12 van 12 geslaagde globale invarianten, waarvan drie voor deze omgeving niets controleerden.
De database: Cloud SQL naar PostgreSQL Flex
Links: de regionale PostgreSQL 16-instance uit de invoer, met privé-IP en point-in-time recovery. Rechts: de blokken van de STACKIT-Terraform die de run schreef; de reviewcommentaren boven elk blok in het bestand zijn hier weggelaten.
resource "google_sql_database_instance" "orders" {
name = "orders-pg"
region = "europe-west3"
database_version = "POSTGRES_16"
depends_on = [google_service_networking_connection.sql]
settings {
tier = "db-custom-2-8192"
availability_type = "REGIONAL"
disk_size = 100
disk_type = "PD_SSD"
ip_configuration {
ipv4_enabled = false
private_network = google_compute_network.shop.id
}
backup_configuration {
enabled = true
point_in_time_recovery_enabled = true
}
}
}
resource "google_sql_database" "orders" {
name = "orders"
instance = google_sql_database_instance.orders.name
}resource "stackit_postgresflex_instance" "orders" {
project_id = var.project_id
name = "orders-pg"
version = "16"
flavor_id = "2.16-replica"
storage = {
class = var.postgresflex_storage_class
size = 100
}
backup_schedule = "0 2 * * *"
network = {
acl = var.orders_allowed_cidrs
}
retention_days = 32
}
resource "stackit_postgresflex_database" "orders_orders" {
project_id = var.project_id
instance_id = stackit_postgresflex_instance.orders.instance_id
name = "orders"
owner = var.orders_orders_owner
}Versie, opslag en database worden overgenomen
PostgreSQL 16, 100 GB en de databasenaam staan in het concept. De regionale tier db-custom-2-8192 wordt flavor 2.16-replica, wat het commentaar van de run omschrijft als 2 vCPU en 16 GiB: de kleinste replica-flavor in eu01 die 2 vCPU en 8 GB dekt.
Privé-IP heeft geen tegenhanger
De instance is bereikbaar op het endpoint dat STACKIT toewijst, beperkt door een ACL. De lijst met toegestane adressen is een variabele die u invult.
Point-in-time recovery is geen instelling
De how-to van STACKIT over back-up en kloon bevestigt het: een back-up herstellen, ook naar een tijdstip, maakt een nieuwe instance in hetzelfde project en er is geen herstel ter plekke. De invoer stelt geen bewaartermijn in, dus Cloud SQL houdt zijn standaard van zeven automatische back-ups aan; de run legt dat vast als 7 dagen, en het concept stelt retention_days = 32 in. Het dagelijkse back-upschema van 02:00 is een standaardwaarde waarvan de run aangeeft dat u die moet bevestigen.
De service: Cloud Run naar een workload op SKE
Links: de Cloud Run-service met secretverwijzing, bucketvariabele en VPC-toegang. Rechts: het cluster dat de run uitwerkte om die als Deployment te hosten.
resource "google_cloud_run_v2_service" "orders" {
name = "orders-api"
location = "europe-west3"
ingress = "INGRESS_TRAFFIC_ALL"
template {
service_account = google_service_account.api.email
scaling {
min_instance_count = 1
max_instance_count = 10
}
vpc_access {
egress = "PRIVATE_RANGES_ONLY"
network_interfaces {
network = google_compute_network.shop.id
subnetwork = google_compute_subnetwork.apps.id
}
}
containers {
image = "europe-west3-docker.pkg.dev/shop-prod/images/orders-api:2.4.0"
resources {
limits = {
cpu = "1"
memory = "512Mi"
}
}
env {
name = "RECEIPTS_BUCKET"
value = google_storage_bucket.receipts.name
}
env {
name = "DB_PASSWORD"
value_source {
secret_key_ref {
secret = google_secret_manager_secret.db_password.secret_id
version = "latest"
}
}
}
}
}
}resource "stackit_ske_cluster" "containers" {
project_id = var.project_id
name = "containers"
node_pools = [{
name = "workloads"
machine_type = var.containers_machine_type
minimum = var.containers_nodes_min
maximum = var.containers_nodes_max
availability_zones = var.availability_zones
}]
}Het image verhuist, het manifest is van u
De run schrijft het cluster. De Deployment- en Service-manifests worden niet gegenereerd; naam, omgeving, resources, service account en netwerkinstellingen staan in de lijst met niet overgenomen eigenschappen.
Publieke toegang wordt gemarkeerd
De allUsers-invokerbinding geeft een waarschuwing: nu mag iedereen de service aanroepen, en uw ingress op SKE moet in de toekomst bepalen wie dat mag.
Schaalgrenzen komen in uw manifest
De bron houdt 1 tot 10 instances aan. Het cluster heeft nog geen workload, dus stel replicas en een autoscaler (bijvoorbeeld een HorizontalPodAutoscaler) zelf in. De run waarschuwt ook dat scale-to-zero op SKE KEDA of Knative vereist; met een minimum van één instance heeft deze service dat niet nodig.
Elke eenheid, de golf en het doel
Uit migration/technical-sequencing.md. Een eenheid verhuist pas nadat de eenheden waarvan hij afhangt zijn verhuisd.
| Eenheid (Google Cloud) | Golf en klasse | STACKIT-doel in de run |
|---|---|---|
| Artifact Registry-repository | 1 · RECONFIGURE | STACKIT Container Registry, handmatig ingericht |
| VPC-netwerk | 1 · RECONFIGURE | Projectnetwerken, met een Network Area waar nodig; geen blok in het concept |
| Service account | 1 · RECONFIGURE | STACKIT-service account |
| Storage-bucket | 1 · RECONFIGURE | STACKIT Object Storage-bucket |
| Gereserveerd privébereik, subnetwork, secret | 2 · RECONFIGURE | Geen resource; STACKIT-netwerk 10.20.0.0/24; sleutel in Secrets Manager |
| Cloud Run-service | 3 · CONTAINERIZE | SKE-workload, of een Cloud Foundry-app vanuit het image |
| Private services connection | 3 · RECONFIGURE | Niet nodig: managed services hebben eigen endpoints en ACL's |
| Cloud SQL-instance | 4 · REPLATFORM | STACKIT PostgreSQL Flex |
De opvallendste beslissingen
Elke beslissing komt uit een waarschuwing of een regel over niet overgenomen eigenschappen die de run naast het blok schreef.
Hoe clients de database bereiken
De brondatabase heeft geen publiek adres. Op STACKIT heeft de database een endpoint met een ACL. Bepaal de toegestane bereiken, en of de nieuwe workload de database bereikt via de egress-adressen van het cluster.
Herstel en bewaartermijn
Point-in-time recovery herstelt naar een nieuwe instance op PostgreSQL Flex, en het concept bewaart back-ups 32 dagen, terwijl de bron steunt op de standaard van Cloud SQL van zeven automatische back-ups. Toets beide aan uw recovery point objective en werk het herstelrunbook bij, inclusief waar clients na een herstel verbinding maken.
Grootte van de instance
De run kiest 2.16-replica omdat de bron regionaal is (een standby in een tweede zone). De run merkt zelf op dat geen enkele STACKIT-pagina de zone van elke replicanode vermeldt of hoe een failover werkt, dus bevestig de flavor en de beschikbaarheid die u nodig hebt voordat u apply uitvoert.
Bescherming tegen verwijderen
De deletion protection van Terraform op de Cloud SQL-instance beveiligt alleen de Terraform-workflow, en het concept voegt geen tegenhanger toe. Voeg lifecycle { prevent_destroy = true } toe zoals de run adviseert; de documentatie van PostgreSQL Flex raadt voor kritieke instances ook instancebescherming aan.
Wie de API mag aanroepen
De bron staat iedereen toe. Bepaal of de nieuwe ingress publiek blijft, achter een gateway komt of een token vereist.
Het secret en de lezers ervan
Het secret wordt handmatig als sleutel opnieuw aangemaakt; de waarde wordt nooit in het concept gekopieerd en de accessor-binding wordt niet overgenomen.
Versiebeheer van de bucket
De bronbucket heeft versiebeheer. De run merkt op dat STACKIT Object Storage versiebeheer via de S3 API ondersteunt, maar dat de bucketresource geen versioning-attribuut heeft, dus het conceptblok stelt alleen naam en project in. Schakel versiebeheer in nadat de bucket bestaat; eenmaal ingeschakeld kan het alleen worden opgeschort.
Dataverplaatsing
migration/data-movement.md noemt de database en de bucket als beslissingen zonder gekozen mechanisme, omdat de bron noch de omvang van de data noch de acceptabele downtime noemt. De redenen bij de eenheden noemen pg_dump met pg_restore of logische replicatie voor de database en rclone voor de bucket.
Waar u elk antwoord leest
- index.html
- De samenvatting en de beslissingspagina's, offline
- assessment.json
- Elke eenheid met klasse, doel, reden en bevindingen
- terraform/
- Het STACKIT-concept, één bestand per gebied
- migration/technical-sequencing.md
- De golven hierboven
- migration/data-movement.md
- Database en bucket met de openstaande databeslissingen
- execution/manual/actions.md
- De 16 werkpakketten met handmatige stappen, elk met een eigenaar
- engineering/architect-report.md
- Bevindingen, validatiematrix en wat niet is bewezen
Vragen die architecten over deze run stellen
Is de STACKIT-Terraform klaar om toe te passen?
Nee. De run noemt het een concept dat een review door een architect nodig heeft, en geen van de zeven geautomatiseerde stappen kan draaien zoals ze er staan totdat beslissingen en waarden zijn ingevuld. Het voorbeeld heeft ook geen lockbestand voor de provider en is niet met OpenTofu gevalideerd.
Waarom komt de database als laatste?
Hij hangt af van het netwerk en van de private services connection, dus de run zet hem in golf 4. De volgorde is een startpunt voor uw golfplan, geen planning.
Waarom is de Cloud Run-service geen Terraform?
De run werkt het SKE-cluster uit dat de service host. De Deployment- en Service-manifests worden niet gegenereerd, dus u schrijft ze aan de hand van de lijst met niet overgenomen eigenschappen.
Verplaatst de run data?
Nee. StackToIT schrijft bestanden en wijzigt niets in een cloud. De datastappen zijn beslissingen voor uw team.
Bronnen
Uw volgende stap: STACKIT.
Vertel ons over uw omgeving, dan laten wij zien wat StackToIT daarvoor oplevert: doelarchitectuur, Terraform-artefacten en een gestructureerd migratieplan.
Laat uw gegevens achter, onze specialisten nemen contact met u op.
Liever zelf een e-mail sturen? connect@stacktoit.com
Hartelijk dank.
Uw verzoek is bij ons binnengekomen. Onze specialisten nemen contact met u op.