Compute footprint
CloudMent AI-Powered Cloud Advisor
CloudMent
Last updated on
Plan VMware Relocate to STACKIT through discovery, target design, landing-zone readiness, migration waves, controlled cutover, validation, and optimization.
Start in Assess with a rapid inventory of VMware compute, storage, operating systems, and first capacity assumptions. Keep uncertainty visible for deeper Discovery instead of treating provisioned capacity as target sizing.
Rapid Discovery provides a fast, automated baseline of the current environment across on-premises and cloud landscapes. The focus is on quantifying the existing IT portfolio in a short time window, so teams can make early migration and commercial decisions with confidence.
At this stage, quantity and distribution matter more than deep application relationships.
Rapid Discovery builds an initial inventory of infrastructure and platform assets, including:
Compute footprint
Storage baseline
OS landscape
Kubernetes baseline
Database inventory
These metrics create the first fact-based view of migration scope.
The output of Rapid Discovery is a core input for:
This allows program stakeholders to align on financial direction and technical baseline before detailed planning starts.
Rapid Discovery is intentionally not a full application-level analysis. It does not include deep interviews with every application owner and does not aim to fully map all runtime dependencies.
That depth is covered in the subsequent Discovery phase, where infrastructure exports are enriched with targeted assessments and owner input to build a complete application picture.
Typical input sources include exports such as spreadsheets or similar inventory files from existing environments. This phase can be accelerated with AI-assisted tooling that extracts the required baseline metrics from uploaded datasets.
Rapid Discovery therefore acts as a prerequisite for structured cost indication and for shaping a realistic target environment strategy.
Use AI-assisted discovery assets when workload descriptions and inventory inputs need to be turned into first assessment and design artifacts for expert review.




The following diagram shows why Rapid Discovery is performed: raw source data is processed by tooling into a decision-ready baseline that supports early price indication and initial target sizing.
A robust Rapid Discovery typically follows a clear sequence:
The objective is not a perfect target architecture. The objective is a reliable starting point with enough accuracy for early decisions.
Result quality depends heavily on source quality. Typical issues include duplicates, outdated entries, inconsistent naming, and missing performance data.
Recommended practice for this phase:
This keeps cost indications traceable and allows focused refinement in the subsequent Discovery phase.
Rapid Discovery provides the volume baseline for early cost modeling. Captured assets are translated into STACKIT-relevant consumption dimensions, for example:
Combined with operating assumptions (runtime profile, availability targets, growth trajectory), this produces a solid first price indication and an initial TCO corridor.
At the end of Rapid Discovery, the following outputs should be available at a minimum:
Consolidated asset baseline
Quantities per technology domain are consolidated in one baseline.
Meaningful segmentation
Assets are segmented by criticality, environment, and modernization potential.
Traceable assumptions
Assumptions and identified data gaps are documented transparently.
Initial cost indication
Cost ranges and primary drivers are available for early planning.
Prioritized candidates
A prioritized list for deeper Discovery activities is available.
These outputs establish the working baseline for architecture, planning, and governance in the next Assess steps.
Common Rapid Discovery risks include over-simplified categorization, incomplete source systems, or overestimating data maturity.
Proven countermeasures:
This keeps the phase fast while preserving decision quality.
The handover point is reached when quantities, technology classes, and primary cost levers are sufficiently visible and open questions are clearly documented.
In Discovery, these open items are addressed through targeted owner interviews, deeper assessments, and dependency/compliance/operations analysis to build the full application-level picture.
Enrich the estate baseline with dependencies, application criticality, operating constraints, and representative CPU, memory, storage, and network measurements needed for Relocate design and wave grouping.
Discovery is one of the first and most critical modules in the Design and Mobilize phase. It refines Rapid Discovery results and adds the depth needed to make architecture and migration-wave decisions with confidence.
The primary objective is to establish a realistic, evidence-based understanding of the current IT landscape, business priorities, and organizational readiness before detailed target design and migration planning are finalized.
Complete baseline
Create a reliable application and infrastructure baseline that goes beyond pure quantities.
Dependency transparency
Identify technical and process dependencies to avoid hidden migration blockers.
Business alignment
Link technical findings with business criticality, timelines, and risk tolerance.
Planning readiness
Produce decision-ready input for target design and migration-wave planning.
Inventory
Comprehensive capture of servers, virtual machines, databases, middleware, and applications.
Dependency analysis
Mapping of communication paths and runtime dependencies between systems and applications.
Resource utilization
Analysis of actual CPU, memory, storage, and I/O behavior over a representative period.
Operational context
Collection of backup, patching, SLA, compliance, and operational constraints.
Application owner input
Structured questionnaires and interviews to validate assumptions and close data gaps.
In practice, Discovery is often run together with STACKIT partners. Partners typically use their own tooling landscape to collect and normalize technical data into a central repository. Many programs also trigger targeted questionnaires for application owners directly from these tools to enrich technical findings with business and operational context.
This combined model improves speed and consistency while keeping stakeholder validation built into the process.
Discovery intentionally combines two evidence streams that complement each other:
Neither stream is sufficient on its own. Technical evidence without owner context can misclassify critical workloads, while human input without technical grounding can hide coupling and capacity risks. Discovery quality depends on reconciling both streams into one decision-ready view.
The following diagram shows how Discovery transforms technical and stakeholder input into decision-ready outputs for the downstream modules.
During Discovery, tooling commonly applies the following analysis patterns:
These analyses establish the technical fact base. The human-driven stream then validates, prioritizes, and contextualizes these findings for executable migration decisions.
Use AI-assisted discovery assets to structure workload inputs, service mapping, readiness findings, and R-strategy signals before architects validate the resulting discovery baseline.




Discovery outputs are directly reused by the next modules in Design and Mobilize:
Design
Uses dependency, capacity, and risk insights to shape target architecture options.
Security and Compliance
Uses data classification and control gaps to define prioritized security requirements.
Landing Zone
Uses platform and governance constraints to define foundational setup decisions.
Migration Plan
Uses move groups, criticality, and sequencing constraints for realistic wave planning.
Operating Model and Business Case
Uses ownership, process impact, and value/risk signals for staffing and investment priorities.
At minimum, Discovery should produce the following outputs:
These outputs are essential prerequisites for continuing with detailed design work and a credible migration plan.
Use this runbook before assigning VMware virtual machines to a Relocate wave. It turns discovery evidence into a technical source-readiness decision and separates common VMware checks from the requirements of Cloudbase Coriolis and Hystax Acura.
The output is a per-VM readiness record with supported, conditional, or blocked status. Resolve blocked items before replication begins instead of moving uncertainty into the cutover window.
Apply these checks when Cloudbase Coriolis is selected:
The Coriolis STACKIT Installer deploys and configures the Coriolis appliance on STACKIT. It does not create VMware permissions, resolve unsupported source devices, size target VMs, or validate the source-to-target transfer path.
Coriolis STACKIT Installer Deploy the Coriolis appliance reproducibly after source and target prerequisites are understood. Open pageApply these checks when Hystax Acura is selected:
Record the result for every VM and preserve the evidence used for the decision.
Approve a VM for replication only when every blocker has an owner and resolution date. Conditional items must have an executable remediation step in the wave runbook; observations without impact can remain in the evidence record.
Confirm that the workload should remain VM-based and that moving its runtime placement with minimal redesign fits better than a Rehost rebuild or a platform change.
Relocate moves workloads with minimal architectural change, typically by transferring virtualization estates to a STACKIT-compatible target setup. The goal is fast transition with controlled risk, not immediate cloud-native modernization.
In practical terms, Relocate keeps the existing VM operating pattern largely intact. The main change is the runtime location and surrounding platform controls, not the workload runtime model itself.
Relocate and Rehost are both low-change paths, but they differ in migration depth and adaptation scope.
Relocate can be delivered in two operational variants, depending on estate size, heterogeneity, and cutover risk profile.
Landing zone compatibility
Validate network segmentation, IAM model, and security controls before migration starts.
Performance and sizing
Re-baseline VM sizing and storage profiles to avoid overprovisioning after move.
Operational controls
Preserve monitoring, backup, and recovery controls from day one in the target environment.
Large data volume handling
For very large VM data sets, define pre-seeding, delta-sync windows, and transfer throttle rules before cutover to avoid extended outage windows.
Future modernization path
Record explicit trigger points for follow-up replatform/refactor decisions.
In Relocate, the data path is often implicit because the full VM (including attached storage) is moved. Even so, large data footprints still require explicit design decisions:
Define the target landing zone controls for the Relocate wave before run start. Confirm account boundaries, network segmentation, and baseline controls so existing VM operating patterns can be transferred without violating platform governance.
Define the tool-assisted run path for scalable and repeatable Relocate waves. Set execution roles, migration batches, and rollback checkpoints up front so large VM estates can be moved with consistent controls across waves.




Describe manual installation steps for workloads that are not migrated with tools. Include OS baseline, package dependencies, and host preparation criteria to keep exception paths compatible with standard operations.
Prepare target VM and storage: Create target VM, attach required disks, and align CPU/memory sizing with measured source behavior.
Install required base components: Install hypervisor guest tools, OS packages, and runtime prerequisites needed to boot and operate the workload.
Transfer workload artifacts: Copy disk images, boot files, and service units/scripts using a controlled transfer path.
Validate boot and host baseline: Verify successful boot, filesystem mount integrity, and core network reachability before configuration.
Document manual target-side configuration and parameter alignment. Record security policies, IAM assignments, backup defaults, and monitoring baselines so moved workloads are operationally equivalent from day one.
Align system and application parameters: Apply hostname, DNS, time sync, and environment settings required by the workload.
Configure security and access model: Apply access policies, service credentials, and administrative boundaries for the target environment.
Enable operations baseline: Configure monitoring agents, log forwarding, backup jobs, and restore-test hooks.
Run configuration parity checks: Compare key runtime parameters with source baseline and document accepted differences.
Define manual deployment sequencing and handover checks. Define freeze windows, acceptance checks, and ownership transfer steps to prevent ambiguous handover during cutover.
Execute cutover sequence: Stop source writes, run final delta sync, and activate the target workload in the approved order.
Validate service behavior: Run smoke and critical-path tests, including connectivity to dependent systems.
Stabilize and monitor: Observe key metrics, error rates, and operational alerts during the agreed Hypercare window.
Finalize ownership transfer: Confirm support responsibilities, escalation paths, and rollback closure criteria.
Specify how Relocate outputs enter the common validation gate. Bundle technical evidence, risk log updates, and operational acceptance status so downstream wave governance can decide release without rework.
Relocate moves workloads with minimal architectural change, typically by transferring virtualization estates to a STACKIT-compatible target setup. The goal is fast transition with controlled risk, not immediate cloud-native modernization.
In practical terms, Relocate keeps the existing VM operating pattern largely intact. The main change is the runtime location and surrounding platform controls, not the workload runtime model itself.
Relocate and Rehost are both low-change paths, but they differ in migration depth and adaptation scope.
Relocate can be delivered in two operational variants, depending on estate size, heterogeneity, and cutover risk profile.
Landing zone compatibility
Validate network segmentation, IAM model, and security controls before migration starts.
Performance and sizing
Re-baseline VM sizing and storage profiles to avoid overprovisioning after move.
Operational controls
Preserve monitoring, backup, and recovery controls from day one in the target environment.
Large data volume handling
For very large VM data sets, define pre-seeding, delta-sync windows, and transfer throttle rules before cutover to avoid extended outage windows.
Future modernization path
Record explicit trigger points for follow-up replatform/refactor decisions.
In Relocate, the data path is often implicit because the full VM (including attached storage) is moved. Even so, large data footprints still require explicit design decisions:
Define the target landing zone controls for the Relocate wave before run start. Confirm account boundaries, network segmentation, and baseline controls so existing VM operating patterns can be transferred without violating platform governance.
Define the tool-assisted run path for scalable and repeatable Relocate waves. Set execution roles, migration batches, and rollback checkpoints up front so large VM estates can be moved with consistent controls across waves.




Describe manual installation steps for workloads that are not migrated with tools. Include OS baseline, package dependencies, and host preparation criteria to keep exception paths compatible with standard operations.
Prepare target VM and storage: Create target VM, attach required disks, and align CPU/memory sizing with measured source behavior.
Install required base components: Install hypervisor guest tools, OS packages, and runtime prerequisites needed to boot and operate the workload.
Transfer workload artifacts: Copy disk images, boot files, and service units/scripts using a controlled transfer path.
Validate boot and host baseline: Verify successful boot, filesystem mount integrity, and core network reachability before configuration.
Document manual target-side configuration and parameter alignment. Record security policies, IAM assignments, backup defaults, and monitoring baselines so moved workloads are operationally equivalent from day one.
Align system and application parameters: Apply hostname, DNS, time sync, and environment settings required by the workload.
Configure security and access model: Apply access policies, service credentials, and administrative boundaries for the target environment.
Enable operations baseline: Configure monitoring agents, log forwarding, backup jobs, and restore-test hooks.
Run configuration parity checks: Compare key runtime parameters with source baseline and document accepted differences.
Define manual deployment sequencing and handover checks. Define freeze windows, acceptance checks, and ownership transfer steps to prevent ambiguous handover during cutover.
Execute cutover sequence: Stop source writes, run final delta sync, and activate the target workload in the approved order.
Validate service behavior: Run smoke and critical-path tests, including connectivity to dependent systems.
Stabilize and monitor: Observe key metrics, error rates, and operational alerts during the agreed Hypercare window.
Finalize ownership transfer: Confirm support responsibilities, escalation paths, and rollback closure criteria.
Specify how Relocate outputs enter the common validation gate. Bundle technical evidence, risk log updates, and operational acceptance status so downstream wave governance can decide release without rework.
STACKIT
The sovereign European cloud provider behind the framework, delivering IaaS and PaaS from German and Austrian data centers with full digital independence.
Use this guide to define the initial STACKIT compute and storage profile for VMware workloads that will be relocated as virtual machines. It converts measured demand into an explicit target mapping without copying provisioned vCPU, memory, or datastore capacity one to one.
Initial target sizing protects the migration and cutover. It is not the final optimization decision. Review the profile again after the workload has produced representative telemetry on STACKIT.
Collect measurements over a period that includes normal operation, peak windows, batch processing, backup activity, month-end or seasonal events, and known incidents.
Document the source, time range, percentile, missing samples, growth assumptions, and confidence for every measurement. Apply a named safety margin where the evidence is incomplete instead of hiding uncertainty in an oversized target.
STACKIT machine types are predefined hardware configurations. Individual vCPU and RAM combinations cannot be assembled beyond the offered variants, so selection is a two-dimensional fit rather than a direct conversion of the VMware configuration.
Example of a machine type name: c1a.8d
The first part of the name, e.g. “c1a.8d”, is the variant of a machine type. Currently, there are the following variants:
| Variant | Description |
|---|---|
| t | Smaller instances with smaller CPU and less RAM |
| s | Processor-optimized instances with a CPU/RAM-ratio of 1:1 |
| c | Processor-optimized instances with a CPU/RAM-ratio of 1:2 |
| g | General instances with a CPU/RAM-ratio of 1:4 |
| m | Memory-optimized instances with a CPU/RAM-ratio of 1:8 |
| b | Large, memory-optimized instances with CPU/RAM-ratio of 1:16 or higher |
| n | Instances with NVIDIA GPUs |
This section is copied from the STACKIT docs automatically, several times a day. It cannot be changed here. Changes belong in the STACKIT docs.
The generation, processor architecture, available sizes, and exact memory values vary by region and can change over time. Resolve the current catalog in the target region before approving a wave.
d types. Prefer a non-overprovisioned type when sustained CPU demand, latency sensitivity, or observed contention makes predictable CPU access a requirement.Do not infer equivalent performance from vCPU count alone. Processor generation, overprovisioning, guest drivers, workload concurrency, and source contention all influence the observed result.
Treat storage capacity, performance, and availability as separate decisions.
A STACKIT Block Storage performance class defines the maximum IOPS and throughput for the complete volume. The class is independent of volume size, and all consumers of that volume, including VM and backup reads, share its performance envelope.
The following table lists currently available performance classes for the EU01 region:
| Performance class | Name | Max. IOPS | Max. Throughput (MB/s) |
|---|---|---|---|
| Performance class 0 | storage_premium_perf0 | 120 | 25 |
| Performance class 1 | storage_premium_perf1 | 500 | 50 |
| Performance class 2 | storage_premium_perf2 | 1000 | 100 |
| Performance class 4 | storage_premium_perf4 | 2000 | 150 |
| Performance class 6 | storage_premium_perf6 | 5000 | 200 |
| Performance class 8 | storage_premium_perf8 | 10000 | 250 |
| Performance class 10 | storage_premium_perf10 | 15000 | 300 |
| Performance class 12 | storage_premium_perf12 | 20000 | 350 |
| Performance class 13 | storage_premium_perf13 | 20000 | 700 |
| Performance class 14 | storage_premium_perf14 | 25000 | 400 |
| Performance class 15 | storage_premium_perf15 | 25000 | 800 |
| Performance class 16 | storage_premium_perf16 | 30000 | 450 |
| Performance class 17 | storage_premium_perf17 | 30000 | 900 |
| Performance class 18 | storage_premium_perf18 | 35000 | 500 |
| Performance class 19 | storage_premium_perf19 | 35000 | 1000 |
| Performance class 20 | storage_premium_perf20 | 40000 | 550 |
| Performance class 21 | storage_premium_perf21 | 40000 | 1100 |
| Performance class 29 | storage_premium_perf29 | 60000 | 1500 |
IOPS - Input/Output Operations per second
Throughput - Throughput in Megabytes per second
Thus, the classes used can be distinguished in detail based on the naming. Example: “Block Storage Premium - Performance Class 2” corresponds to SSD hard disks with max. 1000 IOPS and max. 100 Mbyte/s throughput.
This section is copied from the STACKIT docs automatically, several times a day. It cannot be changed here. Changes belong in the STACKIT docs.
The table shows the EU01 catalog. Always resolve the current values for the target region.
Create one version-controlled mapping row per VM and volume.
Approve the mapping only when the target profile, expected cost, quota, tool mapping, and acceptance thresholds are all known. Feed the exact mapping into the Coriolis or Acura test migration rather than choosing target resources during cutover.
Establish the governed cloud foundation before migration waves depend on it. Keep shared Platform Landing Zone capabilities separate from workload-specific Application Landing Zones, and derive both from enterprise controls and Discovery evidence.
A landing zone is the structured cloud foundation that defines how your organization operates on STACKIT from day 1. It combines governance, identity, security, network design, cost controls, and automation into one coherent baseline.
Without this foundation, migration waves typically stall due to missing approvals, inconsistent controls, and repeated platform decisions.
The following visual summarizes the core components that should be addressed for a reliable platform baseline.
Start the landing-zone stream as early as possible, in parallel with discovery.
The practical model is a dual track: establish the platform baseline early, then refine application landing zone templates as discovery insights mature.
Platform Landing Zone
Company-wide foundation for governance, identity, security, networking, cost controls, and automation.
Open Platform Landing ZoneApplication Landing Zone
Workload-specific implementation patterns derived from the platform baseline and discovery findings.
Open Application Landing ZoneTo design a landing zone effectively, enterprises usually provide:
To accelerate delivery, STACKIT provides concrete best practices and reusable templates:


A landing zone is the structured cloud foundation that defines how your organization operates on STACKIT from day 1. It combines governance, identity, security, network design, cost controls, and automation into one coherent baseline.
Without this foundation, migration waves typically stall due to missing approvals, inconsistent controls, and repeated platform decisions.
The following visual summarizes the core components that should be addressed for a reliable platform baseline.
Start the landing-zone stream as early as possible, in parallel with discovery.
The practical model is a dual track: establish the platform baseline early, then refine application landing zone templates as discovery insights mature.
Platform Landing Zone
Company-wide foundation for governance, identity, security, networking, cost controls, and automation.
Open Platform Landing ZoneApplication Landing Zone
Workload-specific implementation patterns derived from the platform baseline and discovery findings.
Open Application Landing ZoneTo design a landing zone effectively, enterprises usually provide:
To accelerate delivery, STACKIT provides concrete best practices and reusable templates:


This asset provides a reusable foundation for implementing a STACKIT platform landing zone. It is designed for enterprise environments that need a structured baseline for governance, security, networking, cost controls, and automation.
Repository:
This repository is a single root-module accelerator with modular submodules.
src/main.tf orchestrates all platform and landing-zone building blocks.src/config/.The repository provides eight reference configurations in src/config/. Choose the simplest
topology that satisfies the required network, security, organizational, tenant, and regional
boundaries.
Use standalone.tfvars for the smallest foundation: governance, management, a sandbox, and a
public application landing zone with its own network and direct internet access. It creates no
shared Network Area or connectivity hub, making it suitable when workloads do not require private
east-west connectivity or central DNS.
Use hub-and-spoke.tfvars when corporate workloads need shared private connectivity. A central
connectivity project provides the Network Area and DNS, the corporate data platform joins that
private domain, and public workloads retain independent networks with direct internet access.
Use hub-and-spoke-firewall.tfvars when corporate egress needs a consistent inspection and control
point. It extends the shared Network Area with an OPNsense firewall and steers corporate default
routes through the appliance, while public landing zones remain directly connected.
Use hub-and-spoke-finance-research.tfvars when business units require independent ownership and
private connectivity. Finance and research each receive their own address plan, connectivity
project, Network Area, and workload landing zone within the same STACKIT organization.
Use hub-and-spoke-multi-area.tfvars when regulated and shared workloads must occupy separate
private connectivity domains. Each domain has its own Network Area and DNS zone, with no implicit
routing between them.
Use hub-and-spoke-multi-region.tfvars for regional foundations in eu01 and eu02. Each region
receives an independent hub, Network Area, workload landing zone, and optional platform Kubernetes
cluster. Inter-region connectivity is deliberately not created and must be designed explicitly.
Use hub-and-spoke-prod-nonprod-firewall.tfvars when production must be isolated from
non-production. Each domain receives a dedicated Network Area and OPNsense firewall; development
and test share the non-production domain while remaining separate landing zones.
Use hub-and-spoke-tenant-isolation.tfvars for multiple tenants inside one organization. Every
tenant receives an independent owner, address plan, Network Area, connectivity project, and
workload landing zone, without private routing to the other tenant domains.
src/modules/governance)Purpose:
platform, landing_zones_corporate, landing_zones_public, sandboxes).Landing-zone classification:
src/modules/management)Purpose:
Landing-zone classification:
src/modules/connectivity)Purpose:
Landing-zone classification:
src/modules/devops)Purpose:
Landing-zone classification:
src/modules/landing-zone)Purpose:
for_each).Landing-zone classification:
src/modules/sandboxes)Purpose:
sandboxes folder.Landing-zone classification:
The current implementation now includes an end-to-end path for a central Kubernetes platform and namespace-based application onboarding.
The platform scope now includes a dedicated central Kubernetes foundation that can be operated as a shared platform service.
Application landing zones can now consume namespace service from the central Kubernetes platform cluster.
governancemanagementconnectivitydevopslanding-zone (core ALZ provisioning)sandboxes (supporting ALZ-adjacent environments)This means the repository delivers a strong platform baseline first, while ALZ capabilities are intentionally focused on project landing-zone provisioning and team sandbox enablement.
landing-zone map in your variable files.Use this blueprint to create the Application Landing Zone for a VM-based Relocate wave. It keeps the shared Platform Landing Zone, the workload project baseline, and the migrated workload clearly separated while giving Coriolis or Hystax Acura a controlled target in which to deploy.
The Platform Landing Zone supplies organization-wide governance, connectivity, identity, audit, and automation capabilities. The STACKIT Landing Zone Accelerator then creates one Application Landing Zone project for the workload and environment. Security Groups form an explicit manual approval gate before migration tooling or VMs enter that project.
The boundary is deliberate:
Create one Accelerator landing_zones entry per workload environment. For a private VMware target,
use a corporate landing zone connected to the approved Network Area and enable Observability.
landing_zones = { "erp-prod" = { project_name = "ERP Production" project_code = "erp" owner_email = "platform-owner@example.com" env = "prod" corporate = true network_area_key = "default" network_prefix_length = 24 secretsmanager_enabled = true
observability = { enabled = true plan_name = "Observability-Starter-EU01" acl = ["approved-admin-cidr"] }
role_assignments = [ { role = "project.owner" subject = "migration-automation@example.com" } ] }}After tofu apply, capture the project ID, landing-zone type, connected Network Area ID, DNS zone,
Secrets Manager instance ID, Observability instance ID, Grafana URL, and metrics push URL. These
outputs become controlled inputs for the migration wave, not values chosen during cutover.
The Accelerator does not create migrated VMs, workload disks, guest agents, or Security Groups in this module. It creates the governed project baseline into which those resources are deployed.
Create Security Groups only after the dependency matrix and tool path are approved. Keep the rule set version-controlled even when the initial creation is manual.
Review the default ingress and egress behavior before writing the approved rule set. Explicitly test same-group traffic and outbound restrictions rather than assuming every direction is denied by default. Resolve migration-tool ports from the selected tool’s documentation.
Security Group rules define which traffic is allowed or denied. Each rule specifies:
When you create a new Security Group, it includes a default security policy:
The default deny-all ingress policy ensures that your servers remain protected until you explicitly allow specific traffic. This “deny by default” approach prevents accidental exposure of services to the internet and helps maintain a strong security posture.
Ingress rules control incoming traffic to your servers. You must explicitly create ingress rules to allow:
Egress rules control outgoing traffic from your servers. By default there is a rule that allows all egress traffic. You can create restrictive egress rules to:
This section is copied from the STACKIT docs automatically, several times a day. It cannot be changed here. Changes belong in the STACKIT docs.
The gate passes only when platform security and the application owner approve the rules and both migration-tool connectivity and workload dependency tests succeed.
landing_zones map and enable corporate networking, Secrets Manager, and Observability as required.Do not hand the project to a migration tool before steps 1 through 5 pass. The tool consumes the Landing Zone; it does not define or replace it.
Provide the same approved Landing Zone contract to either tool while keeping their implementations separate.
The VM Application Landing Zone is ready for a production wave when:
Use this blueprint to create the Application Landing Zone for a VM-based Relocate wave. It keeps the shared Platform Landing Zone, the workload project baseline, and the migrated workload clearly separated while giving Coriolis or Hystax Acura a controlled target in which to deploy.
The Platform Landing Zone supplies organization-wide governance, connectivity, identity, audit, and automation capabilities. The STACKIT Landing Zone Accelerator then creates one Application Landing Zone project for the workload and environment. Security Groups form an explicit manual approval gate before migration tooling or VMs enter that project.
The boundary is deliberate:
Create one Accelerator landing_zones entry per workload environment. For a private VMware target,
use a corporate landing zone connected to the approved Network Area and enable Observability.
landing_zones = { "erp-prod" = { project_name = "ERP Production" project_code = "erp" owner_email = "platform-owner@example.com" env = "prod" corporate = true network_area_key = "default" network_prefix_length = 24 secretsmanager_enabled = true
observability = { enabled = true plan_name = "Observability-Starter-EU01" acl = ["approved-admin-cidr"] }
role_assignments = [ { role = "project.owner" subject = "migration-automation@example.com" } ] }}After tofu apply, capture the project ID, landing-zone type, connected Network Area ID, DNS zone,
Secrets Manager instance ID, Observability instance ID, Grafana URL, and metrics push URL. These
outputs become controlled inputs for the migration wave, not values chosen during cutover.
The Accelerator does not create migrated VMs, workload disks, guest agents, or Security Groups in this module. It creates the governed project baseline into which those resources are deployed.
Create Security Groups only after the dependency matrix and tool path are approved. Keep the rule set version-controlled even when the initial creation is manual.
Review the default ingress and egress behavior before writing the approved rule set. Explicitly test same-group traffic and outbound restrictions rather than assuming every direction is denied by default. Resolve migration-tool ports from the selected tool’s documentation.
Security Group rules define which traffic is allowed or denied. Each rule specifies:
When you create a new Security Group, it includes a default security policy:
The default deny-all ingress policy ensures that your servers remain protected until you explicitly allow specific traffic. This “deny by default” approach prevents accidental exposure of services to the internet and helps maintain a strong security posture.
Ingress rules control incoming traffic to your servers. You must explicitly create ingress rules to allow:
Egress rules control outgoing traffic from your servers. By default there is a rule that allows all egress traffic. You can create restrictive egress rules to:
This section is copied from the STACKIT docs automatically, several times a day. It cannot be changed here. Changes belong in the STACKIT docs.
The gate passes only when platform security and the application owner approve the rules and both migration-tool connectivity and workload dependency tests succeed.
landing_zones map and enable corporate networking, Secrets Manager, and Observability as required.Do not hand the project to a migration tool before steps 1 through 5 pass. The tool consumes the Landing Zone; it does not define or replace it.
Provide the same approved Landing Zone contract to either tool while keeping their implementations separate.
The VM Application Landing Zone is ready for a production wave when:
Use this blueprint to create the Application Landing Zone for a VM-based Relocate wave. It keeps the shared Platform Landing Zone, the workload project baseline, and the migrated workload clearly separated while giving Coriolis or Hystax Acura a controlled target in which to deploy.
The Platform Landing Zone supplies organization-wide governance, connectivity, identity, audit, and automation capabilities. The STACKIT Landing Zone Accelerator then creates one Application Landing Zone project for the workload and environment. Security Groups form an explicit manual approval gate before migration tooling or VMs enter that project.
The boundary is deliberate:
Create one Accelerator landing_zones entry per workload environment. For a private VMware target,
use a corporate landing zone connected to the approved Network Area and enable Observability.
landing_zones = { "erp-prod" = { project_name = "ERP Production" project_code = "erp" owner_email = "platform-owner@example.com" env = "prod" corporate = true network_area_key = "default" network_prefix_length = 24 secretsmanager_enabled = true
observability = { enabled = true plan_name = "Observability-Starter-EU01" acl = ["approved-admin-cidr"] }
role_assignments = [ { role = "project.owner" subject = "migration-automation@example.com" } ] }}After tofu apply, capture the project ID, landing-zone type, connected Network Area ID, DNS zone,
Secrets Manager instance ID, Observability instance ID, Grafana URL, and metrics push URL. These
outputs become controlled inputs for the migration wave, not values chosen during cutover.
The Accelerator does not create migrated VMs, workload disks, guest agents, or Security Groups in this module. It creates the governed project baseline into which those resources are deployed.
Create Security Groups only after the dependency matrix and tool path are approved. Keep the rule set version-controlled even when the initial creation is manual.
Review the default ingress and egress behavior before writing the approved rule set. Explicitly test same-group traffic and outbound restrictions rather than assuming every direction is denied by default. Resolve migration-tool ports from the selected tool’s documentation.
Security Group rules define which traffic is allowed or denied. Each rule specifies:
When you create a new Security Group, it includes a default security policy:
The default deny-all ingress policy ensures that your servers remain protected until you explicitly allow specific traffic. This “deny by default” approach prevents accidental exposure of services to the internet and helps maintain a strong security posture.
Ingress rules control incoming traffic to your servers. You must explicitly create ingress rules to allow:
Egress rules control outgoing traffic from your servers. By default there is a rule that allows all egress traffic. You can create restrictive egress rules to:
This section is copied from the STACKIT docs automatically, several times a day. It cannot be changed here. Changes belong in the STACKIT docs.
The gate passes only when platform security and the application owner approve the rules and both migration-tool connectivity and workload dependency tests succeed.
landing_zones map and enable corporate networking, Secrets Manager, and Observability as required.Do not hand the project to a migration tool before steps 1 through 5 pass. The tool consumes the Landing Zone; it does not define or replace it.
Provide the same approved Landing Zone contract to either tool while keeping their implementations separate.
The VM Application Landing Zone is ready for a production wave when:
Group VMs by verified dependencies and technical constraints, begin with a representative low-risk pilot, and define ordered runbooks, maintenance windows, cutover gates, and rollback boundaries.
Migration Plan is the transition from analysis to delivery. It follows Discovery and is continuously filled with concrete implementation detail from the Design module.
The goal is to transform findings from Discovery and Design into a detailed, step-by-step migration plan that delivery teams can run with predictable quality.
This module forms the bridge between strategy and implementation and is therefore critical for the overall migration success.
Wave planning
Group applications into logical migration waves based on dependency constraints, business criticality, and technical complexity.
Migration runbooks
Create detailed, step-by-step runbooks per wave or application covering preparation, delivery, cutover, rollback, and post-migration validation.
Resource planning
Define required teams, skills, tools, and expert allocation per wave, including enablement and training planning.
Delivery governance
Establish clear governance processes, ownership, communication cadence, and cutover controls for wave delivery.
Migration planning must stay adaptive. Programs should start initial waves as early as possible and then continuously refine wave scope and sequencing as additional Discovery and Design outputs become available.
Runbooks are living documents. Teams should review and improve runbooks after every cutover. As runbook quality increases, migration velocity typically increases wave by wave.
In large migration programs, the goal is to scale delivery from initial pilot waves to predictable factory throughput. A typical trajectory is to start with small waves (for example, 5 servers/week) and gradually increase throughput (for example, up to 50-100 servers/week), depending on constraints and delivery maturity.
Early waves are intentionally smaller so portfolio and migration workstreams can stabilize their processes, validate assumptions, and improve runbooks. This learning loop is a key success factor for large migrations.
In this module, the migration factory is typically operated through four components:
Project governance rules
Processes and tools that govern wave orchestration, communication, timelines, and cutovers so teams run tasks in the right sequence and at the right time.
Portfolio runbooks
Runbooks used to prioritize applications, plan waves, and collect migration metadata as the input material for delivery.
Migration runbooks
Runbooks used to run migration waves, load metadata into migration tooling, and complete cutover and validation.
Best practices and health-check matrix
A regular health-check mechanism used to assess progress, identify delivery risks early, and keep delivery on track.
Runbooks create the data flow across two connected workstreams:
Teams are usually dedicated to parts of the factory while waves flow through both workstreams. To prevent supply issues, keep enough prepared waves in front of delivery. A common baseline is to keep the portfolio workstream five waves ahead of the migration workstream.
For governance and capacity planning, it is important to separate function from team ownership:
Both teams are tightly coupled, but they deliver different outputs:
A typical dynamic pattern is:
Before migration delivery reaches steady throughput, portfolio planning usually establishes an initial wave buffer. Once delivery starts, both workstreams continue in parallel and the buffer helps prevent delivery stalls.
The following diagram visualizes the operating model based on phases and modules: planning remains anchored in the Migration Plan module (Design and Mobilize), while delivery runs in staggered migration waves.
In this model, phase boundaries are intentionally overlapping:
The detailed setup scope is documented in its dedicated chapter: Migration Factory Setup.
The pattern is intentionally dynamic: portfolio work keeps a stable forward buffer, while migration work runs waves with runbooks, cutovers, and validation.
Migration Plan connects Discovery and Design outputs with delivery governance, wave planning, and runbook-driven delivery. The process tightly links portfolio and migration workstreams through governance controls, runbooks, and continuous improvement.
Wave planning is not a static schedule. It is an operational timeline that must remain transparent for stakeholders and adaptable to new findings. Cadence, overlap between workstreams, and buffer logic are the key control variables.
At minimum, Migration Plan should produce:
Use this runbook to execute one approved VMware Relocate wave to STACKIT. It provides two complete tool paths: Cloudbase Coriolis and Hystax Acura. Select one path for the entire wave and retain the same tool, inventory identifiers, mappings, and evidence through test migration and final cutover.
The runbook assumes that applications remain VM-based. Architecture modernization, database replatforming, and application refactoring require separate plans and acceptance criteria.
Do not start replication until all entry criteria have passed:
Create one version-controlled control record for the wave. Include:
Run the procedure first with a low-risk pilot that represents the intended operating-system, disk, network, and application patterns. Promote the runbook to larger waves only after pilot findings are incorporated.
Select this complete path when Cloudbase Coriolis is the approved migration tool.
Select this complete path when Hystax Acura is the approved migration tool.
Start validation as soon as target instances are reachable. Record timestamps because the remaining rollback window is a technical constraint.
Rollback is safe only while data ownership remains clear. If the target has accepted writes, stop target processing and execute the approved reverse synchronization or reconciliation method before the source is restarted. Never power on both copies with production connectivity unless the application design explicitly supports concurrent writers.
The wave is technically complete when:
Begin Migrate only with approved source and target states. Preserve topology assumptions, synchronize state, control traffic cutover, and require objective continuity and telemetry evidence.
This module executes the actual migration delivery in the Migration Factory. By this point, design decisions are approved, landing zones are ready, and wave plans are defined.
Migrate focuses on repeatable technical run patterns for:
Migrate starts after Design and Mobilize has produced implementable inputs:
Reference modules:
Runbook evidence
Completed runbook records, decision logs, and rollback checkpoints for each migrated workload.
Cutover report
Time-stamped cutover outcome with acceptance results, defects, and mitigation actions.
Operational baseline
Initial monitoring, alerting, ownership, and incident procedures in the target setup.
Optimize backlog
Structured list of rightsizing, performance, and cost measures for post-cutover tuning.
Post-cutover care can overlap with Optimize after cutover, but it is handled in the Run phase.
Choose one approved migration tool for the complete wave. Keep its endpoint, mapping, replication, test-migration, final-sync, and cutover sequence together through completion.
STACKIT
The sovereign European cloud provider behind the framework, delivering IaaS and PaaS from German and Austrian data centers with full digital independence.
Use this runbook to execute one approved VMware Relocate wave to STACKIT. It provides two complete tool paths: Cloudbase Coriolis and Hystax Acura. Select one path for the entire wave and retain the same tool, inventory identifiers, mappings, and evidence through test migration and final cutover.
The runbook assumes that applications remain VM-based. Architecture modernization, database replatforming, and application refactoring require separate plans and acceptance criteria.
Do not start replication until all entry criteria have passed:
Create one version-controlled control record for the wave. Include:
Run the procedure first with a low-risk pilot that represents the intended operating-system, disk, network, and application patterns. Promote the runbook to larger waves only after pilot findings are incorporated.
Select this complete path when Cloudbase Coriolis is the approved migration tool.
Select this complete path when Hystax Acura is the approved migration tool.
Start validation as soon as target instances are reachable. Record timestamps because the remaining rollback window is a technical constraint.
Rollback is safe only while data ownership remains clear. If the target has accepted writes, stop target processing and execute the approved reverse synchronization or reconciliation method before the source is restarted. Never power on both copies with production connectivity unless the application design explicitly supports concurrent writers.
The wave is technically complete when:
STACKIT
The sovereign European cloud provider behind the framework, delivering IaaS and PaaS from German and Austrian data centers with full digital independence.
Use this runbook to execute one approved VMware Relocate wave to STACKIT. It provides two complete tool paths: Cloudbase Coriolis and Hystax Acura. Select one path for the entire wave and retain the same tool, inventory identifiers, mappings, and evidence through test migration and final cutover.
The runbook assumes that applications remain VM-based. Architecture modernization, database replatforming, and application refactoring require separate plans and acceptance criteria.
Do not start replication until all entry criteria have passed:
Create one version-controlled control record for the wave. Include:
Run the procedure first with a low-risk pilot that represents the intended operating-system, disk, network, and application patterns. Promote the runbook to larger waves only after pilot findings are incorporated.
Select this complete path when Cloudbase Coriolis is the approved migration tool.
Select this complete path when Hystax Acura is the approved migration tool.
Start validation as soon as target instances are reachable. Record timestamps because the remaining rollback window is a technical constraint.
Rollback is safe only while data ownership remains clear. If the target has accepted writes, stop target processing and execute the approved reverse synchronization or reconciliation method before the source is restarted. Never power on both copies with production connectivity unless the application design explicitly supports concurrent writers.
The wave is technically complete when:
STACKIT
The sovereign European cloud provider behind the framework, delivering IaaS and PaaS from German and Austrian data centers with full digital independence.
Use this runbook to execute one approved VMware Relocate wave to STACKIT. It provides two complete tool paths: Cloudbase Coriolis and Hystax Acura. Select one path for the entire wave and retain the same tool, inventory identifiers, mappings, and evidence through test migration and final cutover.
The runbook assumes that applications remain VM-based. Architecture modernization, database replatforming, and application refactoring require separate plans and acceptance criteria.
Do not start replication until all entry criteria have passed:
Create one version-controlled control record for the wave. Include:
Run the procedure first with a low-risk pilot that represents the intended operating-system, disk, network, and application patterns. Promote the runbook to larger waves only after pilot findings are incorporated.
Select this complete path when Cloudbase Coriolis is the approved migration tool.
Select this complete path when Hystax Acura is the approved migration tool.
Start validation as soon as target instances are reachable. Record timestamps because the remaining rollback window is a technical constraint.
Rollback is safe only while data ownership remains clear. If the target has accepted writes, stop target processing and execute the approved reverse synchronization or reconciliation method before the source is restarted. Never power on both copies with production connectivity unless the application design explicitly supports concurrent writers.
The wave is technically complete when:
Use this runbook to execute one approved VMware Relocate wave to STACKIT. It provides two complete tool paths: Cloudbase Coriolis and Hystax Acura. Select one path for the entire wave and retain the same tool, inventory identifiers, mappings, and evidence through test migration and final cutover.
The runbook assumes that applications remain VM-based. Architecture modernization, database replatforming, and application refactoring require separate plans and acceptance criteria.
Do not start replication until all entry criteria have passed:
Create one version-controlled control record for the wave. Include:
Run the procedure first with a low-risk pilot that represents the intended operating-system, disk, network, and application patterns. Promote the runbook to larger waves only after pilot findings are incorporated.
Select this complete path when Cloudbase Coriolis is the approved migration tool.
Select this complete path when Hystax Acura is the approved migration tool.
Start validation as soon as target instances are reachable. Record timestamps because the remaining rollback window is a technical constraint.
Rollback is safe only while data ownership remains clear. If the target has accepted writes, stop target processing and execute the approved reverse synchronization or reconciliation method before the source is restarted. Never power on both copies with production connectivity unless the application design explicitly supports concurrent writers.
The wave is technically complete when:
After accepted cutover, collect representative STACKIT runtime evidence and turn performance, stability, and cost findings into controlled infrastructure changes with rollback checkpoints.
Optimize starts when workloads run on STACKIT and real operating data is available. The module converts post-cutover observations into measurable improvements for performance, stability, and cost efficiency.
Optimize is not a one-time task. It is an iterative cycle that can overlap with early stabilization and post-cutover care.
Many right-sizing and tuning decisions are only reliable under real load patterns. After cutover, teams can use production telemetry to separate assumptions from actual behavior.
Optimization decisions should be based on runtime evidence, not assumptions. For practical implementation, combine workload telemetry, alerting, and controlled infrastructure changes.
For Replatform workloads on Kubernetes, optimization spans multiple layers and should be coordinated as one control loop.
Primary inputs
Cutover reports, incident trends, SLO measurements, telemetry baselines, and cost reports.
Optimization outputs
Prioritized improvement backlog, validated tuning changes, and updated runbook standards.
Governance outcome
Clear trade-off decisions between performance, resilience, and cost with documented ownership.
STACKIT
The sovereign European cloud provider behind the framework, delivering IaaS and PaaS from German and Austrian data centers with full digital independence.
Use this runbook after a relocated VM has passed cutover acceptance and produced representative telemetry on STACKIT. The objective is to correct initial compute and storage assumptions without trading cost reduction for instability or changing application architecture.
Initial migration sizing and post-cutover rightsizing are separate decisions. Keep the migration profile until target measurements cover normal demand, peak periods, batch processing, backups, and the workload’s known seasonal or month-end events.
Correlate infrastructure and application behavior instead of optimizing from one metric.
Exclude periods affected by migration copying, one-time cache warm-up, failed dependencies, or measurement gaps unless the same condition is expected during normal operation. Preserve excluded periods and the reason for exclusion in the evidence record.
Classify the finding before changing capacity:
Change one dominant dimension at a time where practical. This keeps the result attributable and makes rollback decisions defensible.
By changing the machine-type the server will have a short downtime.
Resizing a server
$ stackit server resize <SERVER_ID> --machine-type <TYPE_NAME>
$ stackit server resize xxxxxxxx-xxx-xxxx-xxxx-xxxxxxxxxxxx --machine-type g2i.4<TYPE_NAME> should be replaced with the name of the new machine-type that should be used<SERVER_ID> should be replaced with the ID of the server you want to resizeAfter the resize it could be necessary to do changes in your operating system.
This section is copied from the STACKIT docs automatically, several times a day. It cannot be changed here. Changes belong in the STACKIT docs.
Use the portal, CLI, API, or infrastructure-as-code workflow owned by the workload, but do not mix control paths without reconciling state afterward.
A managed STACKIT volume can only be updated to a larger size. Capacity growth does not by itself change the selected performance class because class limits are independent of volume size.
Volume shrinking requires a new smaller volume and a data migration. Do not attempt to reduce the managed volume and assume the guest file system will make that operation safe.
Run the following command to resize a volume:
stackit beta volume resize <VOLUME_ID> --size <DRIVE_SIZE> --project-id <PROJECT_ID>Replace the placeholders in the command as follows:
<PROJECT_ID>: Your STACKIT Project ID<VOLUME_ID>: The ID of the Volume you want to resize<DRIVE_SIZE>: The new size of the Volume in gigabytes (GB)After resizing the volume, you may need to perform additional steps to utilize the extra disk space, depending on your operating system.
These steps typically involve extending the file system to recognize and use the newly allocated space.
This section is copied from the STACKIT docs automatically, several times a day. It cannot be changed here. Changes belong in the STACKIT docs.
Select the new performance class from measured IOPS and throughput requirements independently. The chosen class must satisfy both limits and include backup, recovery, burst, and growth headroom.
The following table lists currently available performance classes for the EU01 region:
| Performance class | Name | Max. IOPS | Max. Throughput (MB/s) |
|---|---|---|---|
| Performance class 0 | storage_premium_perf0 | 120 | 25 |
| Performance class 1 | storage_premium_perf1 | 500 | 50 |
| Performance class 2 | storage_premium_perf2 | 1000 | 100 |
| Performance class 4 | storage_premium_perf4 | 2000 | 150 |
| Performance class 6 | storage_premium_perf6 | 5000 | 200 |
| Performance class 8 | storage_premium_perf8 | 10000 | 250 |
| Performance class 10 | storage_premium_perf10 | 15000 | 300 |
| Performance class 12 | storage_premium_perf12 | 20000 | 350 |
| Performance class 13 | storage_premium_perf13 | 20000 | 700 |
| Performance class 14 | storage_premium_perf14 | 25000 | 400 |
| Performance class 15 | storage_premium_perf15 | 25000 | 800 |
| Performance class 16 | storage_premium_perf16 | 30000 | 450 |
| Performance class 17 | storage_premium_perf17 | 30000 | 900 |
| Performance class 18 | storage_premium_perf18 | 35000 | 500 |
| Performance class 19 | storage_premium_perf19 | 35000 | 1000 |
| Performance class 20 | storage_premium_perf20 | 40000 | 550 |
| Performance class 21 | storage_premium_perf21 | 40000 | 1100 |
| Performance class 29 | storage_premium_perf29 | 60000 | 1500 |
IOPS - Input/Output Operations per second
Throughput - Throughput in Megabytes per second
Thus, the classes used can be distinguished in detail based on the naming. Example: “Block Storage Premium - Performance Class 2” corresponds to SSD hard disks with max. 1000 IOPS and max. 100 Mbyte/s throughput.
This section is copied from the STACKIT docs automatically, several times a day. It cannot be changed here. Changes belong in the STACKIT docs.
Treat a performance-class change as a replacement workflow unless the current API and provisioning plan explicitly prove an in-place operation for that resource. With Terraform-managed volumes, inspect the plan for replacement before approval.
For boot volumes or stateful systems that cannot safely move at file level, use a tested snapshot, image, block-copy, or application-native migration procedure. Define the new boot and rollback path before the maintenance window.
Accept the change only when all workload-specific criteria pass:
For a failed machine-type change, restore the previous supported type through the same control path and repeat the boot and application checks. For a failed storage migration, stop target writes and restore the previous attachment or data source according to the consistency plan. Preserve all evidence even when the candidate is rejected.
Record the observation period, excluded intervals, metric queries, current and candidate profiles, headroom, expected cost effect, infrastructure plan, maintenance timeline, test results, decision, and rollback outcome. Schedule another review when workload demand, application architecture, retention, or growth assumptions materially change.