AZURE → STACKIT · CHECKLIST
Migratiechecklist van Azure naar STACKIT
Vierendertig checks in zes fasen, elk gekoppeld aan het bestand waarin een StackToIT-run het antwoord bewaart. De cijfers en bestandsnamen komen uit een assessment van een kleine Azure-omgeving (een scale set, PostgreSQL, Redis, een storage account, Key Vault en een netwerk), uitgevoerd op 4 november 2026; uw omgeving heeft eigen cijfers en dezelfde bestanden.
Wat een run u vertelt vóór de eerste check
Links: drie regels van de consolesamenvatting van de demo-omgeving. Rechts: twee regels uit execution/verify/checks.md, het bestand dat het plan omzet in checks die u kunt afvinken: de eerste uit de lijst 'Before each step', de tweede uit 'After each step'.
Source 9 resources · 7 units · visibility: Complete
Migration 6 drafted · 1 need no resource (of 7 units the draft considered)
Attention 7 units to review · 6 open requests (1 block the draft, marked in inputs-template.yaml)- [ ] `TF/stackit_valkey_instance.erp` · `variable-supplied` `variable=erp_cache_allowed_cidrs` — The variable `erp_cache_allowed_cidrs` has a value.
- [ ] `TF/stackit_valkey_instance.erp` · `resource-exists` `address=stackit_valkey_instance.erp` — `stackit_valkey_instance.erp` exists in the STACKIT project (OpenTofu's state lists it).Zeven eenheden uit negen resources
Negen Terraform-resources werden zeven eenheden. Een container of een koppeling wordt samen met de eenheid gelezen waartoe die behoort, dus het aantal eenheden en het aantal resources verschillen bewust.
Eén vraag blokkeert het concept
De run toont zes openstaande vragen en markeert er één als blokkerend. Beantwoord die eerst: die staat in review/inputs.yaml.
De checks zijn het plan, afgevinkt
execution/verify/checks.md bevat een regel voor elke variabele die vóór een stap een waarde moet hebben, en een regel voor elke resource die erna moet bestaan.
Fase 1: Inventarisatie
Wat u aanlevert, en wat de run niet kan zien.
Elke Terraform-root staat in de beoordeelde map
De run leest azurerm- en azapi-code en maakt nooit verbinding met Azure. Wat handmatig of buiten de map is aangemaakt, ziet de run niet. Check: engineering/architect-report.md vermeldt de bronstatus en de gelezen resources.
Het lockbestand van de provider is gecommit
Zonder .terraform.lock.hcl begrenst de run de eenheden van die provider op zekerheidsniveau MEDIUM en markeert hij er geen enkele als geschikt voor geautomatiseerde stappen. Check: de providernotitie bovenaan engineering/architect-report.md.
Elke variabele heeft een waarde
Een eenheid die een niet ingestelde variabele leest, krijgt geen concept, en de run noemt de variabele. Check: de regel Next in de console en het eerste onderdeel van het architectenrapport.
Stateful eenheden staan op een lijst
migration/data-movement.md noemt de eenheden die data bevatten: hier PostgreSQL, Redis en het storage account. Key Vault hoort daar niet bij, dus inventariseer secrets en sleutels apart.
Handmatig aangemaakte resources zijn toegevoegd
Resourcegroepen, policies, roltoewijzingen en Entra-objecten die buiten Terraform bestaan, vereisen een eigen inventaris; exporteer ze naar code of noteer ze handmatig.
Fase 2: Ontwerp
De beslissingen die bepalen wat er gebouwd wordt.
De vraag over de regio is beantwoord
target.region is de enige vraag die het concept blokkeert. Beantwoord die in review/inputs.yaml en voer de run opnieuw uit op dezelfde uitvoermap.
Resourcegroepen worden projecten
STACKIT kent geen resourcegroepen. De werkpakketten in migration/work-packages.csv leggen per eenheid de beslissing vast; kies één projectindeling en beantwoord ze allemaal daarmee.
Het netwerkontwerp is gekozen
Het virtuele netwerk wordt uitgewerkt zonder eigen resource; het adresbereik en de vraag over het Network Area zijn openstaande instellingen. Check: het pakket van de Network Architect.
Elke REDESIGN- en MANUAL_REVIEW-eenheid wordt eerst gelezen
Deze demo heeft er geen: vijf eenheden zijn RECONFIGURE en twee REPLATFORM, alle met zekerheidsniveau MEDIUM. Omgevingen met Entra ID-groepen of Cosmos DB kunnen in REDESIGN terechtkomen; lees die rijen van engineering/review.csv vóór al het andere.
De blootstelling van de database is vastgesteld
De PostgreSQL-bron had openbare netwerktoegang ingeschakeld. Op STACKIT bereiken clients de instance via de toegangslijst, dus de variabele met de toegestane CIDR's is de beheersmaatregel. Die heeft geen standaardwaarde.
Secrets en sleutels hebben een eigenaar
Key Vault wordt een Secrets Manager-instance, met KMS voor sleutels. Het pakket van de Identity Architect bevat de openstaande instellingen.
Beslissingen zijn vastgelegd
Schrijf de beoordeling weg in review/decisions.yaml. Een registratie is de vaststelling dat iemand ernaar heeft gekeken, geen wijziging van het concept.
Fase 3: Bouw
Het concept omzetten in iets wat zonder fouten te plannen is.
Variabelen zijn aangeleverd
Het concept declareert 12 variabelen. review/target-values.tfvars noemt de 9 zonder standaardwaarde, elk met een stub: project-id, image, machinetype, grootte van het bootvolume, Valkey-plan en -versie, PostgreSQL-opslagklasse en de twee lijsten met toegestane CIDR's. Regio, availability zone en nameservers hebben standaardwaarden (eu01, eu01-1, de resolveradressen van STACKIT) die u bevestigt.
De opmerkingen over niet overgenomen eigenschappen zijn gelezen
Elk blok in terraform/ bevat opmerkingen over de instellingen die niet konden worden overgenomen. engineering/not-carried.csv zet ze in één tabel.
De providerversie is de beoordeelde versie
terraform/terraform.tf zet de STACKIT-provider vast waartegen het concept is geschreven. Behoud die versie tot de beoordeling is afgerond.
Scale sets zijn begrepen
De scale set werd een vaste groep van twee servers met een count. STACKIT kent geen scale-set-object, dus capaciteit wijzigt u door de count aan te passen; een affinity group is optioneel.
Images bestaan
De Azure-imageverwijzing wordt niet overgenomen. Kies een openbaar STACKIT-image of importeer een geconverteerd image (raw, qcow2 of iso).
Er is nog niets toegepast
Het concept is bedoeld voor beoordeling. De run past nooit iets toe; toepassen is een stap die een medewerker zet met OpenTofu.
Fase 4: Data
De run toont welke eenheden data bevatten, maar verplaatst die niet.
Een mechanisme per stateful eenheid
Alle drie de eenheden tonen het mechanisme UNKNOWN en de status DECISION_REQUIRED in migration/data-movement.md.
RPO, downtime en dataclassificatie zijn vastgelegd
De run neemt RTO, RPO en toegestane downtime over uit een applicatiebestand (--applications) en registreert ze zoals opgegeven. Zonder die gegevens toont de tabel voor dataverplaatsing NOT_PROVIDED voor dataclassificatie, RPO en downtime, en gaat de run nergens van uit.
PostgreSQL heeft een plan voor dump en restore of voor replicatie
Bijvoorbeeld pg_dump en pg_restore voor een kleine database, logische replicatie voor een korte cutover. Omvang, wijzigingsfrequentie en toegestane downtime bepalen de keuze.
Objectdata heeft een kopieerplan, en waar nodig een tweede kopie
Het storage account van de bron is geo-redundant. STACKIT Object Storage kent geen beheerde replicatie tussen regio's, dus een tweede kopie vereist een eigen synchronisatietaak.
De beslissing over Redis is expliciet
Bouw de cache opnieuw op of neem hem over. Azure exporteert RDB-snapshots alleen vanaf de Premium- en Enterprise-tiers, dus de Standard-cache van deze demo heeft geen exportpad. De STACKIT-back-up wordt hersteld in dezelfde instance; een back-up voor een andere instance wordt gedownload, wat een versleutelingssleutel vereist, en handmatig hersteld.
Schijven worden geëxporteerd voordat de VM wordt aangeraakt
Een VHD kan niet worden gedownload van een schijf die aan een draaiende VM hangt; stop de VM of maak een snapshot. STACKIT importeert raw, qcow2 en iso.
Fase 5: Cutover
Volgorde, namen en de weg terug.
De golfvolgorde is geaccepteerd
migration/technical-sequencing.md zet Key Vault, PostgreSQL, Redis, opslag en het netwerk eerst, het subnet als tweede en de servers als derde. Een golf is een startpunt voor een planning.
Namen, adressen en certificaten staan op een lijst
De run vond in deze bron geen DNS- of certificaatgegevens. Dat betekent niet dat ze er niet zijn: som elke naam, elk adres en elk certificaat op dat clients gebruiken.
Clients hebben hun nieuwe inloggegevens
STACKIT genereert het wachtwoord van de Valkey-inloggegevens; het concept toont het als de gevoelige uitvoer erp_valkey_credential_password, en de state bevat het in platte tekst. De PostgreSQL-gebruiker staat niet in dit concept, dus maak die en het wachtwoord zelf aan. Geef beide aan de clients vóór de omschakeling.
Voor elke stap is een rollback uitgeschreven
Het plan geeft bij de handmatige stappen aan dat het niet weet hoe ze worden teruggedraaid. Leg de weg terug vast, met een eigenaar, voordat het venster opent.
Praktijk: verlaag DNS-levensduren vooraf
Een algemene maatregel, geen uitvoer van de run: verkort de levensduur van records enkele dagen vóór de omschakeling, zodat een rollback snel doorwerkt.
Fase 6: Nazorg
Bewijs, registratie en uitfasering.
De checks na de stappen zijn afgevinkt
Elke resource in execution/verify/checks.md bestaat in het STACKIT-project en de OpenTofu-state vermeldt die.
De voortgang wordt bijgehouden
In review/progress.yaml legt u elke stap vast als in uitvoering, klaar, mislukt of vrijgesteld. Het bestand registreert wat u deed; het bewijst niets.
Toegang is per rol getest
Meld u aan met één principal per rol en bevestig zowel wat werkt als wat wordt geweigerd.
De Azure-kant blijft staan tot de checks slagen
Laat de bron draaien gedurende een afgesproken overlap en faseer hem daarna uit met een eigen ticket.
De run wordt herhaald op de definitieve code
Voer het assessment opnieuw uit na wijzigingen in de Terraform-code, zodat het rapport overeenkomt met wat er bestaat.
Welk bestand beantwoordt welke vraag
| Vraag | Bestand in de run | Wat u vindt |
|---|---|---|
| Wat is gelezen en wat is het geworden? | assessment.json, migration/source-target.csv | Eenheid, klasse, zekerheidsniveau, STACKIT-doel |
| Wat vereist menselijke beoordeling? | engineering/architect-report.md, migration/work-packages.csv | Beoordelingswachtrij en werkpakketten met eigenaarsrollen |
| Wat is niet overgenomen? | engineering/not-carried.csv | Instelling voor instelling, met de reden |
| In welke volgorde? | migration/technical-sequencing.md, migration/waves.csv | Golven op basis van afhankelijkheden |
| Waar verplaatst data zich? | migration/data-movement.md | Stateful eenheden en het openstaande mechanisme |
| Wat vink ik af? | execution/verify/checks.md | Voor en na elke stap |
De bestandsnamen zijn die van de demorun. De set bestanden hangt af van de invoer en de opties van de run.
Vragen over de checklist
Is deze checklist een plan?
Het is de lijst met checks rond een plan. Het plan zelf, met geordende stappen en eigenaren, is execution-plan.json en het migratieplanbestand in de run.
Heb ik een run nodig om de checklist te gebruiken?
Nee, maar elke regel verwijst naar een bestand dat een run schrijft. Zonder run beantwoordt u dezelfde vragen handmatig en bewaart u de antwoorden in uw eigen tracker.
Waarom vraagt de run wie eigenaar is van een beslissing?
Elk werkpakket noemt een rol, zoals Identity Architect of Network Architect, zodat een beoordeling vanaf het begin een eigenaar heeft.
Wat staat er niet op deze checklist?
Contracten, opleiding van medewerkers en applicatietests. Die vallen buiten wat een Terraform-assessment kan zien.
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.