ORACLE CLOUD → STACKIT · CASESTUDY

Een OCI-webshop, van begin tot eind beoordeeld

Een realistische OCI-omgeving, van Terraform tot migratieplan door StackToIT gehaald: een webserver achter een load balancer, een MySQL-database, een mediabucket en een orderqueue, op twee subnets met een NAT-gateway en een IAM-policy. 11 resources werden 11 eenheden in 3 golven: 7 RECONFIGURE, 2 REPLATFORM en 2 MANUAL_REVIEW, 9 met zekerheidsniveau MEDIUM en 2 met LOW. Dit overzicht loopt de run door in de volgorde van een architect en noemt aan het eind de beslissingen die nog bij u liggen.

De run in cijfers

Offline beoordeeld op 4 november 2026, zonder bronvalidatie. Elk cijfer komt uit assessment.json en de consolesamenvatting van de run.

  • 11 resources, 11 eenheden

    Eén bestand, main.tf. Bronstatus COMPLETE, 8 afhankelijkheden tussen de eenheden.

  • 7 · 2 · 2 per klasse

    RECONFIGURE 7, REPLATFORM 2 (de database en de queue), MANUAL_REVIEW 2 (de NAT-gateway en de IAM-policy). Geen eenheid is DIRECT, CONTAINERIZE, REDESIGN of BLOCKED.

  • 9 MEDIUM, 2 LOW

    De twee eenheden met zekerheidsniveau LOW zijn de twee MANUAL_REVIEW-eenheden. De provider is niet vastgezet met een lockbestand, waardoor elke eenheid tot MEDIUM beperkt is.

  • Een Terraform-concept, 8 werkpakketten

    StackToIT schrijft een STACKIT-Terraform-concept in terraform/ voor uw architecten om te beoordelen, en alle 11 eenheden hebben stappen in 8 werkpakketten.

  • 56 kritieke instellingen vermeld

    Bij geen van de 11 eenheden zijn alle kritieke instellingen afgehandeld. Het rapport noemt de instellingen per eenheid, van 3 voor een VCN tot 11 voor de instance.

  • 1 verzoek blokkeert het concept

    De doelregio, eu01 of eu02, in review/inputs.yaml.

Netwerk en compute: de instance, zijn security group en de NAT-gateway

Links: drie blokken uit main.tf. Rechts: de beslissingen zoals ze in assessment.json staan. assessment.json staat op één regel, dus het venster toont geselecteerde velden van elke eenheid, ingesprongen en genest zoals in het bestand, met ongewijzigde waarden.

Voorbeeldinvoermain.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-assessmentassessment.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."
    }
  }
]
  • De server

    RECONFIGURE met zekerheidsniveau MEDIUM: de shape wordt een STACKIT-flavor, het image wordt opnieuw gebouwd of geïmporteerd, en de gekoppelde volumes en interfaces verhuizen mee. Het rapport noemt 11 instellingen van het blok voor uw architect.

  • De security group

    Wordt een STACKIT security group. De regels worden herschreven, en STACKIT-regels laten alleen verkeer toe.

  • De NAT-gateway is een beslissing

    MANUAL_REVIEW met zekerheidsniveau LOW: gateways gaan niet één-op-één mee. Of egress een STACKIT-netwerk met een publiek adres of een NAT-ontwerp vereist, is aan de netwerkeigenaar.

De datalaag: database, bucket en queue

Regels 100 tot en met 124 van main.tf: de database is in de invoer hoogbeschikbaar en staat op het privé-subnet, de mediabucket bevat de afbeeldingen van de shop en de queue draagt de orders. assessment.json staat op één regel, dus het venster toont geselecteerde velden van elke eenheid, ingesprongen en genest zoals in het bestand, met ongewijzigde waarden.

Voorbeeldinvoermain.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-assessmentassessment.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 wordt MariaDB

    REPLATFORM. STACKIT biedt MariaDB en geen MySQL: test MySQL-specifieke functies en eventuele HeatWave-analytics vóór de cutover en verplaats de data met een logische dump. De STACKIT-pagina beschrijft MariaDB als compatibel met MySQL-applicaties en vermeldt Galera-clusters van 3 nodes met automatische failover.

  • De bucket krijgt een ander endpoint

    RECONFIGURE naar STACKIT Object Storage, een S3-compatibele dienst. Clients wijzigen endpoint en inloggegevens, en lifecycle-, replicatie- en toegangsregels worden herschreven. Het bestand voor dataverplaatsing noemt de bucket naast de database als stateful eenheid zonder gekozen methode.

  • De queue krijgt een ander protocol

    REPLATFORM naar STACKIT RabbitMQ. Clients wijzigen van protocol, en berichten die onderweg zijn, worden vóór de cutover afgevoerd. Retentie is een van de 3 instellingen die het rapport aan u overlaat.

De rand: load balancer en IAM-policy

De omgeving declareert de load balancer maar geen listener, backend set of certificaat, en de run geeft die zekerheidsniveau MEDIUM. In de tutorial over de load balancer, waar die resources wel zijn gedeclareerd en als niet gecatalogiseerde gekoppelde resources worden gerapporteerd, krijgt hetzelfde soort blok zekerheidsniveau LOW. assessment.json staat op één regel, dus het venster toont geselecteerde velden van elke eenheid, ingesprongen en genest zoals in het bestand, met ongewijzigde waarden.

Voorbeeldinvoermain.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-assessmentassessment.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."
    }
  }
]
  • Het publieke adres verandert

    De load balancer wordt een STACKIT Application Load Balancer; listeners, backends en certificaten worden herschreven en het publieke adres verandert.

  • De policy blijft bij een persoon

    oci_identity_policy.web is MANUAL_REVIEW met zekerheidsniveau LOW: OCI-policies hebben op STACKIT geen tegenhanger op documentniveau. Het statement ervan, "Allow dynamic-group shop-web to read objects in compartment shop", wordt door mensen gelezen, die de weblaag koppelen aan een STACKIT service account en een rol.

Alle elf eenheden

Doelen, klassen en zekerheidsniveau zoals de run ze bepaalde.

OCI-resourceSTACKIT-doelKlasse · zekerheidsniveau
VCN (shop)STACKIT-netwerkRECONFIGURE · MEDIUM
Subnet (web)STACKIT-netwerkRECONFIGURE · MEDIUM
Subnet (db)STACKIT-netwerkRECONFIGURE · MEDIUM
Network security group (web)STACKIT security groupsRECONFIGURE · MEDIUM
NAT-gateway (egress)Geen doel; uw beslissingMANUAL_REVIEW · LOW
Compute-instance (web)STACKIT Compute EngineRECONFIGURE · MEDIUM
Load balancer (shop)STACKIT Application Load BalancerRECONFIGURE · MEDIUM
MySQL-DB-systeem (shop)STACKIT MariaDBREPLATFORM · MEDIUM
Object Storage-bucket (media)STACKIT Object StorageRECONFIGURE · MEDIUM
Queue (orders)STACKIT RabbitMQREPLATFORM · MEDIUM
IAM-policy (web)Geen doel; uw beslissingMANUAL_REVIEW · LOW

Elk subnet is in de run een eigen eenheid en heeft een eigen rij.

De volgorde van de migratie

Drie golven uit de afhankelijkheden. Eenheden in een golf kunnen parallel verhuizen.

  1. Golf 1

    Het VCN, de IAM-policy, de mediabucket en de queue: er is niets anders eerst nodig.

  2. Golf 2

    De NAT-gateway, de security group en de twee subnets.

  3. Golf 3

    De server, de load balancer en de database, zodra hun netwerk er is.

Wat de run schrijft, en wat elk bestand beantwoordt

index.html
De hele run, eenheid voor eenheid, offline
assessment.json
Klasse, zekerheidsniveau, doel en reden per eenheid, machineleesbaar
engineering/architect-report.md
De wachtrij van eenheden die een persoon nodig hebben, en per eenheid de instellingen die aan u zijn overgelaten
migration/technical-sequencing.md
De drie golven
migration/data-movement.md
De database en de bucket als stateful eenheden, mechanisme onbeslist
execution/manual/actions.md
De 11 handmatige stappen in 8 werkpakketten, met eigenaarsrollen
review/inputs.yaml
Het verzoek om de regio en de overige vragen van de run

De beslissingen die aan het eind nog openstaan

  • Egressontwerp

    NAT-gateway of een STACKIT-netwerk met een publiek adres. De rol Network Architect is eigenaar van het werkpakket.

  • Rollen voor de weblaag

    Welk STACKIT service account de webserver gebruikt en welke rol het krijgt, in plaats van de dynamische groep.

  • MySQL naar MariaDB

    Welke MySQL-functies de shop gebruikt en hoe de data verhuist. Het bestand voor dataverplaatsing toont mechanisme UNKNOWN, met omvang, herstelpunt en toegestane downtime als niet opgegeven.

  • Semantiek van de orderqueue

    Retentie, herlevering en dead-lettering opnieuw opgebouwd op RabbitMQ en getest met echt ordervolume.

  • Regio

    eu01 of eu02, eenmalig beantwoord in review/inputs.yaml.

Vragen over dit overzicht

Is dit een echte klantomgeving?

Nee. Het is een demo-omgeving die voor deze pagina is geschreven. De cijfers zijn die van de run erop.

Schrijft de run Terraform?

Ja. StackToIT schrijft een STACKIT-Terraform-concept voor uw architecten om te beoordelen, en geeft elke eenheid een doel of een reden.

Wat ziet de run niet?

Alles wat alleen in de tenancy bestaat en niet in Terraform, en de data zelf. De run controleert ook geen plan tegen een STACKIT-project.

Hoe lang zou deze migratie duren?

De run geeft geen tijdschatting. De run geeft een volgorde en de beslissingen; doorlooptijden hangen af van het datavolume en de downtime die u accepteert.

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