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-Ressource | STACKIT-Ziel | Migrationsklasse |
|---|---|---|
| PostgreSQL Flexible Server | PostgreSQL-Flex-Instanz, Datenbank und Benutzer | Replatforming |
| Storage Account mit Blob-Container | Object-Storage-Bucket mit Credentials-Gruppe und Credential | Replatforming |
| Service-Bus-Namespace mit Queue | Eine RabbitMQ-Instanz, die Queues und Exchanges aufnimmt | Replatforming |
| Linux Web App auf einem App-Service-Plan | Cloud-Foundry-Organisation, in die die App gepusht wird | Replatforming |
| Key Vault | Secrets-Manager-Instanz, für Schlüssel STACKIT KMS | Rekonfigurieren |
| Azure Cache for Redis | Key-Value-Store-Instanz (Valkey) mit Credential | Rekonfigurieren |
| Virtuelles Netzwerk | Keine eigene Ressource; Projektnetzwerk oder Network Area | Rekonfigurieren |
| Subnetz | STACKIT-Netzwerk mit demselben IPv4-Präfix | Rekonfigurieren |
| Cosmos-DB-Konto (NoSQL-API) | MongoDB Flex oder PostgreSQL Flex mit JSONB, nach Redesign des Datenmodells | Redesign |
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-Dienst | STACKIT-Ziel | Übliche Klasse |
|---|---|---|
| Virtual Machines | Compute Engine | Rekonfigurieren |
| Azure Kubernetes Service | STACKIT Kubernetes Engine (SKE) | Replatforming |
| Azure SQL, SQL Managed Instance | SQLServer Flex | Replatforming |
| Functions | Cloud Foundry oder SKE | REPLATFORM oder CONTAINERIZE |
| Azure Firewall | Einzelfallentscheidung durch Ihre Architekten | Architekturentscheidung |
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.
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"
}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.
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"
}# 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.
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
}
}{
"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
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.
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.
Nicht-übernommen-Hinweise öffnen
Jeder Block nennt, was er nicht übernimmt. Diese Zeilen sind Ihre Arbeitsliste für Einstellungen, Zugriff und Dimensionierung.
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.