AZURE → STACKIT · SERVICE MAPPING

Azure vs STACKIT: service mapping

De meeste Azure-diensten hebben een STACKIT-tegenhanger, maar de aard van het werk verschilt: een PostgreSQL-server valt onder Replatforming, een Key Vault onder Herconfiguratie en een Cosmos DB-account voor de NoSQL-API is een redesign. Deze pagina toont de paren uit een beoordeelde Azure-omgeving en de instellingen die niet worden overgenomen.

Welke STACKIT-doelen bij een beoordeelde Azure-omgeving horen

Voor deze pagina is een omgeving van 13 resources opgesteld, die StackToIT op 4 november 2026 heeft beoordeeld. De 13 resources vormen 9 eenheden: de resourcegroep, de wachtrij, de blobcontainer en het service plan worden gelezen als onderdeel van de eenheden die ze gebruiken. Zeven eenheden kregen een Terraform-blok, één heeft geen STACKIT-resource nodig en één is aan een architect overgelaten.

Azure-resourceSTACKIT-doelMigratieklasse
PostgreSQL flexible serverPostgreSQL Flex-instance, database en gebruikerReplatforming
Storage account met een blobcontainerObject Storage-bucket, met een credentials group en credentialReplatforming
Service Bus-namespace met een wachtrijEén RabbitMQ-instance waarop de wachtrijen en exchanges draaienReplatforming
Linux-webapp op een App Service-planCloud Foundry-organisatie; de app wordt erin gepushtReplatforming
Key VaultSecrets Manager-instance, met STACKIT KMS voor sleutelsHerconfiguratie
Azure Cache for RedisKey Value Store-instance (Valkey) met een credentialHerconfiguratie
Virtueel netwerkGeen eigen resource; projectnetwerk of een Network AreaHerconfiguratie
SubnetSTACKIT-netwerk met hetzelfde IPv4-prefixHerconfiguratie
Cosmos DB-account (NoSQL-API)MongoDB Flex of PostgreSQL Flex met JSONB, na een redesign van het datamodelRedesign

Klassen zoals de run ze bepaalde, alle met zekerheidsniveau MEDIUM: de versie van de bronprovider is niet vastgezet met een lockbestand, en de run begrenst het zekerheidsniveau dan op MEDIUM. De doelkolom noemt de resources die het assessment voorstelt. Het concept schrijft de instance, de bucket of de organisatie; gebruikers en credentials voor PostgreSQL, Object Storage, Secrets Manager en RabbitMQ worden apart aangemaakt, terwijl bij Valkey de credential deel uitmaakt van het concept.

Diensten die niet in de run zaten

De openbare StackToIT-documentatie en de samengestelde mappinglijst bevatten meer paren. Ze maakten geen deel uit van deze demo-omgeving, dus de onderstaande klassen zijn de gebruikelijke en geen resultaat voor uw omgeving.

Azure-dienstSTACKIT-doelGebruikelijke klasse
Virtuele machinesCompute EngineHerconfiguratie
Azure Kubernetes ServiceSTACKIT Kubernetes Engine (SKE)Replatforming
Azure SQL, SQL Managed InstanceSQLServer FlexReplatforming
FunctionsCloud Foundry of SKEREPLATFORM of CONTAINERIZE
Azure FirewallPer geval te bepalen door een architectBeslissing van de architect

Een cache en een bucket, omgezet

Uit dezelfde run. Links: de Azure-invoer. Rechts: de resourceblokken van de STACKIT-Terraform die de engine schreef; de beoordelingsopmerkingen boven elk blok in het bestand zijn hier weggelaten.

Voorbeeldinvoermain.tf
resource "azurerm_redis_cache" "sessions" {
  name                = "redis-shop-sessions"
  location            = azurerm_resource_group.shop.location
  resource_group_name = azurerm_resource_group.shop.name
  capacity            = 1
  family              = "C"
  sku_name            = "Standard"
  minimum_tls_version = "1.2"
}
STACKIT-Terraform van StackToITterraform/data.tf
resource "stackit_valkey_instance" "sessions" {
  project_id = var.project_id
  name       = "redis-shop-sessions"
  plan_name  = var.sessions_plan_name
  version    = var.sessions_version
  parameters = {
    sgw_acl = join(",", var.sessions_allowed_cidrs)
  }
}

resource "stackit_valkey_credential" "sessions" {
  project_id  = var.project_id
  instance_id = stackit_valkey_instance.sessions.instance_id
}
  • De omvang van de cache kiest u zelf

    family = C en capacity = 1 hebben geen Valkey-equivalent. De code neemt het plan en de versie op als variabelen, en de clients krijgen een nieuwe host en een gegenereerde credential.

  • Data in de cache wordt meestal opnieuw opgebouwd

    Een sessiecache wordt op het doel normaal gesproken opnieuw opgewarmd in plaats van gekopieerd. Daarom is de klasse RECONFIGURE en niet REPLATFORM.

Storage accounts worden buckets

De blobcontainer wordt één bucket, genoemd naar het account en de container. De opmerkingsregels rechts zijn de notities van de engine bij de bucket, in de volgorde van het bestand; de waarschuwing over de providerversie en de traceerregel zijn weggelaten.

Voorbeeldinvoermain.tf
resource "azurerm_storage_account" "media" {
  name                     = "stshopmediagwc"
  resource_group_name      = azurerm_resource_group.shop.name
  location                 = azurerm_resource_group.shop.location
  account_tier             = "Standard"
  account_replication_type = "GRS"
  min_tls_version          = "TLS1_2"
}

resource "azurerm_storage_container" "images" {
  name                  = "images"
  storage_account_id    = azurerm_storage_account.media.id
  container_access_type = "private"
}
STACKIT-Terraform van StackToITterraform/storage.tf
# NOT CARRIED (azurerm_storage_account.media): account_tier = Standard — stackit_objectstorage_bucket has name and object_lock only (pinned provider): the account's kind, performance tier and access tier are not generated.
# NOT CARRIED (azurerm_storage_account.media): account_replication_type = GRS — the replication is not generated: stackit_objectstorage_bucket has no replication setting (pinned provider) (STACKIT replicates within the region across three availability zones).
# WARNING storage-geo-replication: Geo-redundant replication to a paired region; STACKIT Object Storage has no managed cross-region replication, so a second copy needs its own sync job.
# REPLICATION: the source replicates to another region; STACKIT Object Storage does not replicate across regions — sync to a bucket in the second region (rclone) if the copy is required.
# LEDGER geo-replication: second region → none — sync to a second bucket if required — UNSUPPORTED
resource "stackit_objectstorage_bucket" "media" {
  project_id = var.project_id
  name       = "stshopmediagwc-images"
}
  • Een andere API, niet alleen een nieuw endpoint

    Azure Blob is niet S3-compatibel, dus applicaties stappen over van de Azure Storage SDK naar een S3-SDK en van accountsleutels of SAS-tokens naar S3-toegangssleutels. De documentatie van STACKIT Object Storage beschrijft een S3-compatibele API via HTTPS.

  • Geo-replicatie wordt niet overgenomen

    Het account gebruikte GRS. Het bucketblok heeft geen replicatie-instelling, dus een tweede kopie in een andere regio zet u zelf op, bijvoorbeeld met rclone.

Instellingen die in de praktijk knellen

Deze komen uit de notities over niet overgenomen eigenschappen en de redenen van de run, bij de eenheid waartoe ze behoren.

  • Resourcegroepen

    STACKIT kent geen resourcegroepen. Het concept plaatst elke resource in één project (de variabele project_id), en een medewerker bepaalt hoe de groepen worden gekoppeld aan projecten en rollen.

  • Private databases

    public_network_access_enabled = false heeft geen tegenhanger. Clients bereiken de PostgreSQL Flex-instance via de ACL, dus u noemt hun CIDR's in een variabele zonder standaardwaarde.

  • Instellingen van Key Vault

    Purge protection, retentie voor soft delete, tenant en toegangsbeleid worden niet gegenereerd. Secrets worden één voor één opnieuw aangemaakt in de Secrets Manager-instance.

  • Instellingen van App Service

    De Cloud Foundry-organisatie is alleen een container. Runtimeversie, plan en instellingen gaan naar een manifest en servicebindings.

  • Instellingen van Service Bus

    De tier van de namespace wordt niet overgenomen, en max_delivery_count = 10 van de wachtrij orders evenmin. Wachtrijen en topics worden geconfigureerd als queues en exchanges in de RabbitMQ-instance.

  • Cosmos DB

    Consistentieniveaus, partitiesleutels en de change feed moeten opnieuw worden ontworpen, en de run schrijft geen Terraform voor het account.

De eenheid die aan een architect is overgelaten

Het Cosmos DB-account voor de NoSQL-API is de enige eenheid van de omgeving zonder concept. Het assessment legt de klasse, de kandidaat-doelen en de reden vast.

Voorbeeldinvoermain.tf
resource "azurerm_cosmosdb_account" "catalog" {
  name                = "cosmos-shop-catalog"
  location            = azurerm_resource_group.shop.location
  resource_group_name = azurerm_resource_group.shop.name
  offer_type          = "Standard"
  kind                = "GlobalDocumentDB"

  consistency_policy {
    consistency_level = "Session"
  }

  geo_location {
    location          = "germanywestcentral"
    failover_priority = 0
  }
}
StackToIT-assessmentassessment.json
{
  "id": "azurerm_cosmosdb_account.catalog",
  "result": {
    "class": "REDESIGN",
    "confidence": "MEDIUM",
    "target": {
      "service": "STACKIT MongoDB Flex or PostgreSQL Flex (JSONB) — data-model redesign",
      "resources": [
        "stackit_mongodbflex_instance"
      ]
    },
    "reason": "The NoSQL (Core/SQL) API is Cosmos DB's own protocol and query dialect; nothing else speaks it. The access layer is rewritten for MongoDB Flex or PostgreSQL JSONB, and partition-key design, consistency levels and change feed are re-thought."
  }
}

De mapping gebruiken op uw eigen omgeving

  1. Beoordeel de Terraform

    Voer het assessment uit op de AzureRM- of AzAPI-rootmodule. De engine leest bestanden en maakt geen verbinding met een Azure-account.

  2. Lees de klasse vóór het doel

    REPLATFORM en RECONFIGURE betekenen dat het werk afgebakend is. REDESIGN en MANUAL_REVIEW betekenen dat eerst een architect een beslissing neemt.

  3. Open de notities over niet overgenomen eigenschappen

    Elk blok somt op wat het niet overneemt. Die regels vormen uw werklijst voor instellingen, toegang en dimensionering.

  4. Controleer de dataverplaatsing apart

    De run toont de stateful eenheden en laat de methode open. Omvang, wijzigingsfrequentie en toegestane downtime bepalen die, en de bron vermeldt geen van drieën.

Vragen over de mapping

Heeft elke Azure-dienst een STACKIT-equivalent?

Nee. Virtuele machines, Kubernetes, PostgreSQL, SQL Server, objectopslag, secrets, cache en messaging hebben een tegenhanger. Voor Azure Firewall wordt per geval beslist, en Cosmos DB voor de NoSQL-API heeft geen equivalent dat hetzelfde protocol ondersteunt, dus het is een redesign.

Waarom is Key Vault RECONFIGURE en niet REPLATFORM?

Het doel is een Vault-compatibele key-value store met een eigen client, dus applicaties stappen over van de Key Vault SDK of Key Vault-referenties naar een Vault-client of injectie door het platform. Sleutels gaan naar STACKIT KMS, een tweede dienst.

Waarom is het virtuele netwerk een eenheid zonder resource?

STACKIT kent in het model van de engine geen VNet-container. Elk subnet wordt een netwerk, en een Network Area komt er alleen bij als netwerken elkaar privé moeten bereiken.

Kan ik de klassen gebruiken om de inspanning in te schatten?

Ze tonen het soort werk, niet de omvang. Lees de notities over niet overgenomen eigenschappen en de openstaande beslissingen van elke eenheid, want een klasse alleen geeft niet alle vereisten weer.

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