ORACLE CLOUD → STACKIT · FALLSTUDIE
Ein OCI-Shop, durchgängig bewertet
Eine realistische OCI-Umgebung, von Terraform bis zum Migrationsplan durch StackToIT geführt: ein Webserver hinter einem Load Balancer, eine MySQL-Datenbank, ein Medien-Bucket und eine Bestell-Queue, auf zwei Subnetzen mit NAT-Gateway und einer IAM-Policy. Aus 11 Ressourcen wurden 11 Einheiten in 3 Wellen: 7 RECONFIGURE, 2 REPLATFORM und 2 MANUAL_REVIEW, 9 mit mittlerer und 2 mit niedriger Konfidenz. Der Überblick geht den Lauf in der Reihenfolge durch, in der ein Architekt ihn liest, und nennt die Entscheidungen, die am Ende bei Ihnen bleiben.
Der Lauf in Zahlen
Bewertet am 4. November 2026, offline und ohne Validierung der Quelle. Jede Zahl stammt aus assessment.json und der Konsolenzusammenfassung des Laufs.
11 Ressourcen, 11 Einheiten
Eine Datei, main.tf. Quellstatus COMPLETE, 8 Abhängigkeiten zwischen den Einheiten.
7 · 2 · 2 nach Klasse
RECONFIGURE 7, REPLATFORM 2 (Datenbank und Queue), MANUAL_REVIEW 2 (NAT-Gateway und IAM-Policy). Keine Einheit ist DIRECT, CONTAINERIZE, REDESIGN oder BLOCKED.
9 mittel, 2 niedrig
Die beiden Einheiten mit niedriger Konfidenz sind die beiden MANUAL_REVIEW-Einheiten. Der Provider ist nicht durch eine Lock-Datei festgelegt, was jede Einheit auf mittlere Konfidenz begrenzt.
0 entworfen, 11 manuell
Für eine Oracle-Cloud-Quelle schreibt der Lauf keine STACKIT-Ressourcenblöcke: terraform/ enthält nur Provider- und Variablendateien, und alle 11 Einheiten sind manuelle Schritte in 8 Arbeitspaketen.
56 kritische Einstellungen aufgeführt
Bei keiner der 11 Einheiten sind alle kritischen Einstellungen geklärt. Der Bericht nennt sie je Einheit, von 3 beim VCN bis 11 bei der Instanz.
1 Anfrage blockiert den Entwurf
Die Zielregion, eu01 oder eu02, in review/inputs.yaml.
Netzwerk und Compute: die Instanz, ihre Security Group und das NAT-Gateway
Links drei Blöcke aus main.tf, rechts die Entscheidungen, wie sie in assessment.json stehen. 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 "oci_core_network_security_group" "web" {
compartment_id = var.compartment_id
vcn_id = oci_core_vcn.shop.id
display_name = "web"
}
resource "oci_core_nat_gateway" "egress" {
compartment_id = var.compartment_id
vcn_id = oci_core_vcn.shop.id
display_name = "egress"
}
resource "oci_core_instance" "web" {
compartment_id = var.compartment_id
availability_domain = var.availability_domain
display_name = "shop-web-01"
shape = "VM.Standard.E5.Flex"
shape_config {
ocpus = 2
memory_in_gbs = 16
}
source_details {
source_type = "image"
source_id = var.image_id
}
create_vnic_details {
subnet_id = oci_core_subnet.web.id
nsg_ids = [oci_core_network_security_group.web.id]
assign_public_ip = false
}
}[
{
"id": "oci_core_network_security_group.web",
"result": {
"class": "RECONFIGURE",
"confidence": "MEDIUM",
"target": {
"service": "STACKIT security groups"
},
"reason": "A network security group becomes a STACKIT security group. Its rules are rewritten, and STACKIT rules only allow traffic."
}
},
{
"id": "oci_core_nat_gateway.egress",
"result": {
"class": "MANUAL_REVIEW",
"confidence": "LOW",
"reason": "Gateways do not carry over one to one. Whether the egress needs a STACKIT network with a public address or a NAT design is a decision for the network owner."
}
},
{
"id": "oci_core_instance.web",
"result": {
"class": "RECONFIGURE",
"confidence": "MEDIUM",
"target": {
"service": "STACKIT Compute Engine"
},
"reason": "A compute instance becomes a STACKIT server. The shape becomes a STACKIT flavor, the image is rebuilt or imported, and the attached volumes and network interfaces move with it."
}
}
]Der Server
RECONFIGURE mit mittlerer Konfidenz: Aus der Shape wird ein STACKIT-Flavor, das Image wird neu gebaut oder importiert, angehängte Volumes und Netzwerkschnittstellen ziehen mit um. Der Bericht führt 11 Einstellungen des Blocks für Ihre Architekten auf.
Die Security Group
Daraus wird eine STACKIT Security Group. Ihre Regeln werden neu geschrieben, und STACKIT-Regeln können Verkehr nur erlauben, nicht verbieten.
Das NAT-Gateway ist eine Entscheidung
MANUAL_REVIEW mit niedriger Konfidenz: Gateways ziehen nicht eins zu eins um. Ob der Egress ein STACKIT-Netzwerk mit öffentlicher Adresse oder ein NAT-Design braucht, entscheidet der Netzwerkverantwortliche.
Die Datenschicht: Datenbank, Bucket und Queue
Zeilen 100 bis 124 aus main.tf: Die Datenbank ist in der Eingabe hochverfügbar und liegt im privaten Subnetz, der Medien-Bucket hält die Bilder des Shops, und die Queue nimmt die Bestellungen auf. 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 "oci_mysql_mysql_db_system" "shop" {
compartment_id = var.compartment_id
availability_domain = var.availability_domain
display_name = "shop-mysql"
shape_name = "MySQL.4"
subnet_id = oci_core_subnet.db.id
admin_username = "dbadmin"
admin_password = var.db_admin_password
data_storage_size_in_gb = 100
is_highly_available = true
mysql_version = "8.4.3"
}
resource "oci_objectstorage_bucket" "media" {
compartment_id = var.compartment_id
namespace = "examplenamespace"
name = "shop-media"
access_type = "NoPublicAccess"
}
resource "oci_queue_queue" "orders" {
compartment_id = var.compartment_id
display_name = "orders"
retention_in_seconds = 345600
}[
{
"id": "oci_mysql_mysql_db_system.shop",
"result": {
"class": "REPLATFORM",
"confidence": "MEDIUM",
"target": {
"service": "STACKIT MariaDB"
},
"reason": "STACKIT offers MariaDB, not MySQL; test MySQL-specific features and any HeatWave analytics before cut-over, and move the data with a logical dump."
}
},
{
"id": "oci_objectstorage_bucket.media",
"result": {
"class": "RECONFIGURE",
"confidence": "MEDIUM",
"target": {
"service": "STACKIT Object Storage"
},
"reason": "A bucket becomes a STACKIT Object Storage bucket with an S3 API. Clients change endpoint and credentials; lifecycle, replication and access rules are rewritten."
}
},
{
"id": "oci_queue_queue.orders",
"result": {
"class": "REPLATFORM",
"confidence": "MEDIUM",
"target": {
"service": "STACKIT RabbitMQ"
},
"reason": "An OCI queue becomes a queue on STACKIT RabbitMQ. Clients change protocol, and messages in flight are drained before cut-over."
}
}
]MySQL wird MariaDB
REPLATFORM. STACKIT bietet MariaDB, nicht MySQL: Testen Sie MySQL-spezifische Funktionen und eventuelle HeatWave-Analysen vor dem Cutover und übertragen Sie die Daten mit einem logischen Dump. Die STACKIT-Seite beschreibt MariaDB als kompatibel mit MySQL-Anwendungen und bietet Galera-Cluster mit 3 Knoten und automatischem Failover.
Der Bucket wechselt den Endpunkt
RECONFIGURE auf STACKIT Object Storage, einen S3-kompatiblen Dienst. Clients wechseln Endpunkt und Zugangsdaten; Lifecycle-, Replikations- und Zugriffsregeln werden neu geschrieben. Die Datei zum Datenumzug führt den Bucket neben der Datenbank als zustandsbehaftete Einheit ohne gewähltes Verfahren.
Die Queue wechselt das Protokoll
REPLATFORM auf STACKIT RabbitMQ. Clients wechseln das Protokoll, und Nachrichten, die noch unterwegs sind, werden vor dem Cutover abgearbeitet. Die Aufbewahrung ist eine der 3 Einstellungen, die der Bericht Ihnen überlässt.
Die Edge-Dienste: Load Balancer und IAM-Policy
Die Umgebung deklariert den Load Balancer, aber keinen Listener, kein Backend Set und kein Zertifikat, und der Lauf stuft ihn mit MEDIUM ein. In der Load-Balancer-Anleitung, in der diese Ressourcen deklariert sind und als nicht katalogisierte verknüpfte Ressourcen gemeldet werden, steht derselbe Blocktyp auf LOW. 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 "oci_load_balancer_load_balancer" "shop" {
compartment_id = var.compartment_id
display_name = "shop"
shape = "flexible"
subnet_ids = [oci_core_subnet.web.id]
shape_details {
minimum_bandwidth_in_mbps = 10
maximum_bandwidth_in_mbps = 50
}
}[
{
"id": "oci_load_balancer_load_balancer.shop",
"result": {
"class": "RECONFIGURE",
"confidence": "MEDIUM",
"target": {
"service": "STACKIT Application Load Balancer"
},
"reason": "A load balancer becomes a STACKIT Application Load Balancer. Listeners, backends and certificates are rewritten, and the public address changes."
}
}
]Die öffentliche Adresse wechselt
Aus dem Load Balancer wird ein STACKIT Application Load Balancer; Listener, Backends und Zertifikate werden neu geschrieben, und die öffentliche Adresse wechselt.
Die Policy bleibt bei einer Person
oci_identity_policy.web ist MANUAL_REVIEW mit niedriger Konfidenz: OCI-Policies haben auf STACKIT keine Entsprechung auf Dokumentebene. Ihre Anweisung „Allow dynamic-group shop-web to read objects in compartment shop“ wertet eine Person aus und ordnet den Web-Tier einem STACKIT-Service-Account und einer Rolle zu.
Alle elf Einheiten
Ziele, Klassen und Konfidenz, wie der Lauf sie entschieden hat.
| OCI-Ressource | STACKIT-Ziel | Klasse · Konfidenz |
|---|---|---|
| VCN (shop) | STACKIT-Netzwerk | RECONFIGURE · MEDIUM |
| Subnetz (web) | STACKIT-Netzwerk | RECONFIGURE · MEDIUM |
| Subnetz (db) | STACKIT-Netzwerk | RECONFIGURE · MEDIUM |
| Network Security Group (web) | STACKIT Security Groups | RECONFIGURE · MEDIUM |
| NAT-Gateway (egress) | Kein Ziel; Entscheidung bei Ihnen | MANUAL_REVIEW · LOW |
| Compute-Instanz (web) | STACKIT Compute Engine | RECONFIGURE · MEDIUM |
| Load Balancer (shop) | STACKIT Application Load Balancer | RECONFIGURE · MEDIUM |
| MySQL-DB-System (shop) | STACKIT MariaDB | REPLATFORM · MEDIUM |
| Object-Storage-Bucket (media) | STACKIT Object Storage | RECONFIGURE · MEDIUM |
| Queue (orders) | STACKIT RabbitMQ | REPLATFORM · MEDIUM |
| IAM-Policy (web) | Kein Ziel; Entscheidung bei Ihnen | MANUAL_REVIEW · LOW |
Jedes Subnetz ist im Lauf eine eigene Einheit; die Tabelle führt jede einzeln.
Die Reihenfolge des Umzugs
Drei Wellen aus den Abhängigkeiten. Einheiten einer Welle können parallel umziehen.
Welle 1
Das VCN, die IAM-Policy, der Medien-Bucket und die Queue: Nichts anderes wird zuerst gebraucht.
Welle 2
Das NAT-Gateway, die Security Group und die beiden Subnetze.
Welle 3
Der Server, der Load Balancer und die Datenbank, sobald ihr Netzwerk steht.
Was der Lauf schreibt und was jede Datei beantwortet
- index.html
- Der ganze Lauf, Einheit für Einheit, offline
- assessment.json
- Klasse, Konfidenz, Ziel und Begründung je Einheit, maschinenlesbar
- engineering/architect-report.md
- Die Prüfwarteschlange der Einheiten, die eine Person brauchen, und je Einheit die Einstellungen, die bei Ihnen liegen
- migration/technical-sequencing.md
- Die drei Wellen
- migration/data-movement.md
- Datenbank und Bucket als zustandsbehaftete Einheiten, Verfahren offen
- execution/manual/actions.md
- Die 11 manuellen Schritte in 8 Arbeitspaketen mit verantwortlichen Rollen
- review/inputs.yaml
- Die Regionsanfrage und die übrigen Fragen des Laufs
Die Entscheidungen, die am Ende offen sind
Egress-Design
NAT-Gateway oder ein STACKIT-Netzwerk mit öffentlicher Adresse. Das Arbeitspaket liegt bei der Rolle Network Architect.
Rollen für den Web-Tier
Welchen STACKIT-Service-Account der Webserver nutzt und welche Rolle er statt der Dynamic Group erhält.
MySQL zu MariaDB
Welche MySQL-Funktionen der Shop nutzt und wie die Daten umziehen. Die Datei zum Datenumzug zeigt das Verfahren UNKNOWN, mit nicht angegebener Größe, Recovery Point und Ausfalltoleranz.
Semantik der Bestell-Queue
Aufbewahrung, erneute Zustellung und Dead-Lettering auf RabbitMQ nachbauen und mit realem Bestellvolumen testen.
Region
eu01 oder eu02, einmal beantwortet in review/inputs.yaml.
Fragen zu diesem Überblick
Ist das eine echte Kundenumgebung?
Nein. Es ist eine für diese Seite geschriebene Demo-Umgebung. Die Zahlen sind die des Laufs darauf.
Warum wird nichts als Terraform entworfen?
Für eine Oracle-Cloud-Quelle schreibt dieser Build keine STACKIT-Ressourcenblöcke. Der Lauf weist 0 erzeugte Einheiten und 11 beim Architekten aus und gibt jeder ein Ziel oder eine Begründung.
Was sieht der Lauf nicht?
Alles, was nur in der Tenancy und nicht in Terraform existiert, sowie die Daten selbst. Er prüft auch keinen Plan gegen ein STACKIT-Projekt.
Wie lange würde diese Migration dauern?
Der Lauf gibt keine Zeitschätzung. Er gibt eine Reihenfolge und die Entscheidungen; Dauern hängen von Datenmenge und akzeptierter Ausfallzeit ab.
Quellen
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.