ALIBABA CLOUD → STACKIT · FALLSTUDIE
Alibaba-Cloud-Terraform: eine vollständige Bewertung im Durchlauf
Eine realistische Alibaba-Cloud-Umgebung, aus Terraform gelesen, ohne das Konto zu berühren: 13 Ressourcen, 13 Einheiten, davon 11 als RECONFIGURE, 1 als REPLATFORM und 1 als MANUAL_REVIEW eingestuft, in drei Abhängigkeitswellen, mit drei zustandsbehafteten Einheiten und sechs offenen Anforderungen. Für eine Alibaba-Cloud-Quelle entwirft StackToIT keine STACKIT-Ressource; der Wert des Laufs liegt in der Karte, der Reihenfolge und der Liste der Entscheidungen.
Der Lauf in Zahlen
Ein Web-Portal auf zwei ECS-Instanzen hinter einem Load Balancer, mit PostgreSQL, Redis-Sessions, einem OSS-Bucket, einem KMS-Schlüssel samt Secret und einer RAM-Rolle. Für diese Seite geschrieben und am 4. November 2026 von StackToIT bewertet.
| Messgröße | Wert | Wo der Lauf es schreibt |
|---|---|---|
| Quelle | 13 Ressourcen in einer Datei, 13 Einheiten; Quellstatus: Eine Variable hat keinen Wert | assessment.json, Konsolenzusammenfassung |
| Klassen | 11 RECONFIGURE, 1 REPLATFORM, 1 MANUAL_REVIEW | assessment.json, migration/waves.csv |
| Konfidenz | 12 MEDIUM, 1 LOW (die RAM-Rolle) | assessment.json |
| Entworfene STACKIT-Ressourcen | 0 entworfen, 13 beim Architekten belassen | terraform/, engineering/architect-report.md |
| Wellen | Welle 1: 5 Einheiten, Welle 2: 4, Welle 3: 4 | migration/technical-sequencing.md |
| Zustandsbehaftete Einheiten | 3: PostgreSQL, Redis, der OSS-Bucket | migration/data-movement.md |
| Offene Anforderungen | 6, davon 2, die den Entwurf blockieren: die Zielregion und die Variable db_password | inputs-template.yaml |
| Arbeitspakete | 8 Pakete mit 13 manuellen Schritten, 2 Schritte ohne verantwortliche Rolle | execution/README.md, execution/manual/actions.md |
Die 12 globalen Prüfungen des Laufs bestehen, haben aber bei null entworfenen Ressourcen nichts zu prüfen. Lesen Sie sie als Mechanik, nicht als Zusicherung.
Die Datenschicht, bewertet
Links: die PostgreSQL- und Redis-Ressourcen der Eingabe. Rechts: das Ergebnis, das StackToIT dazu festgehalten hat, ein Auszug aus assessment.json mit den Werten genau so, wie der Lauf sie geschrieben hat. Da assessment.json in einer einzigen Zeile geschrieben ist, zeigt der Ausschnitt ausgewählte Felder jeder Einheit, eingerückt und so verschachtelt wie in der Datei, mit unveränderten Werten.
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 zu PostgreSQL Flex
Die Klasse ist REPLATFORM mit benanntem Ziel. Laut Lauf werden die Daten mit pg_dump und pg_restore oder per logischer Replikation übertragen, und die Instanzklasse wird zum Flex-Flavor.
Redis zu Valkey
RECONFIGURE: Die Anwendung ändert Endpunkt und Zugangsdaten, und der Lauf verlangt die Bestätigung, dass keine Tair-spezifischen Befehle im Einsatz sind.
Die Version vergleichen Sie selbst
Die Quelle läuft mit PostgreSQL 15.0. Die Extension-Referenz von STACKIT deckt PostgreSQL 14 bis 18 ab, die Hauptversion wird also angeboten; gleichen Sie Ihre Extensions mit dieser Liste ab.
Replica Set oder Einzelknoten
PostgreSQL Flex von STACKIT ist ein Einzelknoten oder ein Replica Set aus drei Knoten. Das Terraform sagt nicht, welches Sie brauchen.
Eine Abhängigkeit bestimmt die Reihenfolge
Das Secret nennt den Schlüssel, daher setzt der Lauf den Schlüssel in Welle 1 und das Secret in Welle 2. Links: die beiden Ressourcen. Rechts: die drei Wellen, wörtlich aus 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 Reihenfolge, kein Zeitplan
Der Lauf selbst sagt, die Wellen seien ein Ausgangspunkt für den Plan des Architekten. Einheiten derselben Welle können parallel umziehen.
Netzwerke liegen über Wellen verteilt
Die VPC steht in Welle 1, die vSwitches in Welle 2. Server, Datenbank und Cache folgen in Welle 3.
Die RAM-Rolle steht in Welle 1
Sie hängt von nichts im Terraform ab, doch jeder Workload, der sie annimmt, hängt von dem Design ab, das Sie dafür erstellen.
Cutover-Fakten sind leer
In dieser Umgebung gibt es keinen DNS-Eintrag, kein Zertifikat und keine Adress-Neubindung; laut Lauf ist das keine Aussage darüber, dass nichts umgestellt werden muss.
Zustandsbehaftete Einheiten und zu aktivierende Dienste
Zwei Auszüge aus demselben Lauf: die zustandsbehafteten Einheiten aus migration/data-movement.md und die STACKIT-Dienste, die die zugeordneten Einheiten brauchen würden, aus 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 |Kein Mechanismus gewählt
Alle drei Einheiten zeigen den Mechanismus UNKNOWN und den Zustand DECISION_REQUIRED. Der Lauf überträgt nie Daten und wählt das Werkzeug nicht.
Sieben Dienstfamilien
IaaS trägt sechs Einheiten, die übrigen sechs Familien je eine. Laut Lauf muss für den Entwurf selbst nichts aktiviert werden, weil er keinen Ressourcenblock schreibt; für den Zielaufbau ist das die Liste der Dienste, die Ihr Projekt nutzen wird.
Datenklasse, RPO und Ausfallzeit
Sie stehen auf NOT_PROVIDED, bis Sie sie in der Anwendungsdatei angeben; der Lauf übernimmt sie dann wörtlich. Sie sind die Grundlage für die Wahl zwischen Dump/Restore und Replikation.
OSS zu Object Storage
Der Lauf vermerkt eine S3-API im Ziel. Anwendungen, die das OSS-SDK nutzen, ändern ihren Client.
Wer was erledigt
Die Arbeitspakete desselben Laufs, wörtlich aus execution/README.md. Jeder Schritt ist manuell, weil der Entwurf keine STACKIT-Ressource schreibt.
| Package | Owner | Phase | Steps | Resources | Decisions to answer | State |
|---|---|---|---|---|---|---|
| [`WP-01`](manual/actions.md) Set up by hand the resources the draft writes nothing for (foundation) | Network Architect | foundation | 3 | 3 | — | a person can start it now |
| [`WP-02`](manual/actions.md) Set up by hand the resources the draft writes nothing for (security) | Identity Architect | security | 1 | 1 | — | a person can start it now |
| [`WP-03`](manual/actions.md) Set up by hand the resources the draft writes nothing for (security) | Network Architect | security | 1 | 1 | — | a person can start it now |
| [`WP-04`](manual/actions.md) Set up by hand the resources the draft writes nothing for (security) | Owner assignment required | security | 2 | 2 | — | a person can start it now |
| [`WP-05`](manual/actions.md) Set up by hand the resources the draft writes nothing for (data services) | Data Architect | data services | 2 | 2 | — | a person can start it now |
| [`WP-06`](manual/actions.md) Set up by hand the resources the draft writes nothing for (data services) | Storage Architect | data services | 1 | 1 | — | a person can start it now |
| [`WP-07`](manual/actions.md) Set up by hand the resources the draft writes nothing for (platform services) | Network Architect | platform services | 1 | 1 | — | a person can start it now |
| [`WP-08`](manual/actions.md) Set up by hand the resources the draft writes nothing for (workloads) | Platform Architect | workloads | 2 | 2 | — | a person can start it now |„Owner assignment required“
WP-04 enthält den KMS-Schlüssel und das Secret. Die Tabelle der Verantwortlichen hat für die Kategorie Sicherheit dieser Einheiten keine Rolle; daher bittet der Lauf Sie, eine zu benennen.
Eine Person kann sofort beginnen
Der Plan markiert alle acht Pakete als startbereit; keines wartet auf eine Entscheidung. WP-04 braucht trotzdem zuerst eine verantwortliche Rolle, und nichts davon ist eine Freigabe.
Sicherheitsarbeit dreifach verteilt
Die RAM-Rolle geht an den Identity Architect, die Security Group an den Network Architect; Schlüssel und Secret warten auf eine Zuweisung durch Sie.
Die Entscheidungen, die diese Umgebung erzwingt
Zielregion
Beantworten Sie eu01 oder eu02 in inputs-template.yaml. Die Frage blockiert den Entwurf, und regionsabhängige Anforderungen werden bis zu Ihrer Antwort aus dem Katalog von eu01 abgeleitet.
Die Variable db_password
Das Template nimmt keinen Wert dafür an, weil sie sensitiv ist: Liefern Sie sie in einem privaten Lauf per tfvars-Datei oder TF_VAR_db_password. Bis dahin meldet der Lauf, dass die Migration des Secrets nicht bewertet werden konnte.
RAM-Rolle zum Service Account
Der ECS-Dienst vertraut der Rolle. Auf STACKIT erhält der Workload einen Service Account und Rollen im Projekt.
Öffentliche Erreichbarkeit
Der Load Balancer ist aus dem Internet erreichbar, und laut Lauf ändert sich seine öffentliche Adresse. Der Lauf führt Ingress und Egress als Zieleinstellungen, die in der Zielumgebung zu setzen sind.
Zonen
Die beiden vSwitches liegen in der Quelle in zwei Zonen. Prüfen Sie die Zonenplatzierung der beiden Server auf STACKIT.
Datenmechanismus und Fenster
Wählen Sie je zustandsbehafteter Einheit: Dump und Restore, Replikation, Kopie pro Objekt. Halten Sie RPO und Ausfallzeit in der Anwendungsdatei fest.
Fragen zu diesem Durchlauf
Warum entwirft der Lauf null STACKIT-Ressourcen?
Für eine Alibaba-Cloud-Quelle schreibt der Lauf terraform.tf, variables.tf und eine README, keine Ressourcenblöcke. Die 13 Einheiten bleiben bei Ihren Architekten, jede mit Ziel, Klasse und Begründung.
Welche Datei der Ausgabe ist am nützlichsten?
architect-report.md für die Begründungen, technical-sequencing.md für die Reihenfolge, data-movement.md für die zustandsbehafteten Einheiten und execution/manual/actions.md für die Verteilung der Arbeit.
Kann ich die Bewertung mit Antworten wiederholen?
Ja. Füllen Sie inputs-template.yaml aus (zum Beispiel die Region) und übergeben Sie die Datei dem nächsten Lauf mit --inputs. Standardmäßig bleibt der frühere Lauf in einem Ordner previous-<run id> im Ausgabeverzeichnis erhalten; mit --replace wird er stattdessen überschrieben.
Liest der Lauf mein Alibaba-Cloud-Konto?
Nein. Er liest nur Terraform- oder OpenTofu-Dateien und verbindet sich mit nichts.
Quellen
- Terraform Registry: alicloud_kms_secret (Provider 2.1.0)
- Terraform Registry: alicloud_kvstore_instance (Provider 2.1.0)
- STACKIT-Dokumentation: Architektur von PostgreSQL Flex
- STACKIT-Dokumentation: Von PostgreSQL Flex unterstützte Extensions
- STACKIT-Dokumentation: Key Value Store
- STACKIT-Dokumentation: Secrets Manager
Ihr nächster Schritt: STACKIT.
Erzählen Sie uns von Ihrer Umgebung. Wir zeigen Ihnen, was StackToIT dafür liefert: Zielarchitektur, Terraform-Artefakte und einen strukturierten Migrationsplan.