HUAWEI CLOUD → STACKIT · COMPLETE GIDS
De complete migratiegids van Huawei Cloud naar STACKIT
Begin met de Terraform die u al heeft: voer stacktoit assess uit, lees assessment.json en de volgorde van de golven, neem de beslissingen die de run aan u overlaat, bouw eerst het STACKIT-netwerk en verplaats daarna data, compute en ten slotte de edge. In de voorbeeldrun op deze pagina worden negen Huawei Cloud-resources negen eenheden in drie golven: acht van klasse RECONFIGURE en één van klasse REPLATFORM. StackToIT schrijft een STACKIT-Terraform-concept dat uw architecten beoordelen. Deze gids volgt de volgorde van die run en benoemt bij elke stap de beslissing erachter.
De migratie in acht stappen
1. De Terraform verzamelen en vastzetten
Verzamel elke rootmodule die de provider huaweicloud/huaweicloud gebruikt en commit .terraform.lock.hcl. Zonder lockregel meldt de run de provider als niet vastgezet en begrenst het zekerheidsniveau van de eenheden tot MEDIUM, zoals bij alle negen eenheden van het voorbeeld.
2. Beoordelen
Voer stacktoit assess ./huawei-terraform uit. De run leest de bestanden en maakt geen verbinding met een Huawei Cloud-account. Een resource die handmatig is aangemaakt en in geen enkele module staat, ontbreekt dus in het resultaat: voeg die eerst toe aan de Terraform of neem die zelf op. Een gevoelige variabele zonder waarde, zoals db_password in het voorbeeld, stopt de run niet: de console meldt dit als ontbrekende invoer en markeert de bron als VARIABLE_UNRESOLVED, en de antwoordtemplate telt de variabele mee onder de verzoeken die het concept blokkeren. Lever de waarde aan via --var-file of via een omgevingsvariabele TF_VAR_.
3. De uitvoer in deze volgorde lezen
assessment.json voor klasse, doel en reden van elke eenheid. migration/technical-sequencing.md voor de golven. migration/data-movement.md voor de stateful eenheden. execution/manual/actions.md voor de handmatige stappen en hun eigenaren. engineering/architect-report.md voor de redenering. index.html toont hetzelfde in één werkomgeving.
4. Beantwoorden wat de run vraagt
De voorbeeldrun noemt zes openstaande verzoeken. Twee blokkeren het concept: de STACKIT-regio (eu01 of eu02) en de waarde van db_password. Vier zijn voorkeuren die de build vastlegt maar niet kan toepassen: project, observability, publieke ingress en egress. Kopieer inputs-template.yaml uit de runmap, vul de waarderegels in en voer de run opnieuw uit met --inputs; de template neemt db_password niet op, dat komt uit een variabelenbestand of TF_VAR_db_password.
5. De landing zone en het netwerk bouwen
Zet eerst de organisatie, de mappen en de projecten op; het STACKIT Migration Framework noemt de landing zone de veilige platformbasis voor gemigreerde workloads. Een VPC heeft geen één-op-één-tegenhanger: de subnets worden STACKIT-netwerken en een Network Area verbindt projecten waar routering nodig is. Daarna volgen de security groups. STACKIT-regels staan alleen verkeer toe, dus voor elke deny-regel van de bron is een beslissing nodig.
6. De data verplaatsen
Het voorbeeld heeft drie stateful eenheden: een EVS-volume, een OBS-bucket en een RDS PostgreSQL-instance. De run zet het mechanisme van elke eenheid op UNKNOWN; die keuze maakt u zelf. Voor PostgreSQL noemt de run pg_dump en pg_restore of logische replicatie; voor een bucket is rclone een gedocumenteerde route; een volume gaat over op hostniveau of met het serverimage.
7. Compute en de edge verplaatsen
Importeer of bouw het image van elke server opnieuw op. STACKIT accepteert raw-, qcow2- en iso-images tot 70 GB en met qemu-img zet u andere formaten om naar raw. Richt daarna de Network Load Balancer en het publieke IP-adres in en pas DNS-records en allowlists aan die het oude adres noemen.
8. Overschakelen, observeren, uitfaseren
De run noemt voor deze omgeving geen cutoverfeiten en voert geen cutover uit. Schakel over in de volgorde van de golven waar dat past, laat de Huawei Cloud-kant bestaan tot uw controles slagen en leg vast hoe elke stap wordt teruggedraaid: het plan laat de rollback over aan degene die de stap uitvoert.
Een webserver, een database en een load balancer, beoordeeld
Een kleine Huawei Cloud-omgeving met negen resources, voor deze pagina geschreven en op 4 november 2026 door StackToIT beoordeeld. Links drie blokken van de invoer, rechts het resultaat dat de run ervoor heeft vastgelegd: een fragment van assessment.json met de waarden zoals de run ze schreef.
resource "huaweicloud_compute_instance" "web" {
name = "shop-web-01"
image_id = "6f3b0e2a-1c4d-4e5f-8a9b-0c1d2e3f4a5b"
flavor_id = "s6.xlarge.2"
availability_zone = "eu-west-101a"
security_group_ids = [huaweicloud_networking_secgroup.app.id]
system_disk_type = "SSD"
system_disk_size = 40
network {
uuid = huaweicloud_vpc_subnet.app.id
}
}
resource "huaweicloud_rds_instance" "orders" {
name = "shop-orders"
flavor = "rds.pg.n1.large.2"
vpc_id = huaweicloud_vpc.main.id
subnet_id = huaweicloud_vpc_subnet.app.id
security_group_id = huaweicloud_networking_secgroup.app.id
availability_zone = ["eu-west-101a"]
db {
type = "PostgreSQL"
version = "16"
password = var.db_password
}
volume {
type = "ULTRAHIGH"
size = 100
}
backup_strategy {
start_time = "02:00-03:00"
keep_days = 7
}
}
resource "huaweicloud_lb_loadbalancer" "front" {
name = "shop-front"
vip_subnet_id = huaweicloud_vpc_subnet.app.ipv4_subnet_id
}[
{
"id": "huaweicloud_compute_instance.web",
"result": {
"class": "RECONFIGURE",
"confidence": "MEDIUM",
"target": {
"service": "STACKIT Compute Engine"
},
"reason": "An ECS instance becomes a STACKIT server. The flavor becomes a STACKIT flavor, the image is rebuilt or imported, and the attached disks and interfaces become volumes and network interfaces."
}
},
{
"id": "huaweicloud_rds_instance.orders",
"result": {
"class": "REPLATFORM",
"confidence": "MEDIUM",
"target": {
"service": "STACKIT PostgreSQL Flex"
},
"reason": "Managed PostgreSQL to managed PostgreSQL: data moves with pg_dump/pg_restore or logical replication, and the flavor becomes a Flex flavor."
}
},
{
"id": "huaweicloud_lb_loadbalancer.front",
"result": {
"class": "RECONFIGURE",
"confidence": "MEDIUM",
"target": {
"service": "STACKIT Network Load Balancer"
},
"reason": "A shared load balancer becomes a STACKIT Network Load Balancer. Listeners and backends are rewritten, and the public address changes."
}
}
]Acht van de negen worden herconfigureerd
Netwerk, security group, disk, bucket, publiek IP, server en load balancer behouden op STACKIT hun rol, met andere instellingen. Alleen de database heeft klasse REPLATFORM, omdat die een andere managed service wordt.
De database behoudt zijn engine
Managed PostgreSQL gaat naar PostgreSQL Flex. De flavor wordt een Flex-flavor en de data gaat over met pg_dump en pg_restore of logische replicatie, zoals de run aangeeft.
Elke eenheid heeft een eigenaar
De run ordent de negen handmatige stappen in zeven werkpakketten voor de rollen Network, Data, Storage en Platform Architect. Elk werkpakket is klaar zodra de STACKIT-tegenhanger is opgezet en gecontroleerd.
Zo worden de negen resources gekoppeld
| Huawei Cloud-resource | STACKIT-doel | Klasse en golf |
|---|---|---|
| VPC | STACKIT-netwerk; een Network Area verbindt projecten waar routering nodig is | RECONFIGURE · golf 1 |
| Security group | STACKIT security group | RECONFIGURE · golf 1 |
| EVS-volume | STACKIT Block Storage | RECONFIGURE · golf 1 |
| OBS-bucket | STACKIT Object Storage (S3-API) | RECONFIGURE · golf 1 |
| EIP | STACKIT public IP; het adres verandert | RECONFIGURE · golf 1 |
| VPC-subnet | STACKIT-netwerk met een eigen adresbereik | RECONFIGURE · golf 2 |
| ECS-instance | STACKIT Compute Engine-server | RECONFIGURE · golf 3 |
| Shared load balancer | STACKIT Network Load Balancer | RECONFIGURE · golf 3 |
| RDS PostgreSQL | STACKIT PostgreSQL Flex | REPLATFORM · golf 3 |
Klassen en golven zoals de run ze heeft bepaald. Een golf is een afhankelijkheidsvolgorde: een eenheid gaat over nadat alle eenheden waarvan die afhangt zijn overgegaan. Het is geen planning en geen volgorde voor de data.
De golfvolgorde en de vastgezette provider die de run schrijft
Links de afhankelijkheidsvolgorde uit migration/technical-sequencing.md, de regels zoals de run ze schreef. Rechts terraform/terraform.tf, de enige Terraform die de run voor deze bron schrijft naast variables.tf en een README.
## Wave 1 — 5 unit(s)
| Unit | Class | Target |
|---|---|---|
| `huaweicloud_evs_volume.uploads` | RECONFIGURE / MEDIUM | STACKIT Block Storage |
| `huaweicloud_networking_secgroup.app` | RECONFIGURE / MEDIUM | STACKIT security groups |
| `huaweicloud_obs_bucket.media` | RECONFIGURE / MEDIUM | STACKIT Object Storage |
| `huaweicloud_vpc.main` | RECONFIGURE / MEDIUM | STACKIT network |
| `huaweicloud_vpc_eip.front` | RECONFIGURE / MEDIUM | STACKIT public IP |
## Wave 2 — 1 unit(s)
| Unit | Class | Target |
|---|---|---|
| `huaweicloud_vpc_subnet.app` | RECONFIGURE / MEDIUM | STACKIT network |
## Wave 3 — 3 unit(s)
| Unit | Class | Target |
|---|---|---|
| `huaweicloud_compute_instance.web` | RECONFIGURE / MEDIUM | STACKIT Compute Engine |
| `huaweicloud_lb_loadbalancer.front` | RECONFIGURE / MEDIUM | STACKIT Network Load Balancer |
| `huaweicloud_rds_instance.orders` | REPLATFORM / MEDIUM | STACKIT PostgreSQL Flex |
## Cutover (decision support — performed by the customer)
No cutover facts: the scan and the draft established no DNS record set whose value the draft re-binds to a generated address, no public address re-binding, no DNS record unit, no certificate unit and no open cutover decision. That is not a statement that nothing has to be cut over: a name, an address or a certificate outside the scanned source is not seen, and a unit that exists only if OpenTofu decides so at plan time is not read here. StackToIT performs no cutover and gives no time estimate.terraform {
# Write-only attributes (e.g. a VPN pre-shared key) need Terraform/OpenTofu 1.11 or later.
required_version = ">= 1.11.0"
required_providers {
stackit = {
source = "stackitcloud/stackit"
version = "0.121.0"
}
}
}
Eerst het netwerk
De VPC en de security group gaan voorop, het subnet volgt en pas daarna verschijnen server, load balancer en database in golf 3.
Data is geen golf
De disk, de bucket en de database bevatten state, maar de golftabel ordent resources, geen kopieën van data. Oefen elke dataverplaatsing op een eigen tijdlijn.
Beslissingen die bij uw architecten blijven
Regio
De run vraagt om eu01 of eu02 voordat die een concept schrijft. Voor PostgreSQL Flex legt de run beide regio's vast als aangeboden; voor de Network Load Balancer legt de run vast dat de beschikbaarheid per regio niet is vastgesteld, dus controleer die voor uw regio.
Type load balancer
Een shared load balancer wordt gekoppeld aan de Network Load Balancer, die alleen op laag 4 werkt en versleuteling aan u overlaat. Beëindigen uw listeners TLS of routeren ze op pad, plan dan in plaats daarvan een Application Load Balancer.
Deny-regels
STACKIT security groups staan alleen verkeer toe. Een deny-regel of regelprioriteit van de bron kan niet ongewijzigd worden overgenomen.
Datamechanisme, RPO en downtime
Dataklasse, herstelpunt en toegestane downtime staan in de run op NOT_PROVIDED totdat u ze opgeeft. Het mechanisme is daarna uw keuze per eenheid.
Publiek adres
De EIP wordt een STACKIT public IP en het adres zelf verandert, dus DNS-records en allowlists van partners moeten mee veranderen.
Indeling van de landing zone
Het aantal projecten, de mappen en wie netwerken mag aanmaken zijn ontwerpbeslissingen die de run niet uit Terraform kan afleiden.
Vragen die teams stellen voordat ze beginnen
Schrijft StackToIT STACKIT-Terraform voor een Huawei Cloud-omgeving?
Ja. StackToIT schrijft terraform.tf met de vastgezette STACKIT-provider, variables.tf, een README en een STACKIT-Terraform-concept dat uw architecten beoordelen. De koppeling, de redenen en de volgorde krijgt u erbij.
Heeft StackToIT toegang nodig tot ons Huawei Cloud-account?
Nee. Het leest Terraform- en OpenTofu-rootmodules die de provider huaweicloud/huaweicloud gebruiken en maakt met geen enkel account verbinding. Wat alleen in de console bestaat, valt buiten het resultaat.
Zijn de golven de volgorde waarin wij overschakelen?
Het is de afhankelijkheidsvolgorde van de resources. Cutover, datakopieën en rollback zijn aparte beslissingen die het plan overlaat aan degene die de stap uitvoert.
Hoe lang duurt zo'n migratie?
De run noemt geen duur. Datavolume, wijzigingsfrequentie en toegestane downtime staan niet in de Terraform, dus het dataverplaatsingsbestand vermeldt ze als niet bekend totdat u ze opgeeft.
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.