ALIBABA CLOUD → STACKIT · PRAKTIJKCASE
Alibaba Cloud Terraform: een compleet assessment, stap voor stap
Eén realistische Alibaba Cloud-omgeving, uit Terraform gelezen zonder het account aan te raken: 13 resources, 13 eenheden, waarvan 11 RECONFIGURE, 1 REPLATFORM en 1 MANUAL_REVIEW, in drie afhankelijkheidsgolven, met drie stateful eenheden en zes openstaande vragen. StackToIT schrijft een STACKIT-Terraform-concept dat uw architecten beoordelen, naast de koppeling, de volgorde en de lijst met beslissingen.
De run in cijfers
Een webportaal op twee ECS-instances achter een load balancer, met PostgreSQL, Redis-sessies, een OSS-bucket, een KMS-sleutel en -secret en een RAM-rol. Voor deze pagina geschreven en door StackToIT beoordeeld op 4 november 2026.
| Kengetal | Waarde | Waar de run het schrijft |
|---|---|---|
| Bron | 13 resources in één bestand, 13 eenheden; status van de bron: een variabele heeft geen waarde | assessment.json, samenvatting in de console |
| Klassen | 11 RECONFIGURE, 1 REPLATFORM, 1 MANUAL_REVIEW | assessment.json, migration/waves.csv |
| Zekerheidsniveau | 12 MEDIUM, 1 LOW (de RAM-rol) | assessment.json |
| STACKIT-Terraform-concept | Geschreven voor beoordeling door uw architecten | terraform/, engineering/architect-report.md |
| Golven | Golf 1: 5 eenheden, golf 2: 4, golf 3: 4 | migration/technical-sequencing.md |
| Stateful eenheden | 3: PostgreSQL, Redis, de OSS-bucket | migration/data-movement.md |
| Openstaande vragen | 6, waarvan 2 het concept blokkeren: de doelregio en de variabele db_password | inputs-template.yaml |
| Werkpakketten | 8 pakketten met 13 handmatige stappen, 2 stappen zonder eigenaarsrol | execution/README.md, execution/manual/actions.md |
De 12 globale controles van de run slagen. Lees ze als controles van de run zelf, niet als een garantie voor uw migratie.
De datatier, beoordeeld
Links: de PostgreSQL- en Redis-resources van de invoer. Rechts: het resultaat dat StackToIT ervoor vastlegde, een 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.
resource "alicloud_db_instance" "main" {
engine = "PostgreSQL"
engine_version = "15.0"
instance_type = "pg.n2.medium.1"
instance_storage = 100
instance_name = "portal-db"
vswitch_id = alicloud_vswitch.app_a.id
}
resource "alicloud_kvstore_instance" "sessions" {
db_instance_name = "portal-sessions"
instance_class = "redis.master.small.default"
instance_type = "Redis"
engine_version = "7.0"
vswitch_id = alicloud_vswitch.app_a.id
}[
{
"id": "alicloud_db_instance.main",
"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 instance class becomes a Flex flavor."
}
},
{
"id": "alicloud_kvstore_instance.sessions",
"result": {
"class": "RECONFIGURE",
"confidence": "MEDIUM",
"target": {
"service": "STACKIT Key Value Store (Valkey)"
},
"reason": "An ApsaraDB for Redis instance becomes a Valkey instance. The application changes its endpoint and credentials; confirm that no Tair-specific commands are in use."
}
}
]PostgreSQL naar PostgreSQL Flex
De klasse is REPLATFORM met een genoemd doel. De run vermeldt dat de data wordt verplaatst met pg_dump en pg_restore of met logische replicatie en dat de instanceklasse een Flex-flavor wordt.
Redis naar Valkey
RECONFIGURE: de applicatie wijzigt endpoint en inloggegevens en de run vraagt u te bevestigen dat er geen Tair-specifieke commando's in gebruik zijn.
De versie vergelijkt u zelf
De bron draait PostgreSQL 15.0. De extensiereferentie van STACKIT omvat PostgreSQL 14 tot en met 18, dus de hoofdversie wordt aangeboden; vergelijk uw extensies met die lijst.
Replicaset of enkele node
PostgreSQL Flex van STACKIT is een enkele node of een replicaset met drie nodes. De Terraform zegt niet welke u nodig hebt.
Een afhankelijkheid bepaalt de volgorde
Het secret noemt de sleutel, dus de run plaatst de sleutel in golf 1 en het secret in golf 2. Links: de twee resources. Rechts: de drie golven, letterlijk uit migration/technical-sequencing.md.
resource "alicloud_kms_key" "data" {
description = "portal-data"
key_spec = "Aliyun_AES_256"
}
resource "alicloud_kms_secret" "db_password" {
secret_name = "portal-db-password"
secret_data = var.db_password
version_id = "v1"
encryption_key_id = alicloud_kms_key.data.id
}## Wave 1 — 5 unit(s)
| Unit | Class | Target |
|---|---|---|
| `alicloud_kms_key.data` | RECONFIGURE / MEDIUM | STACKIT KMS |
| `alicloud_oss_bucket.uploads` | RECONFIGURE / MEDIUM | STACKIT Object Storage |
| `alicloud_ram_role.app` | MANUAL_REVIEW / LOW | — |
| `alicloud_slb_load_balancer.web` | RECONFIGURE / MEDIUM | STACKIT Network Load Balancer |
| `alicloud_vpc.main` | RECONFIGURE / MEDIUM | STACKIT network |
## Wave 2 — 4 unit(s)
| Unit | Class | Target |
|---|---|---|
| `alicloud_kms_secret.db_password` | RECONFIGURE / MEDIUM | STACKIT Secrets Manager |
| `alicloud_security_group.app` | RECONFIGURE / MEDIUM | STACKIT security groups |
| `alicloud_vswitch.app_a` | RECONFIGURE / MEDIUM | STACKIT network |
| `alicloud_vswitch.app_b` | RECONFIGURE / MEDIUM | STACKIT network |
## Wave 3 — 4 unit(s)
| Unit | Class | Target |
|---|---|---|
| `alicloud_db_instance.main` | REPLATFORM / MEDIUM | STACKIT PostgreSQL Flex |
| `alicloud_instance.app_a` | RECONFIGURE / MEDIUM | STACKIT Compute Engine |
| `alicloud_instance.app_b` | RECONFIGURE / MEDIUM | STACKIT Compute Engine |
| `alicloud_kvstore_instance.sessions` | RECONFIGURE / MEDIUM | STACKIT Key Value Store (Valkey) |Technische volgorde, geen planning
De run geeft zelf aan dat de golven een vertrekpunt zijn voor het plan van de architect. Eenheden in dezelfde golf kunnen parallel worden verplaatst.
Netwerken liggen verspreid over golven
De VPC staat in golf 1 en de vSwitches in golf 2. De servers, de database en de cache volgen in golf 3.
De RAM-rol staat in golf 1
De rol is van niets in de Terraform afhankelijk, maar elke workload die de rol aanneemt, hangt af van het ontwerp dat u ervoor maakt.
De cutovergegevens zijn leeg
In deze omgeving bestaat geen DNS-record, certificaat of adresherbinding, en de run vermeldt dat dit niet betekent dat er niets hoeft te worden omgeschakeld.
Stateful eenheden en de te activeren diensten
Twee fragmenten uit dezelfde run: de stateful eenheden uit migration/data-movement.md en de STACKIT-diensten die de gekoppelde eenheden nodig hebben, uit migration/landing-zone-requirements.md.
| Unit | Source service | Target service | Application | Mechanism | State | Data class | RPO | Downtime tolerance |
|---|---|---|---|---|---|---|---|---|
| alicloud_db_instance.main | alicloud_db_instance | STACKIT PostgreSQL Flex | | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED |
| alicloud_kvstore_instance.sessions | alicloud_kvstore_instance | STACKIT Key Value Store (Valkey) | | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED |
| alicloud_oss_bucket.uploads | alicloud_oss_bucket | STACKIT Object Storage | | UNKNOWN | DECISION_REQUIRED | NOT_PROVIDED | NOT_PROVIDED | NOT_PROVIDED || Service | Resource types | Source units mapped |
|---|---|---|
| IaaS | `stackit_network`, `stackit_network_interface`, `stackit_security_group`, `stackit_security_group_rule`, `stackit_server`, `stackit_volume` | 6 |
| Key Management (KMS) | `stackit_kms_key`, `stackit_kms_keyring` | 1 |
| Load Balancing | `stackit_loadbalancer` | 1 |
| Object Storage | `stackit_objectstorage_bucket`, `stackit_objectstorage_credential`, `stackit_objectstorage_credentials_group` | 1 |
| PostgreSQL Flex | `stackit_postgresflex_database`, `stackit_postgresflex_instance`, `stackit_postgresflex_user` | 1 |
| Secrets Manager | `stackit_secretsmanager_instance`, `stackit_secretsmanager_user` | 1 |
| Valkey | `stackit_valkey_credential`, `stackit_valkey_instance` | 1 |Er is geen mechanisme gekozen
Alle drie de eenheden tonen het mechanisme UNKNOWN en de status DECISION_REQUIRED. De run verplaatst nooit data en kiest het hulpmiddel niet.
Zeven dienstfamilies
IaaS omvat zes eenheden, de andere zes families elk één. Voor de doelomgeving is dit de lijst met diensten die uw project gebruikt; activeer ze voordat u het concept toepast.
Dataklasse, RPO en downtime
Ze zijn NOT_PROVIDED tot u ze opgeeft in het applicatiebestand, dat de run dan woordelijk citeert. Ze zijn de invoer voor de keuze tussen dump en restore en replicatie.
OSS naar Object Storage
De run vermeldt een S3-API aan de doelkant. Applicaties die de OSS-SDK gebruiken, passen hun client aan.
Wie wat doet
De run schrijft ook werkpakketten naar execution/README.md, naast het STACKIT-Terraform-concept. Ze geven elke stap een eigenaar en een fase.
Owner assignment required
WP-04 bevat de KMS-sleutel en het secret. De eigenaartabel heeft geen rol voor de beveiligingscategorie van deze eenheden, dus de run vraagt u er een te benoemen.
Een persoon kan nu beginnen
Het plan markeert alle acht pakketten als startbaar; geen enkel pakket wacht op een beslissing. WP-04 heeft eerst nog een eigenaar nodig en niets hiervan is een goedkeuring.
Het beveiligingswerk is in drieën gesplitst
De RAM-rol gaat naar de Identity Architect, de security group naar de Network Architect, en de sleutel en het secret wachten op u.
De beslissingen die deze omgeving afdwingt
Doelregio
Kies eu01 of eu02 in inputs-template.yaml. Het blokkeert het concept en vragen die van de regio afhangen, worden afgeleid uit de eu01-catalogus tot u antwoordt.
De variabele db_password
De template neemt er geen waarde voor aan omdat de variabele gevoelig is: lever die aan via een tfvars-bestand of TF_VAR_db_password in een privérun. Tot die tijd meldt de run dat de migratie van het secret niet kon worden beoordeeld.
RAM-rol naar service account
De rol vertrouwt de ECS-dienst. Op STACKIT krijgt de workload een service account en rollen in het project.
Publieke blootstelling
De load balancer is vanaf internet bereikbaar en de run vermeldt dat het publieke adres verandert. De run noemt ingress en egress als doelinstellingen die u in de doelomgeving configureert.
Zones
De twee vSwitches staan in de bron in twee zones. Beoordeel de plaatsing in zones van de twee servers op STACKIT.
Datamechanisme en venster
Kies per stateful eenheid: dump en restore, replicatie, kopiëren per object. Leg RPO en downtime vast in het applicatiebestand.
Vragen over dit assessment
Schrijft StackToIT een STACKIT-Terraform-concept voor deze omgeving?
Ja. StackToIT schrijft een STACKIT-Terraform-concept dat uw architecten beoordelen. Elk van de 13 eenheden heeft een doel, een klasse en een reden.
Wat is het nuttigste bestand in de uitvoer?
architect-report.md voor de redenen, technical-sequencing.md voor de volgorde, data-movement.md voor de stateful eenheden en execution/manual/actions.md voor wie wat doet.
Kan ik het assessment met antwoorden opnieuw uitvoeren?
Ja. Vul inputs-template.yaml in (bijvoorbeeld de regio) en geef het bij de volgende run mee met --inputs. Standaard blijft de eerdere run bewaard in een map previous-<run id> van de uitvoermap; --replace overschrijft die in plaats daarvan.
Leest de run mijn Alibaba Cloud-account?
Nee. De run leest alleen Terraform- of OpenTofu-bestanden en maakt nergens verbinding mee.
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.