ORACLE LOAD BALANCERS → STACKIT ALB EN NLB · TUTORIAL
OCI Load Balancer en Network Load Balancer naar STACKIT
Een OCI Load Balancer wordt een STACKIT Application Load Balancer en een OCI Network Load Balancer wordt een STACKIT Network Load Balancer. StackToIT beoordeelt de twee load balancers zelf; de listeners, backend sets, backends en certificaten laat StackToIT als handmatig werk aan u over. Deze tutorial doorloopt een demo-omgeving van 12 resources en leest elk antwoord dat de run geeft, ook de onderdelen die de run openlaat.
Stap 1: de demo-omgeving en het commando
Een demo-omgeving, voor deze tutorial opgesteld: een VCN met een publiek en een privé-subnet, één server, een HTTPS-load balancer met certificaat, backend set, backend en listener, en een network load balancer voor een MQTT-poort met TLS. De omgeving is op 4 november 2026 beoordeeld met het commando rechts, uitgevoerd vanuit de invoermap van de demo, offline en zonder bronvalidatie omdat er geen providermirror beschikbaar was. Links: het netwerk waarin de twee load balancers staan, zoals het in main.tf staat; het load balancer-blok zelf volgt in stap 2.
resource "oci_core_vcn" "edge" {
compartment_id = var.compartment_id
cidr_blocks = ["10.30.0.0/16"]
display_name = "edge"
}
resource "oci_core_subnet" "public" {
compartment_id = var.compartment_id
vcn_id = oci_core_vcn.edge.id
cidr_block = "10.30.1.0/24"
display_name = "public"
}
resource "oci_core_subnet" "app" {
compartment_id = var.compartment_id
vcn_id = oci_core_vcn.edge.id
cidr_block = "10.30.2.0/24"
display_name = "app"
prohibit_public_ip_on_vnic = true
}# run from inside the demo's input folder; the output folder sits next to it
stacktoit assess . ../out --offline --no-validate
# then open, in this order
../out/index.html
../out/engineering/architect-report.md
../out/migration/technical-sequencing.md
../out/execution/manual/actions.mdGeen verbinding met Oracle Cloud
StackToIT leest de Terraform-code. Er wordt geen verbinding met uw tenancy geopend, dus de run heeft alleen de .tf-bestanden van de omgeving nodig.
Zet eerst de provider vast
De run waarschuwt dat de provider oci niet is vastgezet door een vermelding in het lockbestand en beperkt de eenheden tot zekerheidsniveau MEDIUM totdat dat gebeurt. Leg .terraform.lock.hcl samen met de rootmodule vast in versiebeheer vóór de echte run.
Stap 2: de load balancer zelf wordt beoordeeld
De load balancer met flexibele shape is de enige eenheid aan de HTTPS-kant met een gecatalogiseerd doel. Links: de invoer. Rechts: de beslissing zoals die in assessment.json staat. 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.
resource "oci_load_balancer_load_balancer" "web" {
compartment_id = var.compartment_id
display_name = "web"
shape = "flexible"
subnet_ids = [oci_core_subnet.public.id]
shape_details {
minimum_bandwidth_in_mbps = 10
maximum_bandwidth_in_mbps = 100
}
}{
"id": "oci_load_balancer_load_balancer.web",
"result": {
"class": "RECONFIGURE",
"confidence": "LOW",
"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."
}
}Klasse en doel
RECONFIGURE, met de STACKIT Application Load Balancer als doel. De reden noemt wat verandert: listeners, backends en certificaten worden herschreven en het publieke adres verandert.
Waarom het zekerheidsniveau laag is
Het architectenrapport noemt vier gekoppelde resources die niet zijn gecatalogiseerd (backend, backend set, certificaat en listener) en geeft aan dat hun effect op de migratie niet is beoordeeld. Hetzelfde blok is MEDIUM in de casestudyomgeving, die geen listeners of backend sets heeft; in deze run blijft ook de network load balancer, met twee van die gekoppelde resources, op MEDIUM. Lees LOW als: de HTTPS-kant heeft de meeste open onderdelen.
Het bandbreedtebereik
De invoer stelt 10 tot 100 Mbps in als flexibele shape. Het rapport noemt de shape-instellingen onder de instellingen die aan u zijn overgelaten; de conceptenpagina van de STACKIT ALB beschrijft geen bandbreedtebereik, dus bevestig de dimensionering bij STACKIT in plaats van de getallen over te nemen.
Stap 3: certificaat, backend set en listener zijn aan u overgelaten
De resources die een OCI load balancer bruikbaar maken, staan niet in de catalogus van deze build: certificaat, backend set, backend en listener (regels 92 tot 130 van main.tf). Elk is een MANUAL_REVIEW-eenheid zonder doel; het fragment rechts toont er drie van. De backend set en listener van de NLB gedragen zich hetzelfde. 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.
resource "oci_load_balancer_certificate" "web" {
load_balancer_id = oci_load_balancer_load_balancer.web.id
certificate_name = "web-cert"
public_certificate = var.tls_certificate
private_key = var.tls_private_key
}
resource "oci_load_balancer_backend_set" "web" {
load_balancer_id = oci_load_balancer_load_balancer.web.id
name = "web-backends"
policy = "LEAST_CONNECTIONS"
health_checker {
protocol = "HTTP"
port = 8080
url_path = "/healthz"
return_code = 200
}
}
resource "oci_load_balancer_backend" "web1" {
load_balancer_id = oci_load_balancer_load_balancer.web.id
backendset_name = oci_load_balancer_backend_set.web.name
ip_address = "10.30.2.11"
port = 8080
}
resource "oci_load_balancer_listener" "https" {
load_balancer_id = oci_load_balancer_load_balancer.web.id
name = "https"
default_backend_set_name = oci_load_balancer_backend_set.web.name
port = 443
protocol = "HTTP"
ssl_configuration {
certificate_name = oci_load_balancer_certificate.web.certificate_name
verify_peer_certificate = false
}
}[
{
"id": "oci_load_balancer_certificate.web",
"result": {
"class": "MANUAL_REVIEW",
"confidence": "LOW",
"reason": "oci_load_balancer_certificate is not in the knowledge base catalogue; an architect has to decide the target. Nothing of this resource is assessed or drafted (unknown source type)."
}
},
{
"id": "oci_load_balancer_backend_set.web",
"result": {
"class": "MANUAL_REVIEW",
"confidence": "LOW",
"reason": "oci_load_balancer_backend_set is not in the knowledge base catalogue; an architect has to decide the target. Nothing of this resource is assessed or drafted (unknown source type)."
}
},
{
"id": "oci_load_balancer_listener.https",
"result": {
"class": "MANUAL_REVIEW",
"confidence": "LOW",
"reason": "oci_load_balancer_listener is not in the knowledge base catalogue; an architect has to decide the target. Nothing of this resource is assessed or drafted (unknown source type)."
}
}
]Zes eenheden, geen doel
Van de 12 eenheden zijn er 6 MANUAL_REVIEW: het certificaat, de backend set, de backend en de listener van de HTTPS-load balancer, en de backend set en listener van de network load balancer. Elk wordt een handmatige stap in execution/manual/actions.md.
Wat het STACKIT-model vereist
Op de ALB spreekt een listener HTTP of HTTPS, verwijst een HTTPS-listener met zijn ID naar een certificaat dat via de STACKIT Certificate API is opgeslagen, en staan targets met hun IP-adres in target pools, met de poort ingesteld op de pool. U schrijft deze handmatig op basis van de OCI-instellingen hierboven.
TLS-offloading of bridging
De OCI-listener beëindigt TLS. De ALB kan hetzelfde doen en onversleuteld HTTP doorsturen, of bridgen: dan versleutelt de ALB het verkeer opnieuw richting de targets, met uw eigen CA als u er een instelt. Beslis dit per applicatie; de run kan dat niet.
Stap 4: de network load balancer
De MQTT-poort is een workload op laag 4. De load balancer-eenheid is gekoppeld; de backend set en listener ervan zijn opnieuw handwerk. 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.
resource "oci_network_load_balancer_network_load_balancer" "mqtt" {
compartment_id = var.compartment_id
display_name = "mqtt"
subnet_id = oci_core_subnet.public.id
is_private = false
}
resource "oci_network_load_balancer_backend_set" "mqtt" {
name = "mqtt-backends"
network_load_balancer_id = oci_network_load_balancer_network_load_balancer.mqtt.id
policy = "FIVE_TUPLE"
is_preserve_source = true
health_checker {
protocol = "TCP"
port = 8883
}
}
resource "oci_network_load_balancer_listener" "mqtt" {
name = "mqtt-tls"
network_load_balancer_id = oci_network_load_balancer_network_load_balancer.mqtt.id
default_backend_set_name = oci_network_load_balancer_backend_set.mqtt.name
port = 8883
protocol = "TCP"
}[
{
"id": "oci_network_load_balancer_network_load_balancer.mqtt",
"result": {
"class": "RECONFIGURE",
"confidence": "MEDIUM",
"target": {
"service": "STACKIT Network Load Balancer"
},
"reason": "A network load balancer becomes a STACKIT Network Load Balancer. Listeners and backends are rewritten, and the public address changes."
}
},
{
"id": "oci_network_load_balancer_listener.mqtt",
"result": {
"class": "MANUAL_REVIEW",
"confidence": "LOW",
"reason": "oci_network_load_balancer_listener is not in the knowledge base catalogue; an architect has to decide the target. Nothing of this resource is assessed or drafted (unknown source type)."
}
}
]Pass-through blijft pass-through
De OCI network load balancer is een pass-through-dienst die het bronadres van de client behoudt. De STACKIT NLB noemt TCP- en UDP-balancing, TCP-proxy en TLS passthrough, en de functiepagina noemt het behoud van het bronadres niet als aparte functie. Test vóór de cutover welk clientadres uw broker ziet.
Publiek of privé
De invoer is publiek (is_private = false). De functiepagina van de NLB noemt uitrol in een privénetwerk en een ephemeral IP; stem met STACKIT af hoe het publieke adres wordt gekoppeld voordat u de DNS-wijziging plant.
Wat elke OCI-instelling wordt
De instellingen die de demo-omgeving vastlegt, gelezen naast de STACKIT-documentatie uit de bronnen. Rijen met de aanduiding controleer worden niet door de run vastgesteld.
| OCI-instelling in de omgeving | Op STACKIT | Wie beslist |
|---|---|---|
| policy = LEAST_CONNECTIONS op de backend set | De conceptenpagina van de ALB vermeldt dat verkeer met het Maglev-algoritme wordt verdeeld; er is geen policyveld beschreven. Controleer het effect op langlopende verzoeken. | Applicatie-eigenaar |
| health_checker HTTP, poort 8080, /healthz, 200 | HTTP-healthcheck met een pad en geaccepteerde statuscodes. Standaardwaarden: interval 5 seconden, down na 3 mislukte controles, up na 3 geslaagde controles. | Platformarchitect |
| Certificaat met publiek certificaat en privésleutel | Een geldig X.509-certificaat dat via de Certificate API is opgeslagen en waarnaar via de ID wordt verwezen. Neem de sleutel uit uw secretstore, niet uit de Terraform-state. | Security-eigenaar |
| Listener HTTP op 443 met ssl_configuration | HTTPS-listener met TLS-offloading, optioneel TLS-bridging op de target pool. | Netwerkarchitect |
| Backend 10.30.2.11:8080 | Een target op IP-adres in een target pool; minstens één target, bereikbaar via een STACKIT-netwerk. | Platformarchitect |
| NLB is_preserve_source = true, FIVE_TUPLE | Niet als zodanig beschreven op de functiepagina van de NLB. Controleer het gedrag van het bronadres met een testclient. | Netwerkarchitect |
| NLB-healthcheck TCP op 8883, TCP-listener op 8883 | Eenvoudige actieve TCP-controle en een TCP-listener; TLS passthrough wordt genoemd. | Netwerkarchitect |
| Publieke NLB (is_private = false) | Uitrol in een privénetwerk en ephemeral IP worden genoemd; bevestig de publieke koppeling. | Netwerkarchitect |
De rijen zijn gelezen uit de geopende STACKIT-pagina's en de uitvoer van de run; waar een pagina zwijgt, staat in de rij controleer.
De volgorde van de migratie
De run rangschikt de 12 eenheden op basis van hun afhankelijkheden in vijf golven. Eenheden in een golf kunnen parallel overgaan; de onderdelen van de load balancers komen als laatste omdat ze van de load balancers afhangen, die op hun beurt van de netwerken afhangen.
Golf 1
Het VCN. Dit wordt de netwerkindeling en, waar routering tussen netwerken nodig is, een Network Area.
Golf 2
Het publieke en het privé-subnet, elk een STACKIT-netwerk met een eigen adresbereik.
Golf 3
De server, de application load balancer en de network load balancer.
Golf 4
De twee backend sets en het certificaat, allemaal handmatig.
Golf 5
De backend en de twee listeners, allemaal handmatig. De listener komt als laatste omdat die afhangt van de backend set en het certificaat.
Wat u wijzigt voordat u iets toepast
Plan een nieuw publiek adres
In beide redenen van de run staat dat het publieke adres verandert. Verlaag de DNS-TTL vóór de cutover en som elk record, elke allowlist en elke partnerfirewall op die het oude adres noemt.
Beantwoord de regioaanvraag
De run opent één aanvraag die het concept blokkeert: de doelregio, eu01 of eu02. Beantwoord die in review/inputs.yaml en voer de run opnieuw uit.
Herschrijf de regels, niet alleen de objecten
Backend sets, listeners en certificaten worden opnieuw aangemaakt uit de OCI-instellingen in de tabel hierboven. Bewaar die tabel bij het wijzigingsdossier.
Test met een kopie van echt verkeer
Paden van healthchecks, headerafhandeling (de ALB stelt X-Forwarded-For en X-Forwarded-Proto zelf in) en langdurige verbindingen zijn applicatiegedrag. Oefen ze vóór het venster op een load balancer in een testomgeving.
Behoud de OCI-load balancers tot het rollbackvenster afloopt
DNS terugzetten naar het oude adres is de goedkoopste rollback. Verwijder de OCI-kant pas na de afgesproken bewaartermijn (algemene praktijk, geen uitvoer van de run).
Vragen van netwerkteams
Schrijft StackToIT Terraform voor de STACKIT-load balancers?
Ja. StackToIT schrijft een STACKIT-Terraform-concept voor de load balancers voor uw architecten om te beoordelen. De listeners, backend sets, backends en certificaten zijn in deze run MANUAL_REVIEW-eenheden, dus uw team bouwt ze tijdens die beoordeling opnieuw op uit de OCI-instellingen.
Waarom zijn de listeners en backend sets MANUAL_REVIEW?
Ze staan niet in de catalogus van deze build, dus er wordt geen doel voorgesteld en er wordt niets van beoordeeld. Het rapport noemt ze als gekoppeld aan de load balancer en geeft aan dat hun effect op de migratie niet is beoordeeld; de application load balancer krijgt in deze run LOW.
Kunnen we hetzelfde IP-adres houden?
Niet volgens de run: de reden voor beide load balancers vermeldt dat het publieke adres verandert. Plan de DNS-wijziging en elke afnemer van het oude adres.
Welke load balancer hebben we nodig voor onze dienst?
HTTP- en HTTPS-routering op host, pad of headers wijst naar de ALB; ruw TCP of UDP en TLS passthrough wijzen naar de NLB. De STACKIT-documentatie onderscheidt de twee op laag 7 en laag 4.
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
Hartelijk dank.
Uw verzoek is bij ons binnengekomen. Onze specialisten nemen contact met u op.