AZURE → STACKIT · DIENSTE-ZUORDNUNG

Azure vs. STACKIT: Dienstzuordnung

Die meisten Azure-Dienste haben ein STACKIT-Gegenstück, aber die Art der Arbeit unterscheidet sich: Ein PostgreSQL-Server wechselt per Replatforming, ein Key Vault wird umkonfiguriert, ein Cosmos-DB-Konto für die NoSQL-API ist ein Redesign. Diese Seite zeigt die Paare aus einer bewerteten Azure-Umgebung und die Einstellungen, die nicht übernommen werden.

Worauf eine bewertete Azure-Umgebung abgebildet wird

Für diese Seite wurde eine Umgebung mit 13 Ressourcen geschrieben und am 4. November 2026 von StackToIT bewertet. Die 13 Ressourcen ergeben 9 Einheiten: Resource Group, Queue, Blob-Container und Service Plan werden als Teil der Einheiten gelesen, die sie nutzen. Sieben Einheiten erhielten einen Terraform-Block, eine braucht keine STACKIT-Ressource, und eine bleibt Ihren Architekten überlassen.

Azure-RessourceSTACKIT-ZielMigrationsklasse
PostgreSQL Flexible ServerPostgreSQL-Flex-Instanz, Datenbank und BenutzerReplatforming
Storage Account mit Blob-ContainerObject-Storage-Bucket mit Credentials-Gruppe und CredentialReplatforming
Service-Bus-Namespace mit QueueEine RabbitMQ-Instanz, die Queues und Exchanges aufnimmtReplatforming
Linux Web App auf einem App-Service-PlanCloud-Foundry-Organisation, in die die App gepusht wirdReplatforming
Key VaultSecrets-Manager-Instanz, für Schlüssel STACKIT KMSRekonfigurieren
Azure Cache for RedisKey-Value-Store-Instanz (Valkey) mit CredentialRekonfigurieren
Virtuelles NetzwerkKeine eigene Ressource; Projektnetzwerk oder Network AreaRekonfigurieren
SubnetzSTACKIT-Netzwerk mit demselben IPv4-PräfixRekonfigurieren
Cosmos-DB-Konto (NoSQL-API)MongoDB Flex oder PostgreSQL Flex mit JSONB, nach Redesign des DatenmodellsRedesign

Klassen so, wie der Lauf sie bestimmt hat, alle mit Konfidenz MEDIUM: Die Version des Quell-Providers ist nicht durch eine Lock-Datei festgelegt, und der Lauf begrenzt die Konfidenz dann auf MEDIUM. Die Zielspalte nennt die Ressourcen, die die Bewertung vorschlägt. Der Entwurf schreibt Instanz, Bucket oder Organisation; Benutzer und Credentials für PostgreSQL, Object Storage, Secrets Manager und RabbitMQ legen Sie separat an; bei Valkey dagegen ist das Credential Teil des Entwurfs.

Dienste, die der Lauf nicht enthielt

Die öffentliche StackToIT-Dokumentation und die kuratierte Zuordnung nennen weitere Paare. Sie waren nicht Teil dieser Demo-Umgebung; die Klassen unten sind daher die üblichen und kein Ergebnis für Ihre Umgebung.

Azure-DienstSTACKIT-ZielÜbliche Klasse
Virtual MachinesCompute EngineRekonfigurieren
Azure Kubernetes ServiceSTACKIT Kubernetes Engine (SKE)Replatforming
Azure SQL, SQL Managed InstanceSQLServer FlexReplatforming
FunctionsCloud Foundry oder SKEREPLATFORM oder CONTAINERIZE
Azure FirewallEinzelfallentscheidung durch Ihre ArchitektenArchitekturentscheidung

Ein Cache und ein Bucket, umgesetzt

Aus demselben Lauf. Links die Azure-Eingabe, rechts die Ressourcenblöcke des STACKIT-Terraform, das die Engine geschrieben hat; die Review-Kommentare über jedem Block der Datei sind hier weggelassen.

Beispieleingabemain.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 von 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
}
  • Die Cache-Größe legen Sie fest

    family = C und capacity = 1 haben kein Valkey-Gegenstück. Der Code nimmt Plan und Version als Variablen, und die Clients erhalten einen neuen Host und ein erzeugtes Credential.

  • Zwischengespeicherte Daten werden meist neu aufgebaut

    Ein Session-Cache wird im Ziel üblicherweise neu befüllt statt kopiert. Deshalb lautet die Klasse RECONFIGURE und nicht REPLATFORM.

Storage Accounts werden zu Buckets

Der Blob-Container wird zu einem Bucket, benannt nach Storage Account und Container. Die Kommentarzeilen rechts sind die Hinweise der Engine zum Bucket in der Reihenfolge der Datei; die Warnung zur Provider-Version und die Trace-Zeile sind weggelassen.

Beispieleingabemain.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 von 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"
}
  • Andere API, nicht nur ein neuer Endpunkt

    Azure Blob ist nicht S3-kompatibel. Anwendungen wechseln vom Azure-Storage-SDK zu einem S3-SDK und von Account-Schlüsseln oder SAS-Tokens zu S3-Zugriffsschlüsseln. Die STACKIT-Dokumentation beschreibt für Object Storage eine S3-kompatible API über HTTPS.

  • Georeplikation wird nicht übernommen

    Der Account nutzte GRS. Der Bucket-Block kennt keine Replikationseinstellung; eine zweite Kopie in einer anderen Region richten Sie selbst ein, zum Beispiel mit rclone.

Einstellungen, die in der Praxis Arbeit machen

Die Punkte stammen aus den Nicht-übernommen-Hinweisen und den Begründungen des Laufs, jeweils an der Einheit, zu der sie gehören.

  • Resource Groups

    STACKIT kennt keine Resource Groups. Der Entwurf legt alle Ressourcen in ein einziges Projekt (Variable project_id), und wie die Gruppen auf Projekte und Rollen abgebildet werden, entscheidet eine Person.

  • Private Datenbanken

    public_network_access_enabled = false hat kein Gegenstück. Clients erreichen die PostgreSQL-Flex-Instanz über deren ACL; deren CIDRs tragen Sie in eine Variable ohne Standardwert ein.

  • Key-Vault-Einstellungen

    Purge Protection, Aufbewahrung gelöschter Objekte, Tenant und Zugriffsrichtlinien werden nicht erzeugt. Secrets legen Sie einzeln in der Secrets-Manager-Instanz neu an.

  • App-Service-Einstellungen

    Die Cloud-Foundry-Organisation ist nur ein Container. Laufzeitversion, Plan und Einstellungen wandern in ein Manifest und in Service-Bindings.

  • Service-Bus-Einstellungen

    Die Namespace-Stufe wird nicht übernommen, ebenso wenig max_delivery_count = 10 der Queue orders. Queues und Topics richten Sie als Queues und Exchanges in der RabbitMQ-Instanz ein.

  • Cosmos DB

    Konsistenzstufen, Partitionsschlüssel und Change Feed werden neu durchdacht; für das Konto schreibt der Lauf kein Terraform.

Die eine Einheit für Ihre Architekten

Das Cosmos-DB-Konto für die NoSQL-API ist die einzige Einheit der Umgebung ohne Entwurf. Die Bewertung hält Klasse, Zielkandidaten und Begründung fest.

Beispieleingabemain.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-Bewertungassessment.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."
  }
}

So nutzen Sie die Zuordnung für Ihre eigene Umgebung

  1. Terraform bewerten

    Lassen Sie die Bewertung über das AzureRM- oder AzAPI-Root-Modul laufen. Die Engine liest Dateien und verbindet sich mit keinem Azure-Konto.

  2. Erst die Klasse lesen, dann das Ziel

    REPLATFORM und RECONFIGURE bedeuten begrenzte Arbeit. REDESIGN und MANUAL_REVIEW bedeuten, dass zuerst Ihre Architekten eine Entscheidung treffen.

  3. Nicht-übernommen-Hinweise öffnen

    Jeder Block nennt, was er nicht übernimmt. Diese Zeilen sind Ihre Arbeitsliste für Einstellungen, Zugriff und Dimensionierung.

  4. Datenumzug getrennt prüfen

    Der Lauf listet die zustandsbehafteten Einheiten und lässt die Methode offen. Darüber entscheiden Datenmenge, Änderungsrate und tolerierte Ausfallzeit, und die Quelle nennt keinen dieser Werte.

Fragen zur Zuordnung

Hat jeder Azure-Dienst ein STACKIT-Gegenstück?

Nein. Virtuelle Maschinen, Kubernetes, PostgreSQL, SQL Server, Objektspeicher, Secrets, Cache und Messaging haben Entsprechungen. Azure Firewall wird im Einzelfall entschieden, und für Cosmos DB mit NoSQL-API gibt es kein Ziel, das dessen Protokoll spricht; deshalb ist es ein Redesign.

Warum ist Key Vault RECONFIGURE und nicht REPLATFORM?

Das Ziel ist ein Vault-kompatibler Key-Value-Speicher mit eigenem Client. Anwendungen wechseln also vom Key-Vault-SDK oder von Key-Vault-Referenzen zu einem Vault-Client oder zur Injektion durch die Plattform. Schlüssel gehen an STACKIT KMS, einen zweiten Dienst.

Warum ist das virtuelle Netzwerk eine Einheit ohne Ressource?

Das Modell der Engine kennt auf STACKIT keinen VNet-Container. Jedes Subnetz wird zu einem Netzwerk, und eine Network Area kommt nur hinzu, wenn Netzwerke privat miteinander sprechen müssen.

Kann ich mich bei der Aufwandsplanung auf die Klassen verlassen?

Sie zeigen die Art der Arbeit, nicht ihren Umfang. Lesen Sie die Nicht-übernommen-Hinweise und die offenen Entscheidungen jeder Einheit, denn eine Klasse allein nennt nicht jede Anforderung.

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.