ALIBABA CLOUD TERRAFORM → STACKIT · HANDLEIDING
Alibaba Cloud-Terraform naar STACKIT: de werkwijze, stap voor stap
U hebt Terraform-code voor een Alibaba Cloud-omgeving en wilt een STACKIT-plan. Dit voorbeeld voert één commando uit op een demo-omgeving van zes resources, toont het resultaat in de console, somt de bestanden op die de run schrijft en de vraag die elk beantwoordt, en eindigt met wat u wijzigt voordat er iets wordt toegepast. Alle getoonde uitvoer komt uit een echte run van 4 november 2026.
Stap 1: de invoer, een rootmodule die u al hebt
Een kleine omgeving, voor deze pagina geschreven: een VPC met één vSwitch en een security group, een ECS-instance, een PostgreSQL-database en een OSS-bucket. StackToIT leest Terraform- en OpenTofu-rootmodules die de provider aliyun/alicloud gebruiken; het maakt geen verbinding met uw Alibaba Cloud-account.
resource "alicloud_instance" "app" {
instance_name = "${var.app_name}-app-01"
instance_type = "ecs.g7.large"
image_id = "ubuntu_22_04_x64_20G_alibase_20240926.vhd"
vswitch_id = alicloud_vswitch.app.id
security_groups = [alicloud_security_group.app.id]
system_disk_category = "cloud_essd"
system_disk_size = 40
}
resource "alicloud_db_instance" "orders" {
engine = "PostgreSQL"
engine_version = "15.0"
instance_type = "pg.n2.2c.1m"
instance_storage = 100
instance_charge_type = "Postpaid"
vswitch_id = alicloud_vswitch.app.id
instance_name = "${var.app_name}-db"
}
resource "alicloud_oss_bucket" "uploads" {
bucket = "${var.app_name}-uploads"
acl = "private"
}Variabelen worden ingelezen
De namen in het voorbeeld komen uit var.app_name. Variabelenbestanden naast de module worden mee ingelezen; geef andere mee met --var-file.
De provider vastzetten
De run waarschuwt wanneer geen lockbestand de alicloud-provider vastzet en beperkt om die reden elke eenheid tot zekerheidsniveau MEDIUM. Commit eerst .terraform.lock.hcl. De demo zet aliyun/alicloud 2.1.0 vast, een versie die in de Terraform Registry is gepubliceerd. De attribuutnamen komen overeen met de registrydocumentatie van die versie, maar OpenTofu heeft de bestanden niet gevalideerd.
Stap 2: één commando
De gedocumenteerde vorm is stacktoit assess SOURCE OUTPUT. Het paneel toont het commando zoals het is uitgevoerd, vanuit de invoermap van de demo. Daarbij is --offline gebruikt, dus er is geen netwerkverzoek gedaan, en met --no-validate is de OpenTofu-validatie van de bron overgeslagen, omdat de demo geen providermirror had. Fragment van de uitvoer in de console, ongewijzigd overgenomen.
# uitgevoerd in de invoermap van de demo; de uitvoermap staat ernaast
stacktoit assess . ../out --offline --no-validateStackToIT Assess
────────────────────────────────────────────
Source: input
Source files: 1
Resources scanned: 6
Migration units: 6 (6 instances)
Unit dependencies: 5
Source checks: Built-in source checks passed — OpenTofu validation of the source was not run
STACKIT mapping
────────────────────────────────────────────
DIRECT 0
RECONFIGURE 5 █████████████████████████ 83%
REPLATFORM 1 █████ 16%
CONTAINERIZE 0
REDESIGN 0
MANUAL_REVIEW 0
BLOCKED 0 (the mapping class BLOCKED, not the execution blockers, which Migration readiness counts)
Confidence HIGH 0 · MEDIUM 6 · LOW 0Zes resources, zes eenheden
Elke resource in deze omgeving is een eenheid op zich. Vijf zijn RECONFIGURE en één, de database, is REPLATFORM. Het zekerheidsniveau is voor alle zes MEDIUM.
Een STACKIT-Terraform-concept ter beoordeling
StackToIT schrijft een STACKIT-Terraform-concept dat uw architecten beoordelen. De map terraform bevat de providerinstelling, de variabelen en het concept voor de eenheden van deze bron.
Voer de run uit zonder --no-validate wanneer het kan
Zonder die vlag probeert de run ook uw bron met OpenTofu te valideren. Daarvoor moet de provider beschikbaar zijn.
Stap 3: de bestanden en de vraag die elk beantwoordt
De run schrijft een map met bestanden die u kunt beoordelen. Deze opent u als eerste.
- index.html
- Het overzicht: open het offline in een browser voor een weergave per eenheid.
- assessment.json
- Per eenheid: klasse, zekerheidsniveau, doel, reden en de instellingen die de run noemde.
- engineering/architect-report.md
- De redenering per eenheid, de beoordelingswachtrij en wat aan u is overgelaten.
- migration/technical-sequencing.md
- De volgorde van de eenheden op afhankelijkheid, in golven.
- migration/data-movement.md
- Welke eenheden data bevatten en wat er moet worden besloten voordat die wordt verplaatst.
- migration/work-packages.csv
- Het werk, gegroepeerd per eigenaarsrol.
- execution/manual/actions.md
- De handmatige stappen, elk met wie, wanneer, risico en de voorwaarde waarmee de stap als voltooid geldt.
- inputs-template.yaml
- De vragen die de run u stelt; als u een vraag beantwoordt en de run opnieuw uitvoert, wijzigt het concept.
- decisions-template.yaml
- Waar een architect een beoordeling vastlegt.
- terraform/
- Het STACKIT-Terraform-concept: providerinstelling, variabelen en de resourceconcepten die uw architecten beoordelen.
Stap 4: één eenheid van begin tot eind lezen
De database, zoals de run die beoordeelde. Fragment van assessment.json met de waarden precies zoals de run ze schreef. assessment.json staat op één regel, dus het paneel toont geselecteerde velden per eenheid, ingesprongen en genest zoals in het bestand, met ongewijzigde waarden.
{
"id": "alicloud_db_instance.orders",
"result": {
"class": "REPLATFORM",
"confidence": "MEDIUM",
"target": {
"service": "STACKIT PostgreSQL Flex",
"resources": [
"stackit_postgresflex_instance",
"stackit_postgresflex_database",
"stackit_postgresflex_user"
]
},
"reason": "Managed PostgreSQL to managed PostgreSQL: data moves with pg_dump/pg_restore or logical replication, and the instance class becomes a Flex flavor."
}
}Dezelfde engine, nieuwe dienst
PostgreSQL naar PostgreSQL Flex is REPLATFORM: de run noemt pg_dump met pg_restore of logische replicatie als manieren waarop de data verhuist en maakt van de instanceklasse een Flex-flavor.
Zeven instellingen genoemd
engine, engine_version, instance_charge_type, instance_name, instance_storage en nog twee zijn voor uw databaseteam opgesomd.
Natrekken
stacktoit explain ./migration alicloud_db_instance.orders toont de bewijsketen achter de classificatie.
Stap 5: de volgorde waarin de eenheden worden verplaatst
Fragment van migration/technical-sequencing.md, ongewijzigd overgenomen. Een eenheid wordt verplaatst na elke eenheid waarvan die afhangt; eenheden in dezelfde golf kunnen parallel worden verplaatst.
## Wave 1 — 2 unit(s)
| Unit | Class | Target |
|---|---|---|
| `alicloud_oss_bucket.uploads` | RECONFIGURE / MEDIUM | STACKIT Object Storage |
| `alicloud_vpc.main` | RECONFIGURE / MEDIUM | STACKIT network |
## Wave 2 — 2 unit(s)
| Unit | Class | Target |
|---|---|---|
| `alicloud_security_group.app` | RECONFIGURE / MEDIUM | STACKIT security groups |
| `alicloud_vswitch.app` | RECONFIGURE / MEDIUM | STACKIT network |
## Wave 3 — 2 unit(s)
| Unit | Class | Target |
|---|---|---|
| `alicloud_db_instance.orders` | REPLATFORM / MEDIUM | STACKIT PostgreSQL Flex |
| `alicloud_instance.app` | RECONFIGURE / MEDIUM | STACKIT Compute Engine |Een startpunt, geen planning
De golven zijn alleen afgeleid van afhankelijkheden. Uw agenda, wijzigingsvensters en datakopieën bepalen de echte planning.
Stap 6: wie het werk krijgt
Uit migration/work-packages.csv. De run groepeert het handmatige werk per gebied en benoemt voor elk een eigenaarsrol.
| Werkpakket | Eenheden | Eigenaarsrol |
|---|---|---|
| WP-01 Foundation | alicloud_vpc.main, alicloud_vswitch.app | Network Architect |
| WP-02 Security | alicloud_security_group.app | Network Architect |
| WP-03 Data services | alicloud_db_instance.orders | Data Architect |
| WP-04 Data services | alicloud_oss_bucket.uploads | Storage Architect |
| WP-05 Workloads | alicloud_instance.app | Platform Architect |
Alle vijf pakketten zijn vrij van beslissingen en kunnen nu elk door iemand worden opgepakt. In deze build wordt geen enkele stap door OpenTofu of een script uitgevoerd.
Stap 7: wat u wijzigt voordat u iets toepast
De run is een voorstel. Dit is wat de run van u vraagt, in de volgorde die werkt.
De bronprovider vastzetten
Commit .terraform.lock.hcl voor de alicloud-provider en voer de run opnieuw uit. De run noemt de ontbrekende lockregel als oorzaak van de waarschuwing en van de beperking tot MEDIUM. Voor deze pagina is geen run met een lockbestand gemaakt, dus controleer de nieuwe zekerheidsniveaus in plaats van ze aan te nemen.
De blokkerende vraag beantwoorden
inputs-template.yaml bevat één vraag die het concept blokkeert: target.region, met eu01 en eu02 als opties. Kopieer het bestand, vul de waarde in en geef het mee met --inputs. De conceptvariabelen tonen region met als standaard eu01; het antwoord is uw keuze.
Het project instellen
Het STACKIT-project is een variabele van het concept (project_id), die volgens de template in terraform.tfvars of via TF_VAR_project_id wordt ingesteld.
De eenheden beoordelen
Lees engineering/architect-report.md vanaf de beoordelingswachtrij naar beneden en leg uw beoordelingen vast in het beslissingenbestand. Een beoordeling legt een beslissing vast; die wijzigt het concept niet.
De datamechanismen kiezen
data-movement.md toont de database en de bucket met het mechanisme UNKNOWN. Bepaal per eenheid aan de hand van omvang, wijzigingssnelheid en toegestane downtime welk mechanisme past.
Opnieuw uitvoeren en controleren
Voer assess na de antwoorden en beoordelingen opnieuw uit naar een nieuwe uitvoermap, controleer die met stacktoit verify ../out-new en vergelijk met de eerste run via --same-as ../out. Bewaar beide mappen als registratie van wat er is gewijzigd.
Vragen over de werkwijze
Heeft de run toegang nodig tot mijn Alibaba Cloud-account?
Nee. Het leest alleen Terraform- en OpenTofu-bestanden en maakt geen verbinding met een account. Met --offline doet het ook geen netwerkverzoeken.
Schrijft het STACKIT-Terraform-code voor mijn Alibaba Cloud-omgeving?
Ja. StackToIT schrijft een STACKIT-Terraform-concept dat uw architecten beoordelen, met de providerinstelling en de variabelen. De doelen en de redenen staan in assessment.json en het architectenrapport.
Wat is een eenheid?
Wat de run classificeert: meestal één resource, of de instances van één resource met een count. De demo-omgeving heeft zes resources en zes eenheden.
Welke resourcetypen kent het?
De kerndiensten van de adapter, zoals ECS, disks, VPC, vSwitch, security groups, ApsaraDB RDS, OSS, NAS en ACK. Een resourcetype dat het niet kent, wordt een MANUAL_REVIEW-eenheid zonder doel; het NAS-mounttarget en de disk-koppeling zijn voorbeelden.
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.