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.

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

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

Beispieleingabemain.tf
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
  }
}
StackToIT-Bewertungassessment.json
[
  {
    "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-RessourceSTACKIT-ZielKlasse · Konfidenz
VCN (shop)STACKIT-NetzwerkRECONFIGURE · MEDIUM
Subnetz (web)STACKIT-NetzwerkRECONFIGURE · MEDIUM
Subnetz (db)STACKIT-NetzwerkRECONFIGURE · MEDIUM
Network Security Group (web)STACKIT Security GroupsRECONFIGURE · MEDIUM
NAT-Gateway (egress)Kein Ziel; Entscheidung bei IhnenMANUAL_REVIEW · LOW
Compute-Instanz (web)STACKIT Compute EngineRECONFIGURE · MEDIUM
Load Balancer (shop)STACKIT Application Load BalancerRECONFIGURE · MEDIUM
MySQL-DB-System (shop)STACKIT MariaDBREPLATFORM · MEDIUM
Object-Storage-Bucket (media)STACKIT Object StorageRECONFIGURE · MEDIUM
Queue (orders)STACKIT RabbitMQREPLATFORM · MEDIUM
IAM-Policy (web)Kein Ziel; Entscheidung bei IhnenMANUAL_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.

  1. Welle 1

    Das VCN, die IAM-Policy, der Medien-Bucket und die Queue: Nichts anderes wird zuerst gebraucht.

  2. Welle 2

    Das NAT-Gateway, die Security Group und die beiden Subnetze.

  3. 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.