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.

KengetalWaardeWaar de run het schrijft
Bron13 resources in één bestand, 13 eenheden; status van de bron: een variabele heeft geen waardeassessment.json, samenvatting in de console
Klassen11 RECONFIGURE, 1 REPLATFORM, 1 MANUAL_REVIEWassessment.json, migration/waves.csv
Zekerheidsniveau12 MEDIUM, 1 LOW (de RAM-rol)assessment.json
STACKIT-Terraform-conceptGeschreven voor beoordeling door uw architectenterraform/, engineering/architect-report.md
GolvenGolf 1: 5 eenheden, golf 2: 4, golf 3: 4migration/technical-sequencing.md
Stateful eenheden3: PostgreSQL, Redis, de OSS-bucketmigration/data-movement.md
Openstaande vragen6, waarvan 2 het concept blokkeren: de doelregio en de variabele db_passwordinputs-template.yaml
Werkpakketten8 pakketten met 13 handmatige stappen, 2 stappen zonder eigenaarsrolexecution/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.

Voorbeeldinvoermain.tf
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
}
StackToIT-assessmentassessment.json
[
  {
    "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.

Voorbeeldinvoermain.tf
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
}
Uitvoer van StackToITmigration/technical-sequencing.md
## 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.

Uitvoer van StackToITmigration/data-movement.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 |
Uitvoer van StackToITmigration/landing-zone-requirements.md
| 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

Wij gebruiken uw gegevens alleen om dit verzoek te beantwoorden en een mogelijke pilot te bespreken. Privacyverklaring