Complete baseline
Create a reliable application and infrastructure baseline that goes beyond pure quantities.
Last updated on
Guided end-to-end expedition through the STACKIT Migration Framework, from discovery and R-strategy decisions to factory waves, cutover, and day-2 operations.
Every migration decision downstream is only as good as the discovery input. Start by consolidating inventory, dependencies, utilization, and operational constraints into a migration-ready evidence base.
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.
Before choosing how to migrate, make transparent what is migrated. Use the classification dimensions to profile migration object, state, criticality, connectivity, downtime, and compliance per request.
R-strategy explains how migration is run. This page adds the workload lens and clarifies what is migrated. It is intentionally solution-neutral and focuses on transparent categorization, feasibility boundaries, and decision context.
Application runtime migration
Migration of complete application runtimes across VM and platform targets, including dependencies, cutover behavior, and operating handover.
Container platform migration
Migration between Kubernetes platforms with separate treatment of stateless and stateful workload profiles.
Data migration
Migration of large file volumes, databases, and data platform workloads with explicit consistency, performance, and integrity boundaries.
Identity and access migration
Migration of IAM foundations such as SSO, federation, roles, service accounts, and permission models.
Network and connectivity migration
Migration of routing, DNS, firewall rules, segmentation, private connectivity, and cross-environment communication paths.
Integration and API migration
Migration of API contracts, messaging, eventing, and integration endpoints across source and target estates.
Security and compliance controls migration
Migration of controls, evidence chains, key material, and audit requirements required for regulated production readiness.
Operations and observability migration
Migration of monitoring, alerting, logging, incident workflows, and service-level operations baselines.
Delivery and resilience migration
Migration of CI/CD pipelines, automation controls, backup chains, and disaster recovery capabilities.
STACKIT supports migration paths from AWS and Azure across application runtimes, data, network, identity, operations, and delivery. Select the target path for each workload according to its architecture, data profile, availability requirements, and operating model.
| Use case | Migration capability to STACKIT |
|---|---|
| Landing zone migration | AWS account and Azure subscription structures, network segmentation, identity and access controls, security policies, logging, monitoring, and governance guardrails are mapped to a STACKIT landing zone before application migration waves begin. The STACKIT Landing Zone Accelerator provides a reusable, automated foundation for implementing these controls consistently at scale. |
| VM-based applications | AWS EC2 and Azure VM workloads can be migrated to STACKIT Compute Engine, including operating systems, middleware, applications, configurations, and connected data. |
| VM estates with high availability requirements | Tool-assisted Relocate migration supports continuous replication, controlled validation, and planned cutover for large VM landscapes and repeatable migration waves. |
| Container and Kubernetes workloads | AWS EKS, Azure AKS, and self-managed Kubernetes clusters can move to STACKIT Kubernetes Engine. Stateless applications can be redeployed declaratively; stateful applications can use backup and restore or data replication with staged traffic migration. |
| PaaS and web applications | Applications using common runtimes such as Java, Node.js, Python, or Ruby can run on STACKIT Cloud Foundry when they fit the platform model. |
| Databases and data platforms | Self-managed and cloud-based databases can move to STACKIT Managed Database Services or initially to Compute Engine instances, using export/import, replication, and controlled cutover procedures. |
| Object and file storage | AWS S3 and Azure Blob Storage can move to STACKIT Object Storage. AWS EFS, Azure Files, and NFS-based file systems can move to STACKIT File Storage through initial copy, delta synchronization, and final consistency cutover. |
| Identity and access management | AWS IAM, Azure RBAC, and Microsoft Entra-based access models can be mapped to STACKIT roles, permissions, service accounts, and federation. |
| Network, DNS, and connectivity | AWS VPCs and Azure VNets can be mapped to STACKIT Network Areas, routing, security groups, load balancing, DNS, and site-to-site VPN connectivity. |
| Integration, messaging, and APIs | APIs, integration endpoints, and messaging workloads can be migrated with their contracts, security mechanisms, and cutover sequence. STACKIT RabbitMQ supports AMQP- and RabbitMQ-based patterns. |
| Security, compliance, and operations | Secrets, keys, audit requirements, logging, monitoring, alerting, backup, and operational processes are established as part of the target environment before go-live. |
| CI/CD and delivery | Deployment pipelines, infrastructure automation, and source control can move to STACKIT Git, Terraform or OpenTofu, CLI, APIs, and suitable image-management processes. |
For the service-by-service target mapping, see AWS and Azure Target Service Mappings.
Use these dimensions to categorize requests before selecting implementation variants:
Mandatory boundaries:
Mandatory boundaries:
Mandatory boundaries:
Mandatory boundaries:
Mandatory boundaries:
Mandatory boundaries:
Mandatory boundaries:
Mandatory boundaries:
Mandatory boundaries:
The implementation details are maintained in dedicated asset pages. This keeps the overview page category-focused and allows concrete templates to evolve independently.


With workload profiles in hand, route each application into its migration path. The decision criteria make explicit when Relocate, Rehost, Replatform, Repurchase, Refactor, or Retain/Retire is the right call.
The Design module creates the executable migration design for each application identified in Discovery. It is not a generic architecture exercise. The target is a concrete design package that a migration factory can run with predictable quality.
Target design per application
Defines workload architecture, service choices, integration approach, and constraints in the STACKIT context.
R-strategy-backed decision record
Documents the selected migration strategy and why alternatives were rejected.
Factory-ready migration runbook
Provides a step-by-step procedure for run teams, including rollback and validation checkpoints.
Handover package
Delivers all required inputs to Migration Factory Setup, Landing Zone, and Migration Plan.
These modules are connected, but they have different responsibilities:
Design (this module)
Decides target design and migration strategy per application and creates executable runbooks.
Migration Factory Setup
Enables delivery by selecting and preparing the right factory model, partner setup, and tooling stack.
Landing Zone
Provides the platform foundation and governance controls that target designs must comply with.
Migration Plan
Converts completed designs into realistic waves, sequencing, dependencies, and delivery milestones.
The R-strategy model is the core decision framework in this module. For each application, the selected R-strategy must be justified with architecture, business, risk, and operability evidence.
The diagram is not only an orientation aid. It is the shared decision and handover spine across Design, Landing Zones, Migration Factory Setup, and Migration Plan.
Consolidate inventory, dependency map, risk profile, and non-functional constraints before strategy branching starts.
Prioritize workload candidates by criticality, effort, and wave feasibility to focus design capacity where delivery risk is highest.
Select the right R-strategy per workload and route into the dedicated strategy page with explicit rationale and alternatives considered.
Run a shared quality gate across architecture, security/compliance, runbook quality, and operating readiness before approving wave execution.
Prepare controlled handover into migration execution with release readiness, communication model, and clearly assigned ownership for wave run and escalation paths.
Finalize production handover criteria and Day-1 operating baseline so migrated workloads enter run operations with clear accountability and evidence.
At minimum, each application package should include:
Use a dedicated pattern page to define a concrete target architecture before selecting the migration runbook.
In addition to R-strategy, use the workload lens to classify what is migrated and to select feasible implementation variants with explicit boundary conditions.
AI-assisted design assets support architects in turning application requirements, source-service context, and R-strategy options into reviewable target-design proposals. Use their outputs as input for architecture, security, platform, and business validation before approving a migration path.










Migration planning quality depends on design quality. Wave sequencing, factory throughput, and delivery risk are directly influenced by how precise the target designs and run books are. In practice, incomplete designs lead to unstable waves and avoidable delivery delays.
STACKIT
The sovereign European cloud provider behind the framework, delivering IaaS and PaaS from German and Austrian data centers with full digital independence.
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.Security and compliance is a parallel stream, not a final gate. Map the control topics early so evidence pipelines, sovereignty requirements, and zero-trust decisions land in the design instead of the audit.
Scale from single moves to governed waves. The factory operating model defines intake, roles, throughput, and quality gates so migration capacity grows across teams without losing control.
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:
Execute approved waves through the core modules of the Migrate phase, with clear boundaries between migration runs, optimization, and the operating-model handover.
Migrate is the phase where migration happens for R-strategy paths that involve a technical move. It uses a factory-based delivery model to move workloads in controlled waves from source environments to STACKIT target environments.
The phase is runbook-driven and focuses on repeatability, cutover quality, and stable handover into operations.
Migrate does not look the same for every R-strategy decision. The phase focus depends on the selected path per workload:
Migrate starts when the first migration waves are approved and their runbooks are ready.
At program level, the phase ends when all planned workloads are migrated, modernized, or formally retained/retired according to scope decisions.
Migrate is where migration value is realized in production. Delivery quality in this phase directly impacts business continuity, user trust, and long-term operating efficiency.
Controlled cutovers
Standardized runbooks and wave governance reduce outage and rollback risks.
Factory scale
Reusable migration patterns increase throughput while preserving quality.
Measured validation
Technical and functional checks confirm target-state stability after each wave.
Continuous improvement
Lessons learned are fed back into upcoming waves, optimize cycles, and modernization paths.
At the end of Migrate, the program should have:
Migrate includes immediate post-cutover stabilization and optimization loops. Long-term service operations, life cycle governance, and sustained value realization are anchored in the subsequent Run phase.
STACKIT
The sovereign European cloud provider behind the framework, delivering IaaS and PaaS from German and Austrian data centers with full digital independence.
| Checkpoint | Owner | Result | Evidence |
|---|---|---|---|
| Target runtime ready | Pass/Fail | ||
| Data sync validated | Pass/Fail | ||
| Traffic switch completed | Pass/Fail | ||
| Stabilization accepted | Pass/Fail |
Directly after cutover, run a focused Hypercare window: heightened monitoring, fast remediation, and explicit exit criteria close the immediate post-migration risks before steady-state operations.
Hypercare is the controlled stabilization period directly after migration cutover. It keeps migration and project teams close to operations so unresolved defects can be fixed early with low risk.
This module forms the explicit bridge from Migrate to Run.
Primary inputs
Cutover records, migration runbooks, open issue logs, SLO baselines, and incident patterns.
Hypercare outputs
Stabilized services, closed critical defects, completed observability baseline, and handover-ready documentation.
Exit result
Approved transition into Operate and regular run governance.
Close the expedition by connecting the stabilized workload to the long-term coordination layer: adoption tracking, stakeholder alignment, and escalation routing through STACKIT Customer Success.
Customer Success is an optional module for programs that want a dedicated coordination role for adoption and outcome realization in Run.
A Customer Success Manager can act as central contact point between customer stakeholders, platform teams, support channels, and operating governance.
At STACKIT, Customer Success Managers proactively support customers in maximizing value and outcomes to ensure long-term satisfaction and retention.
Core responsibilities include guiding customers across the full customer journey, analyzing customer needs, solving issues proactively, and identifying growth potential to develop the business relationship strategically.
Customer Success serves as the customer contact on a meta level and as interface to all other STACKIT domains.
Through regular feedback loops and proactive communication, Customer Success ensures satisfaction while also acting as an escalation instance toward top-level management for strategic alignment.
Outcome dashboards
Shared visibility across reliability, adoption, and business-relevant service KPIs.
Coordinated action backlog
Prioritized follow-up actions across support, operations, and service improvement.
Stakeholder alignment
Clear communication lines and decision cadence for run-related evolution topics.