GOOGLE CLOUD → STACKIT · CHECKLIST

Migratiechecklist van Google Cloud naar STACKIT

Vierentwintig controles in zes fasen, elk gekoppeld aan het bestand dat het antwoord bevat. Ze komen uit een run van StackToIT op een Google Cloud-omgeving van negen eenheden (een VM, een netwerk, een Cloud SQL-instance, een bucket, een topic, een secret, een DNS-zone en een service account). Uw omgeving heeft meer eenheden, maar de bestanden en de vragen zijn dezelfde.

De demo-omgeving en wat de run heeft besloten

Google Cloud-resourceSTACKIT-doelKlasse
VPC-netwerkProjectnetwerk of Network AreaHerconfiguratie
Subnetworkstackit_network, hetzelfde IPv4-prefixHerconfiguratie
Compute Engine-instancestackit_server met een netwerkinterfaceHerconfiguratie
Cloud Storage-bucketstackit_objectstorage_bucketHerconfiguratie
Cloud SQL voor PostgreSQLstackit_postgresflex_instanceReplatforming
Pub/Sub-topic en -subscriptionEén RabbitMQ-instance voor alle topicsReplatforming
Secret Manager-secretEén Secrets Manager-instanceHerconfiguratie
Cloud DNS-zonestackit_dns_zoneDirect
Service accountstackit_service_accountHerconfiguratie

Tien resources werden negen eenheden: de subscription gaat op in het bijbehorende topic. Het zekerheidsniveau is MEDIUM voor elke eenheid, omdat de bron google 8.4.0 declareert zonder lockbestand. De run is uitgevoerd op 4 november 2026.

1. Inventarisatie

  • Het scanresultaat is volledig

    Open assessment.json en lees summary.source_status en source_validation. COMPLETE met geslaagde ingebouwde controles betekent dat elk bestand is gelezen; een ontbrekende module of onleesbaar bestand blijkt hier, niet later.

  • De providerversie is vastgezet

    Leg .terraform.lock.hcl vast in versiebeheer en voer opnieuw uit. Een niet vastgezette provider beperkt elke eenheid tot zekerheidsniveau MEDIUM, zoals de demorun voor alle negen vermeldt.

  • Wat Terraform niet weet, staat in een lijst

    Resources die in de console zijn aangemaakt, organisatiebeleid en elders beheerde gedeelde netwerken zitten niet in de scan. migration/technical-sequencing.md zegt ronduit dat een naam, adres of certificaat buiten de gescande bron niet wordt gezien. Noteer wie elke lacune beheert.

  • Stateful eenheden zijn benoemd

    migration/data-movement.md noemt ze: twee in de demo, de database en de bucket, beide met een onbekend mechanisme.

2. Ontwerp

  • De doelregio is beantwoord

    inputs-template.yaml bevat één verzoek dat het concept blokkeert: target.region. Beantwoord dat eerst, want de verzoeken die van de regio afhangen, worden opnieuw gesteld voor de regio die u kiest.

  • Elke klasse is beoordeeld

    engineering/architect-report.md bevat de reviewwachtrij. In de demo: één DIRECT, zes RECONFIGURE, twee REPLATFORM, geen REDESIGN of BLOCKED. Alles wat REDESIGN is, vergt een eigen ontwerppagina, geen ticket.

  • Kritieke instellingen hebben een eigenaar

    decisions.json groepeert ze: zes eenheden en vijftien kritieke instellingen in de demo. Wijs elk aan een rol toe; execution/manual/actions.md stelt al eigenaren voor.

  • De landing zone bestaat

    migration/landing-zone-requirements.md beschrijft wat de organisatie en het project moeten leveren vóór de eerste apply, en noemt de waarden die u aanlevert. Maak eerst het project aan.

Bewijs: een Cloud SQL-instance, gecontroleerd

Uit dezelfde run. Links: de instance zoals de invoer die declareert. Rechts: het PostgreSQL Flex-blok dat de engine schreef; de reviewcommentaren erboven in het bestand zijn hier weggelaten. De controles in de datafase hieronder beginnen bij dit blok.

Voorbeeldinvoermain.tf
resource "google_sql_database_instance" "core" {
  name             = "core-pg"
  region           = "europe-west3"
  database_version = "POSTGRES_15"

  settings {
    tier    = "db-custom-2-7680"
    disk_size = 100
  }
}
STACKIT-Terraform van StackToITterraform/data.tf
resource "stackit_postgresflex_instance" "core" {
  project_id = var.project_id
  name       = "core-pg"
  version    = "15"
  flavor_id  = "2.16"
  storage = {
    class = var.postgresflex_storage_class
    size  = 100
  }
  backup_schedule = "0 2 * * *"
  network = {
    acl = var.core_allowed_cidrs
  }
  retention_days = 32
}
  • Flavor uit de catalogus

    2.16 is de kleinste single-node-flavor die de brontier van 2 vCPU en 7,5 GiB dekt.

  • Toegangslijst in plaats van een netwerk

    De bron noemt geen geautoriseerde netwerken; de STACKIT-instance is bereikbaar via core_allowed_cidrs, dat geen standaardwaarde heeft en dat u met clientprefixen vult.

  • Retentie is een ondergrens, geen kopie

    De retentie van de bron is statisch niet zichtbaar, dus het concept hanteert 32 dagen, het minimum van STACKIT.

3. Bouwen

  • Elke variabele zonder standaardwaarde heeft een waarde

    In de demo: project_id, batch_image_id, batch_machine_type, batch_boot_volume_size_gb, core_allowed_cidrs, postgresflex_storage_class en drie RabbitMQ-waarden (plannaam, versie, toegestane CIDR’s). terraform/variables.tf beschrijft elk daarvan.

  • De NOT CARRIED-regels zijn gelezen

    De demo toont 26 gecontroleerde bronproperties: 20 overgenomen of toegelicht, 6 aangeduid als NOT CARRIED en geen enkele zonder verantwoording. Zoek in terraform/ naar die woorden en beslis per geval, bijvoorbeeld over de weergavenaam van het service account.

  • Machinetypen worden gekozen op basis van belasting

    Het concept laat de flavor over aan batch_machine_type. De general purpose-familie van STACKIT combineert 4 vCPU met 16 GB (g2i.4); kies op basis van gemeten gebruik.

  • Secrets worden handmatig opnieuw aangemaakt

    De run schrijft een concept voor een Secrets Manager-instance, niet voor het secret. Maak de sleutel erin aan, zet de waarde vanuit uw vault en geef het service account toegang.

4. Data

  • Per stateful eenheid is een mechanisme gekozen

    Geef voor de database en de bucket de omvang, de wijzigingssnelheid, de toegestane downtime en het recovery point op. De run noemt de dataklasse, het recovery point en de downtime als niet opgegeven en de omvang als niet in de bron aanwezig; zonder die gegevens is geen plan deugdelijk.

  • Back-up en herstel van de database zijn getest

    Het concept plant dagelijks een back-up om 02:00. Back-ups worden 32 tot 90 dagen bewaard en een point-in-time-herstel maakt een gekloonde instance. Oefen één herstel vóór de cutover.

  • Bucketversies zijn bepaald

    De bucket heeft versiebeheer aan en de run markeert dat. Bepaal of oude objectversies mee verhuizen of achterblijven, en gebruik voor de kopie een S3-compatibele tool zoals rclone.

  • Messagingclients zijn ingepland

    Pub/Sub-publishers en -subscribers gaan over op AMQP. Het concept maakt alleen de RabbitMQ-instance aan; exchanges en queues maakt u handmatig.

5. Cutover

  • De golven sluiten aan op uw afhankelijkheden

    migration/technical-sequencing.md zet de demo in drie golven: zeven eenheden, dan het subnetwork, dan de instance. Het is een startpunt, geen planning.

  • Namen en adressen buiten de scan staan in een lijst

    De run meldt dat hij geen cutoverfeiten voor DNS of certificaten heeft gevonden en voegt toe dat dit niet betekent dat ze niet bestaan. Maak een lijst van elke naam die naar de omgeving verwijst.

  • De rollback is vastgelegd

    Bij elke handmatige stap in execution/manual/actions.md staat dat het plan niet weet hoe die ongedaan wordt gemaakt. Wie de stap uitvoert, legt de terugdraaiing vast.

  • Egress en DNS-resolutie zijn aangetoond

    network.tf markeert privé-egress voor het subnetwork als niet aangetoond en merkt op dat de resolver van Google interne namen beantwoordt die de standaardnameservers van STACKIT niet beantwoorden.

6. Nazorg

  • De controles zijn afgevinkt

    execution/verify/checks.md noemt een controle vóór en na elke stap, bijvoorbeeld of een variabele een waarde heeft en of een resource in de state bestaat.

  • Het assessment is opnieuw uitgevoerd

    Voer het na het wijzigen van variabelen of het beantwoorden van verzoeken opnieuw uit op dezelfde uitvoermap: het concept wordt opnieuw gegenereerd en de eerdere run verhuist naar een submap previous-<run id> (of wordt met --replace verwijderd), zodat u beide kunt vergelijken.

  • De toegang is beoordeeld

    Rollen worden door een persoon aan het nieuwe service account toegewezen. Google raadt basisrollen in productie af; geef het account het minimum dat werkt.

  • De bron wordt na een rustperiode uitgefaseerd

    Verwijder Google-resources, sleutels en service accounts pas wanneer niets ze gedurende een afgesproken tijd heeft aangeroepen, en bewaar een export.

Vragen die teams over de checklist stellen

Kan ik deze checklist zonder StackToIT gebruiken?

De fasen en vragen gelden voor elke overstap van Google Cloud naar STACKIT. De bestandsverwijzingen zijn specifiek voor een StackToIT-run; lees ze zonder run als de lijst met antwoorden die u schriftelijk moet hebben vastgelegd.

Hoeveel eenheden krijgt mijn omgeving?

De demo heeft tien resources en negen eenheden. Echte omgevingen zijn groter en modules, loops en counts voegen instances toe. Het assessment telt resources, eenheden en instances in de samenvatting apart.

Welke punten blokkeren al het andere?

De doelregio, de variabelen zonder standaardwaarde en de openstaande kritieke instellingen. De demorun meldt dat geen van zijn geautomatiseerde stappen klaar is om te draaien zoals geschreven, totdat deze zijn afgehandeld.

Waar passen GKE, Cloud Run en BigQuery in?

Ze zitten niet in deze demo. Kubernetes en Cloud Run hebben in deze gids een eigen pagina en BigQuery is een redesign dat een architectuurbeslissing vergt voordat enige checklist van toepassing is.

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

Wij gebruiken uw gegevens alleen om dit verzoek te beantwoorden en een mogelijke pilot te bespreken. Privacyverklaring