MIGRATIESTRATEGIE · ELKE BRON → STACKIT
Rehost, replatform, refactor of redesign: per workload kiezen voor STACKIT
Kies de strategie per eenheid, niet per omgeving. In een kleine AWS-omgeving die StackToIT op 4 november 2026 beoordeelde, vergde één van de 12 eenheden alleen een datakopie, zeven vergden configuratiewerk, twee gingen naar een ander platformmodel, één werd een container en bij één moest de datalaag opnieuw worden ontworpen. De klasse die StackToIT bij elke eenheid schrijft, vertelt u om wat voor werk het gaat, voordat er één server verhuist.
De vier strategieën naast de klassen die StackToIT schrijft
Rehost, replatform en refactor komen uit de migratieframeworks van de leveranciers; AWS rekent refactor samen met re-architect, en redesign wordt hier gebruikt voor dat geval van herontwerp van de architectuur. StackToIT geeft eenheden niet deze namen: het schrijft per eenheid een klasse, en de klassen hieronder komen er het dichtst bij.
| Strategie | Dichtstbijzijnde StackToIT-klasse | Wat het betekent in het plan |
|---|---|---|
| Rehost (lift and shift) | DIRECT, RECONFIGURE | De dienst heeft een STACKIT-tegenhanger met dezelfde interface of dezelfde vorm. Instellingen, images, afmetingen en inloggegevens veranderen; de applicatie niet. |
| Replatform | REPLATFORM | De workload gaat naar een ander platformmodel, zoals een managed database of een message broker. Clients wisselen van driver, protocol of verbindingsgegevens. |
| Refactor | CONTAINERIZE | De code behoudt de logica maar verliest het uitvoeringsmodel. De handler wordt verpakt in een permanent draaiend proces en de triggers worden opnieuw opgebouwd. |
| Redesign | REDESIGN | Er is geen compatibele dienst. Het datamodel en de toegangslaag worden herschreven voor een ander soort opslag. |
AWS Prescriptive Guidance definieert rehost als een verhuizing zonder wijzigingen aan de applicatie, replatform als een verhuizing met enige optimalisatie en refactor als de meest complexe en kostbare strategie; bij grote migraties adviseert het om pas na de verhuizing te moderniseren. AWS rekent het onderbrengen van virtuele machines in containers tot replatform; de CONTAINERIZE-eenheid hier staat dichter bij refactor, omdat een functie ook het gebeurtenisgestuurde uitvoeringsmodel verliest. De koppeling van die namen aan klassen is van ons en geen uitvoer van StackToIT.
Rehost: een virtuele machine wordt een server
Uit een run van een AWS-omgeving van 13 resources, geschreven voor deze pagina. Links: de instance zoals de bron die declareert. Rechts: het serverblok dat StackToIT opstelde; de reviewopmerkingen erboven in het bestand zijn hier weggelaten.
resource "aws_instance" "legacy_erp" {
ami = "ami-0abcdef1234567890"
instance_type = "m6i.xlarge"
subnet_id = aws_subnet.app.id
vpc_security_group_ids = [aws_security_group.web.id]
}resource "stackit_server" "legacy_erp" {
project_id = var.project_id
name = "legacy-erp"
machine_type = var.legacy_erp_machine_type
availability_zone = var.availability_zone
boot_volume = {
source_type = "image"
source_id = var.legacy_erp_image_id
delete_on_termination = true
size = var.legacy_erp_boot_volume_size_gb
}
network_interfaces = [stackit_network_interface.legacy_erp.network_interface_id]
keypair_name = var.operator_keypair_name
}Klasse: RECONFIGURE
De instance wordt gekoppeld aan een STACKIT-server. De eenheid blijft in vorm gelijk en de architect vult in wat de bron niet kan vermelden.
Afmeting en image zijn variabelen
Het machinetype en het image zijn variabelen. De typevariabele noemt de bronafmeting, m6i.xlarge met circa 4 vCPU en 16 GiB, en verwijst naar de STACKIT-machinetypen; de AMI moet een publiek image of een geïmporteerd raw- of qcow2-image worden.
In de applicatie verandert niets
Dit is de goedkoopste soort eenheid in het plan. Hij wacht nog wel op een beslissing over het bootimage voordat de server kan worden aangemaakt.
Redesign: een key-value-tabel heeft geen tegenhanger
Uit dezelfde run. Links: de DynamoDB-tabel. Rechts: de MongoDB Flex-instance die het concept als alternatief biedt; opmerkingen boven het blok zijn weggelaten.
resource "aws_dynamodb_table" "sessions" {
name = "sessions"
billing_mode = "PAY_PER_REQUEST"
hash_key = "id"
attribute {
name = "id"
type = "S"
}
}resource "stackit_mongodbflex_instance" "dynamodb_tables" {
project_id = var.project_id
name = "dynamodb-tables"
acl = var.dynamodb_tables_allowed_cidrs
version = var.dynamodb_tables_version
flavor = {
cpu = var.dynamodb_tables_cpu
ram = var.dynamodb_tables_ram
}
replicas = 3
storage = {
class = var.mongodbflex_storage_class
size = var.dynamodb_tables_storage_gb
}
backup_schedule = "0 2 * * *"
options = {
type = "Replica"
point_in_time_window_hours = var.dynamodb_tables_pitr_hours
}
}Klasse: REDESIGN
De run meldt dat er op STACKIT geen DynamoDB-compatibele dienst bestaat. Het concept is een alternatief, geen gelijkwaardige vervanger: één documentstore-instance voor de tabellen van de omgeving, waarbij PostgreSQL Flex met JSONB als andere optie wordt genoemd.
Capaciteit laat zich niet vertalen
CPU en geheugen zijn variabelen die u afstemt op de waargenomen belasting, omdat DynamoDB-capaciteitseenheden geen tegenhanger hebben. Sleutelontwerp, voorwaardelijke schrijfacties en capaciteitsmodi worden niet overgenomen.
Het werk zit in de code
De reviewpunten vereisen dat de datatoegangslaag wordt herschreven voor de nieuwe API. Dat is applicatiewerk, dat u met het applicatieteam inplant.
Containerize: een functie wordt een permanent draaiende app
Uit dezelfde run. Links: de Lambda-functie. Rechts: het Cloud Foundry-manifest dat het concept ervoor schreef, zoals het bestand het bevat na de commentaarkop.
resource "aws_lambda_function" "order_worker" {
function_name = "order-worker"
role = aws_iam_role.worker.arn
runtime = "python3.12"
handler = "app.handler"
filename = "worker.zip"
}---
applications:
- name: "order-worker"
memory: 128M # the Lambda default memory_size
instances: 1 # one always-on instance; size from peak concurrency (App AutoScaler for elasticity)
stack: cflinuxfs4
buildpacks:
- python_buildpack_offline
no-route: true
health-check-type: process
Klasse: CONTAINERIZE
Een functie gaat niet als functie over. De handler draait in een proces dat blijft draaien, dus facturering per aanroep en schalen naar nul vervallen.
Wat het manifest niet bevat
Het bestand noemt zelf wat het weglaat: het entrypoint van de handler, de time-out per aanroep, de uitvoeringsrol en het deploymentpakket. Iemand van uw team voegt een HTTP-server of workerlus toe en bepaalt hoe de functie aan inloggegevens komt.
Triggers worden opnieuw opgebouwd
Het concept bevat geen trigger. Wat de functie aanriep, moet de nieuwe app op een andere manier voeden of aanroepen.
De twaalf eenheden van de run, per klasse
| Bronnenheid | STACKIT-doel | Klasse |
|---|---|---|
| aws_s3_bucket.invoices | Object Storage | DIRECT: datakopie en nieuwe toegangssleutels |
| aws_instance.legacy_erp | Compute Engine | RECONFIGURE: machinetype en image |
| aws_iam_role.worker | Service account voor de workload | RECONFIGURE: rechten worden roltoewijzingen |
| aws_vpc.main, drie subnets, security group | Projectnetwerk, netwerken, security group | RECONFIGURE: zeven eenheden in totaal, met de instance en de rol |
| aws_db_instance.orders | PostgreSQL Flex | REPLATFORM: dump en restore of logische replicatie |
| aws_sqs_queue.jobs | RabbitMQ | REPLATFORM: producers en consumers gaan over op AMQP |
| aws_lambda_function.order_worker | Cloud Foundry-app (alternatief) | CONTAINERIZE: een permanent draaiend proces |
| aws_dynamodb_table.sessions | MongoDB Flex (alternatief) | REDESIGN: nieuw datamodel en nieuwe toegangslaag |
13 resources werden 12 eenheden; de databasesubnetgroep is in de database opgenomen. Per klasse: 1 DIRECT, 7 RECONFIGURE, 2 REPLATFORM, 1 CONTAINERIZE, 1 REDESIGN, alle met zekerheidsniveau MEDIUM. 11 eenheden kregen een concept en 1 heeft geen eigen STACKIT-resource nodig.
Zo kiest u, stap voor stap
Eerst beoordelen, dan kiezen
Voer het assessment uit op de hele omgeving en lees de klasse van elke eenheid voordat u een applicatie een strategie toewijst. De klasse is bewijs uit de bronconfiguratie, geen voorkeur.
Kies standaard de goedkoopste klasse die volstaat
Laat DIRECT- en RECONFIGURE-eenheden ongewijzigd overgaan. Het Microsoft Cloud Adoption Framework adviseert te beginnen met eenvoudigere workloads met een lager risico, om vertrouwen op te bouwen en het proces te verfijnen.
Scheid de REDESIGN-eenheden af
Behandel elke REDESIGN-eenheid als een klein softwareproject met een eigen eigenaar en datum. Laat die de infrastructuurgolven niet ophouden; een onafgemaakte datalaag is wat de cutover van die eenheid tegenhoudt.
Replatform waar data wordt verplaatst
REPLATFORM-eenheden brengen dataverplaatsing mee. De run schrijft per database een runbook voor de dataverplaatsing en laat de methode open, omdat de omvang van de data en de toegestane downtime niet in de bron staan.
Beantwoorden, opnieuw draaien, vergelijken
Zet configuratieantwoorden in een invoerbestand en reviews van de architect in een beslissingsbestand, beide gekopieerd uit de templates die de run schrijft, en draai opnieuw. Invoer kan het concept wijzigen; een vastgelegde review alleen niet, dus lees na elke nieuwe run het nieuwe concept en het nieuwe uitvoeringsplan.
Beslissingen die de architect neemt
Welke vervanger voor een ontbrekende dienst
MongoDB Flex of PostgreSQL Flex met JSONB voor de tabel. De run biedt er één aan en noemt de ander; de keuze volgt de toegangspatronen van de applicatie.
Runtime voor de functie
Een Cloud Foundry-app, of een container op SKE of Container Applications. Het concept schrijft alleen de Cloud Foundry-optie; voor een container is het bouwen van het image uw werk.
Methode voor de databaseverplaatsing
Een dump die binnen een schrijfstop wordt teruggezet, of logische replicatie. De run definieert beide en kiest geen van beide.
Wanneer moderniseren
Of een RECONFIGURE- of REPLATFORM-eenheid tijdens de verhuizing wordt gemoderniseerd of erna. Bij grote verhuizingen adviseert AWS Prescriptive Guidance erna.
Vragen van architecten
Kent StackToIT rehost, replatform, refactor of redesign toe aan elke applicatie?
Nee. Het kent een klasse toe aan elke eenheid van de bronconfiguratie: DIRECT, RECONFIGURE, REPLATFORM, CONTAINERIZE, REDESIGN, MANUAL_REVIEW of BLOCKED. Een applicatiestrategie is een beslissing die u neemt op basis van die klassen, en met het bestand voor de applicatiekoppeling groepeert u eenheden tot applicaties.
Is een zuivere rehost mogelijk op STACKIT?
Voor virtuele machines en voor S3-compatibele objectopslag grotendeels wel: de run kent ze de klasse DIRECT of RECONFIGURE toe en de applicatie verandert niet. Ook dan zijn het image, het machinetype, de inloggegevens en de netwerkadressering beslissingen, dus de eenheid wordt geconfigureerd, niet gekopieerd.
Waarom is een functie geen replatform?
De run meldt dat STACKIT geen algemeen beschikbare function-as-a-service heeft, dus de handler moet worden verpakt in een proces dat blijft draaien en de triggers moeten opnieuw worden opgebouwd. Dat is een wijziging van het uitvoeringsmodel, en daarom is de klasse CONTAINERIZE en niet REPLATFORM.
Moeten de REDESIGN-eenheden als eerste of als laatste?
Begin vroeg met het ontwerpwerk en laat de infrastructuurgolven parallel lopen. De datalaag is voor die eenheden de kritieke route, dus het applicatieteam heeft de tijd nodig, ook al valt de cutover van die eenheid samen met de golf waarin zij zit.
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.