Zum Inhalt springen
Beta

Rehost to STACKIT: Überblick zu Spring Boot und PostgreSQL

Zuletzt aktualisiert am

Stackit LogoStackit Logo
STACKIT

Rehost to STACKIT: Überblick zu Spring Boot und PostgreSQL

Planen Sie den Rehost von Spring Boot und PostgreSQL nach STACKIT: Discovery, VM-Design, Landing Zone, Migrationsfreigaben, Betriebsübergabe und Optimierung.

PLAN

Spring-Boot-Rehost-Journey

Beginnen Sie mit dem vollständigen Migration Framework, damit das Publikum Workload-Bewertung, Rehost-Design, kontrollierte Migration, Stabilisierung und Optimierung als durchgängige Journey einordnen kann.

STACKIT Cloud Migration Framework Journey across the four phases Assess, Design and Mobilize, Migrate, and Run with their key modules. Assess PHASE 1 Assess Design & Mobilize PHASE 2 Design & Mobilize Migrate PHASE 3 Migrate Run PHASE 4 Run PLANUNG Discovery Discovery Apps und Abhängigkeiten erfassen. Design Design Ziel-Patterns definieren. Migration Plan Migration Plan Wellen und Reihenfolge planen. Rapid Discovery Rapid Discovery Workloads inventarisieren für eine frühe Scope- und Kosten-Baseline. TCO-Report TCO-Report Migrationskosten modellieren für Investitions- und Planungsentscheidungen. Readiness Assessment Readiness Assessment Technologie- und Organisationslücken vor dem Detail-Design bewerten. Deepdive-Workshop Deepdive-Workshop STACKIT-Services und Plattform-Optionen für das Zieldesign erkunden. Briefings & Workshops Briefings & Workshops Stakeholder zu Zielen, Scope und Migrations- Erwartungen ausrichten. Business Case Business Case Wert, Aufwand und Investition pro Applikation vergleichen. Enablement ENABLEMENT Center of Excellence Trainings & Learning Paths Documentation & Reference Landing Zone Landing Zone Sichere Plattform-Basis für migrierte Workloads aufbauen. Security & Compliance Security & Compliance Security- und Compliance- Kontrollen für Migration und Betrieb definieren. Target Operating Model Target Operating Model Rollen, Prozesse und Verantwortung für den Zielbetrieb definieren. Migration Factory Setup Migration Factory Setup Teams, Tools und Runbooks für die skalierbare Umsetzung vorbereiten. Migrate MIGRATE Relocate Relocate Rehost Rehost Replatform Replatform Optimize Optimize Sizing, Performance und Kosten nach dem Cutover optimieren. Repurchase Repurchase SaaS-Optionen bewerten, wenn ein Ersatz mehr Wert liefert. Refactor Refactor Strategische Workloads für Cloud-native Skalierbarkeit umbauen. Operating Model Handover Operating Model Handover TOM-Validierung und Ownership-Übergabe Hypercare Hypercare Stabilisierungsphase direkt nach dem Cutover. Operate Operate Stabiler Cloud-Regelbetrieb. Support Support Incidents und Service Requests über alle Support-Verantwortungen steuern. Customer Success Customer Success Adoption, Ergebnisse und Wertrealisierung mit Stakeholdern verfolgen.
STACKIT Migration Framework von Assess über Design and Mobilize und Migrate bis Run
PLAN

Rapid Discovery

Erstellen Sie eine kompakte Workload-Baseline für Spring-Boot-Laufzeit, PostgreSQL-Datenpfad, Abhängigkeiten und erste Kapazitätssignale. Qualifizieren Sie damit die Migrationsabsicht, machen Sie Unbekannte sichtbar und definieren Sie, was die detaillierte Discovery vor dem Zieldesign validieren muss; behandeln Sie frühe Annahmen nicht als bestätigte Eingaben.

AssessRapid DiscoveryÜbersicht In 4 Trails
Rapid-Discovery-Prozess Eingabedaten werden mit Rapid-Discovery-Tooling verarbeitet und in entscheidungsrelevante Ergebnisse für frühe Migrationsentscheidungen überführt. EingabedatenCMDB- und Inventar-ExporteAsset-Listen, Hosts und Plattform-BasisdatenHypervisor- und Cloud-ReportsNutzung, Footprint und AuslastungssignalePlattform-ListenKubernetes-, Datenbank- und OS-BaselinesRapid-Discovery-ToolingDatensätze aufnehmen und normalisierenQuellen in ein einheitliches Schema überführenAssets klassifizieren und aggregierenNach Technologie und Menge konsolidierenAnnahmen anwendenKonfidenzniveaus und WachstumsfaktorenOutput-InformationenKonsolidierte Asset-BaselineFaktenbasis für Umfang und PlanungInitiales STACKIT-SizingErste KapazitätsannahmenPreisindikation und TCO-KorridorFrühe Kostenorientierung für Entscheidungen
Rapid-Discovery-Prozess von der Erfassung der Quelldaten bis zur entscheidungsreifen Migrations-Baseline

Rapid Discovery liefert in kurzer Zeit eine schnelle, automatisierte Ausgangsbasis über bestehende Umgebungen in On-Premises- und Cloud-Landschaften. Der Fokus liegt auf der quantitativen Erfassung des IT-Portfolios, damit frühe Migrations- und kommerzielle Entscheidungen fundiert getroffen werden können.

In dieser Phase sind Mengen und Verteilung wichtiger als die detaillierten Abhängigkeiten einzelner Anwendungen.

Rapid Discovery erstellt ein initiales Inventar von Infrastruktur- und Plattform-Assets, unter anderem:

Compute-Basis

Anzahl virtueller Maschinen und Hosts.

Storage-Basis

Speicherkapazitäten und Storage-Klassen.

Betriebssystem-Landschaft

Betriebssystemfamilien und Versionen.

Kubernetes-Basis

Anzahl und Basiseigenschaften von Kubernetes-Clustern.

Datenbank-Inventar

Datenbank-Engines, Größen und Instanzanzahlen.

Diese Kennzahlen bilden die erste belastbare Sicht auf den Umfang der Migration.

Die Ergebnisse aus Rapid Discovery sind eine zentrale Grundlage für:

  • Frühe Preisindikation: Eine erste STACKIT-nahe Kostenindikation erzeugen.
  • Erste TCO-Sicht: Einen initialen TCO-Korridor ableiten.
  • Kapazitätsannahmen: Erste Annahmen zur Zielkapazität und Landing Zone definieren.

Dadurch können sich Programm-Stakeholder frühzeitig auf eine finanzielle Richtung und eine technische Ausgangsbasis einigen.

Rapid Discovery ist bewusst keine vollständige Analyse auf Applikationsebene. Es umfasst weder tiefgehende Interviews mit allen Application Ownern noch eine vollständige Abbildung aller Laufzeitabhängigkeiten.

Diese Tiefe wird in der anschließenden Discovery-Phase erreicht: Dort werden Infrastruktur-Exporte durch gezielte Assessments und Informationen der Application Owner ergänzt, um ein vollständiges Applikationsbild zu erstellen.

Typische Eingabequellen sind Exporte wie Tabellen oder ähnliche Inventardateien aus bestehenden Umgebungen. Die Phase kann durch KI-gestützte Tools beschleunigt werden, die aus hochgeladenen Datensätzen die benötigten Baseline-Kennzahlen extrahieren.

Rapid Discovery ist damit eine wichtige Voraussetzung für eine strukturierte Kostenindikation sowie für die Entwicklung einer realistischen Strategie für die Cloud-Zielumgebung.

KI-gestützte Discovery-Assets können helfen, Workload-Beschreibungen und Daten aus Inventaren in erste Assessment- und Design-Artefakte für die fachliche Prüfung zu überführen.

Asset-Titel
Framework
Asset-Typ

Das folgende Diagramm zeigt den Kern von Rapid Discovery: Rohdaten aus Quellsystemen werden durch Tooling in eine entscheidungsreife Baseline überführt, die frühe Preisindikationen und erste Sizing-Annahmen ermöglicht.

Seitlich wischen, um das ganze Diagramm zu sehen
Rapid-Discovery-Prozess Eingabedaten werden mit Rapid-Discovery-Tooling verarbeitet und in entscheidungsrelevante Ergebnisse für frühe Migrationsentscheidungen überführt. EingabedatenCMDB- und Inventar-ExporteAsset-Listen, Hosts und Plattform-BasisdatenHypervisor- und Cloud-ReportsNutzung, Footprint und AuslastungssignalePlattform-ListenKubernetes-, Datenbank- und OS-BaselinesRapid-Discovery-ToolingDatensätze aufnehmen und normalisierenQuellen in ein einheitliches Schema überführenAssets klassifizieren und aggregierenNach Technologie und Menge konsolidierenAnnahmen anwendenKonfidenzniveaus und WachstumsfaktorenOutput-InformationenKonsolidierte Asset-BaselineFaktenbasis für Umfang und PlanungInitiales STACKIT-SizingErste KapazitätsannahmenPreisindikation und TCO-KorridorFrühe Kostenorientierung für Entscheidungen

Eine belastbare Rapid Discovery folgt typischerweise einem klaren Ablauf:

  1. Datensammlung aus vorhandenen Quellen (CMDB, Hypervisor-Exporte, Cloud-Inventare, Monitoring, Storage-Reports, Datenbanklisten).
  2. Standardisierung und Konsolidierung der Daten in ein einheitliches Schema.
  3. Kategorisierung nach Workload-Typen und technischen Merkmalen.
  4. Aggregation auf Management-Ebene für schnelle Entscheidungsfindung.
  5. Erste Plausibilisierung mit Fachverantwortlichen.

Ziel ist kein perfektes Zielbild, sondern ein verlässlicher Startpunkt mit ausreichender Genauigkeit für frühe Entscheidungen.

Die Aussagekraft der Ergebnisse hängt stark von der Datenqualität ab. Typische Herausforderungen sind Dubletten, veraltete Einträge, inkonsistente Benennungen und fehlende Leistungsdaten.

Empfehlung für diese Phase:

  • Annahmen dokumentieren: Wachstumsraten, Konsolidierungsfaktoren und Reserven transparent halten.
  • Unklare Datensätze markieren: Unsichere Datensätze kennzeichnen statt früh zu verwerfen.
  • Konfidenzniveau vergeben: Ergebnisse als hoch, mittel oder niedrig einstufen.

So bleibt die Kostenindikation nachvollziehbar und später in der Discovery-Phase gezielt verfeinerbar.

Rapid Discovery liefert die Mengengerüste für erste Kostenmodelle. Dafür werden die erfassten Bestände in STACKIT-nahe Verbrauchseinheiten überführt, zum Beispiel:

  • Compute-Sizing: vCPU und RAM als Grundlage nutzen.
  • Storage-Klassen: Storage-Kapazität und I/O-Profile verwenden.
  • Managed Services: Datenbanktyp und Größenklassen zuordnen.
  • Plattformkosten: Cluster- und Node-Anzahlen einbeziehen.

In Kombination mit Betriebsannahmen (Betriebszeiten, Verfügbarkeit, Wachstumspfad) entsteht daraus eine belastbare Preisindikation und ein erster TCO-Korridor.

Am Ende der Rapid-Discovery-Phase sollten mindestens folgende Ergebnisse vorliegen:

Konsolidierte Asset-Baseline

Mengen je Technologiebereich liegen konsolidiert vor.

Sinnvolle Segmentierung

Assets sind nach Kritikalität, Umgebung und Modernisierungsbedarf segmentiert.

Nachvollziehbare Annahmen

Annahmen und erkannte Datenlücken sind transparent dokumentiert.

Erste Kostenindikation

Eine erste Kostenbandbreite mit den wichtigsten Treibern liegt vor.

Priorisierte Kandidaten

Eine priorisierte Liste für die vertiefende Discovery-Phase ist verfügbar.

Diese Ergebnisse bilden die Arbeitsgrundlage für Architektur, Planung und Governance der nächsten Assess-Schritte.

Häufige Risiken in Rapid Discovery sind zu grobe Kategorisierung, unvollständige Quellsysteme oder eine Überschätzung der Datenreife.

Bewährte Gegenmaßnahmen:

  • Datenquellen kombinieren: Mehrere Quellen nutzen statt nur einer Quelle.
  • Ausreißer prüfen: Sehr große oder sehr alte Systeme systematisch bewerten.
  • Perspektiven abstimmen: Finanz- und Technikblick gemeinsam ausrichten, um Fehlinterpretationen zu vermeiden.

Damit bleibt die Phase schnell, ohne an Entscheidungsqualität zu verlieren.

Der Übergang ist erreicht, wenn ein belastbarer Überblick über Mengen, Technologietypen und Kostenhebel vorliegt und die offenen Punkte klar benannt sind.

In der Discovery-Phase werden diese offenen Punkte gezielt geschlossen, unter anderem durch Interviews mit Application Ownern, vertiefende Assessments und die Analyse von Abhängigkeiten, Compliance- und Betriebsanforderungen.

STEP

Discovery

Kombinieren Sie Nachweise der Application Owner mit technischen Messungen zu Abhängigkeiten, Java- und PostgreSQL-Versionen, Service-Verhalten, Datenmenge und Änderungsrate, Betriebsbedingungen, Recovery-Zielen und repräsentativer Ressourcennutzung. Bestätigen Sie Kompatibilität, Migrationsbedingungen und Kapazitäts-Baseline vor dem Design.

Design and mobilizeDiscoveryÜbersicht In 4 Trails
Discovery von Quelle zur Entscheidung Discovery trennt technische und menschliche Eingaben, führt technische und menschlich angereicherte Analysen aus und übergibt beide Ergebnisströme an nachgelagerte Module. Discovery-EingabenTechnisches und automatisiertes DiscoveryInfrastruktur-InventarCMDB, VM, Datenbanken, Middleware, StorageLaufzeit- und NutzungsdatenCPU, RAM, I/O, Netzwerk und SaisonalitätIntegrations- und Fluss-SignaleNetzwerkpfade, APIs, Identität, DatenflüsseAssessment-getriebene menschliche EingabenSecurity- und Compliance-KontextDatenklassen, Kontrollen, Audit-AnforderungenOwner- und Business-InputKritikalität, Release-Fenster, Lifecycle-PläneDiscovery-Analyse-ToolingTechnikbasierte AnalysenNormalisieren und korrelierenDatensätze und technische Identitäten zusammenführenAbhängigkeiten abbildenKommunikation und Kopplung ableitenNutzungs- und Sizing-AnalyseBelastbare Lastkorridore ableitenVorläufige SegmentierungNach Stack und Umgebung gruppierenHuman-driven Analysen (Application-Owner-Input)Kritikalität und Risiko kalibrierenBusiness-Impact und Restriktionen validierenWellenfähigkeit und ReihenfolgeAbhängigkeiten mit Release-Fenstern abstimmenAnnahmen- und Gap-RegisterOffene Punkte und Reifegrad dokumentierenÜbergabe-ErgebnisseTool-basierte ErgebnisseDesignOptionen für Zielarchitektur und belastbare Sizing-DatenLanding ZonePlattform-Guidelines und Anforderungen an Account-StrukturenMigrationsplanWellen-Backlog, Reihenfolge und Cutover-FensterAssessment-validierte ErgebnisseSecurity und ComplianceControl-Bedarfe, Datenklassen und Remediation-PunkteOperating ModelRollenbild, Ownership-Grenzen und ProzessauswirkungenBusiness CaseValue-/Risikoprofil und Modernisierungsprioritäten
Discovery-Analyse aus technischen Nachweisen und Erkenntnissen der Application Owner

Discovery ist eines der ersten und wichtigsten Module in der Phase Design and Mobilize. Es verfeinert die Ergebnisse aus Rapid Discovery und liefert die notwendige Tiefe, um Entscheidungen zur Architektur und die Reihenfolge der Migration belastbar zu planen.

Das primäre Ziel ist ein realistisches, auf Fakten gestütztes Verständnis der bestehenden IT-Landschaft, der Business-Prioritäten und der organisatorischen Bereitschaft, bevor Zielbild und Migrationsplan im Detail festgelegt werden.

Vollständige Basis

Eine belastbare Sicht auf Anwendungen und Infrastruktur schaffen, die über reine Mengen hinausgeht.

Transparente Abhängigkeiten

Technische und prozessuale Abhängigkeiten identifizieren, um versteckte Migrationsblocker zu vermeiden.

Business-Abgleich

Technische Erkenntnisse mit Kritikalität, Zeitrahmen und Risikoprofil des Business verknüpfen.

Planungsreife

Eine entscheidungsreife Grundlage für Zielbild und Migrationswellen erstellen.

Inventarisierung

Vollständige Erfassung von Servern, virtuellen Maschinen, Datenbanken, Middleware und Anwendungen.

Abhängigkeitsanalyse

Abbildung von Kommunikationspfaden und Laufzeitabhängigkeiten zwischen Systemen und Anwendungen.

Ressourcennutzung

Analyse von CPU-, RAM-, Storage- und I/O-Verhalten über einen repräsentativen Zeitraum.

Betriebskontext

Erhebung von Anforderungen zu Backup, Patch, SLA, Compliance und betrieblichen Randbedingungen.

Input der Application Owner

Strukturierte Fragebögen und Interviews zur Validierung von Annahmen und zum Schließen von Datenlücken.

In der Praxis wird Discovery häufig gemeinsam mit STACKIT Partnern durchgeführt. Partner nutzen dabei meist eigene Tool-Landschaften, um technische Daten zu sammeln, zu normalisieren und in einer zentralen Sammlung zu konsolidieren.

Häufig werden aus diesen Tools heraus auch gezielte Rückfragen an Application Owner gestellt, um technische Befunde um Business und Betrieb zu ergänzen.

Dieses kombinierte Modell erhöht Geschwindigkeit und Konsistenz und verankert Stakeholder-Validierung direkt im Prozess.

Discovery kombiniert bewusst zwei sich ergänzende Evidence-Streams:

  • Technisch ermittelte Evidenz: Tooling-basierte Befunde aus Inventar-Exporten und Abhängigkeits-Signalen. Dieser Stream liefert Skalierbarkeit, Konsistenz und Wiederholbarkeit.
  • Application-Owner-Anreicherung (human-driven): Validierte Angaben zu Business-Kritikalität, Lifecycle-Absicht, Release-Restriktionen und betrieblicher Realität aus Interviews und Fragebögen.

Keiner der beiden Streams ist alleine ausreichend. Technische Evidenz ohne Owner-Kontext kann kritische Workloads falsch einordnen. Human-Input ohne technische Grundlage kann Kopplungen und Kapazitätsrisiken verdecken. Die Qualität von Discovery entsteht aus der Zusammenführung beider Streams in eine belastbare Basis für Entscheidungen.

Die folgende Darstellung zeigt, wie Discovery technische und menschliche Eingaben in entscheidungsreife Ergebnisse für die nachgelagerten Module überführt.

Seitlich wischen, um das ganze Diagramm zu sehen
Discovery von Quelle zur Entscheidung Discovery trennt technische und menschliche Eingaben, führt technische und menschlich angereicherte Analysen aus und übergibt beide Ergebnisströme an nachgelagerte Module. Discovery-EingabenTechnisches und automatisiertes DiscoveryInfrastruktur-InventarCMDB, VM, Datenbanken, Middleware, StorageLaufzeit- und NutzungsdatenCPU, RAM, I/O, Netzwerk und SaisonalitätIntegrations- und Fluss-SignaleNetzwerkpfade, APIs, Identität, DatenflüsseAssessment-getriebene menschliche EingabenSecurity- und Compliance-KontextDatenklassen, Kontrollen, Audit-AnforderungenOwner- und Business-InputKritikalität, Release-Fenster, Lifecycle-PläneDiscovery-Analyse-ToolingTechnikbasierte AnalysenNormalisieren und korrelierenDatensätze und technische Identitäten zusammenführenAbhängigkeiten abbildenKommunikation und Kopplung ableitenNutzungs- und Sizing-AnalyseBelastbare Lastkorridore ableitenVorläufige SegmentierungNach Stack und Umgebung gruppierenHuman-driven Analysen (Application-Owner-Input)Kritikalität und Risiko kalibrierenBusiness-Impact und Restriktionen validierenWellenfähigkeit und ReihenfolgeAbhängigkeiten mit Release-Fenstern abstimmenAnnahmen- und Gap-RegisterOffene Punkte und Reifegrad dokumentierenÜbergabe-ErgebnisseTool-basierte ErgebnisseDesignOptionen für Zielarchitektur und belastbare Sizing-DatenLanding ZonePlattform-Guidelines und Anforderungen an Account-StrukturenMigrationsplanWellen-Backlog, Reihenfolge und Cutover-FensterAssessment-validierte ErgebnisseSecurity und ComplianceControl-Bedarfe, Datenklassen und Remediation-PunkteOperating ModelRollenbild, Ownership-Grenzen und ProzessauswirkungenBusiness CaseValue-/Risikoprofil und Modernisierungsprioritäten

Im Discovery werden typischerweise die folgenden Analyse-Muster angewendet:

  • Daten normalisieren: Heterogene Exporte in ein konsistentes, auf Anwendungen ausgerichtetes Modell überführen.
  • Abhängigkeiten abbilden: Kommunikation, Datenaustausch und Kopplungen erkennen.
  • Kritikalitäts- und Risiko-Bewertung: Business-Impact, Ausfall-Domänen und Compliance-Exposition bewerten.
  • Analyse der Nutzung: Daten zu CPU, RAM und Storage für Right-Sizing und die Planung der Zielumgebung belastbar ableiten.
  • Segmentierung: Anwendungen nach Reifegrad, Restriktionen und Strategie-Fit gruppieren.
  • Wellen-Simulation: Move Groups und Optionen für die Reihenfolge unter Abhängigkeitsrestriktionen modellieren.
  • Gap- und Annahmen-Tracking: Offene Punkte transparent mit einer Einschätzung führen.

Diese Analysen bilden die technische Grundlage. Der human-driven Stream validiert, priorisiert und ordnet diese Befunde für umsetzbare Migrationsentscheidungen ein.

KI-gestützte Discovery-Assets können Workload-Eingaben, Service-Mapping, Readiness-Befunde und R-Strategie-Signale strukturieren, bevor Architekten die Discovery-Baseline validieren.

Asset-Titel
Framework
Asset-Typ

  1. Quelldaten aus CMDB, Hypervisor, Cloud-Inventaren, Monitoring und Exportdateien zusammenführen.
  2. Datensätze normalisieren und in ein gemeinsames, applikationsorientiertes Modell überführen.
  3. Abhängigkeiten erfassen und validieren (Netzwerk, Daten, Identität, Integrationen und Batch-Flows).
  4. Erkenntnisse mit Input der Owner zu Kritikalität, Lifecycle, Restriktionen und Migrationsfähigkeit anreichern.
  5. Workloads für Migrationsstrategie-Optionen und Wellenplanung klassifizieren.
  6. Ergebnisse mit Architektur, Security, Plattform und Business-Stakeholdern abstimmen.
  • Risiko der Migration reduzieren: Frühe Sichtbarkeit auf verdeckte Abhängigkeiten senkt Ausfall- und Rollback-Risiken.
  • Planung der Wellen verbessern: Workloads lassen sich realistisch nach Kopplung, Kritikalität und Reifegrad gruppieren.
  • Falsche Dimensionierung vermeiden: Gemessene Nutzung ersetzt Annahmen in der Zielkapazitätsplanung.
  • Governance absichern: Security-, Compliance- und Betriebsanforderungen werden vor der Umsetzung adressiert.
  • Stakeholder-Buy-in stärken: Gemeinsame Fakten verbessern die Entscheidungsqualität zwischen Business und IT.

Die Ergebnisse aus Discovery werden direkt in den nachgelagerten Modulen wiederverwendet:

Design

Nutzt Abhängigkeits-, Kapazitäts- und Risikosignale zur Ausgestaltung tragfähiger Zielarchitekturen.

Security und Compliance

Nutzt Datenklassifizierung und Control-Gaps zur Priorisierung von Sicherheitsanforderungen.

Landing Zone

Nutzt Plattform- und Governance-Restriktionen für grundlegende Setup-Entscheidungen.

Migrationsplan

Nutzt Move Groups, Kritikalität und Sequenzrestriktionen für realistische Wellenplanung.

Operating Model und Business Case

Nutzt Ownership-, Prozess- und Value/Risk-Signale für Rollenbild und Investitionspriorisierung.

Mindestens folgende Ergebnisse sollten aus Discovery vorliegen:

  • Konsolidierte Applikations-Basis: Inventar nach Domäne, Umgebung und Kritikalität.
  • Abhängigkeitskarte: Verifizierte Upstream-/Downstream-Beziehungen und wichtige Integrationen.
  • Profil der Nutzung: Belastbare Daten zur Auslastung und Sizing-Annahmen.
  • Constraint-Register: Security-, Compliance-, Lizenz- und Einschränkungen im Betrieb.
  • Migrationsreife-Sicht: Priorisierte Kandidaten, Risiken und Empfehlungen für die Reihenfolge.

Diese Ergebnisse sind unverzichtbare Voraussetzungen für das nachfolgende detaillierte Design und einen realistischen Migrationsplan.

LIFT

Rehost-Strategie

Bestätigen Sie anhand der Discovery-Nachweise, dass das Beibehalten von Spring-Boot-JAR, systemd-Service-Modell und PostgreSQL-Engine auf einer VM die Migrationsziele erfüllt; Kubernetes, Cloud Foundry oder PostgreSQL Flex wären stattdessen Replatform. Leiten Sie daraus die Delivery-Reihenfolge ab: Landing Zone, Terraform-Infrastruktur, Ansible-Konfiguration, separate PostgreSQL-Migration und geprobtes Runbook.

Design and mobilizeDesignRehost In 2 Trails
R-Strategie-Migrationsmethode Entscheidungsfluss von Discovery bis Produktion mit den sieben R-Strategien: Relocate, Rehost, Replatform, Repurchase, Refactor, Retain und Retire. R-Strategie-MigrationsmethodeFrom discovery and path selection through the seven R-strategies to validation, transition, and production.DiscoveryDiscoveryAssess / prioritizeAssess / prioritizeDetermine migration pathDetermine migration pathValidationValidationTransitionTransitionProductionProductionRelocateRelocate(move VM)Define Landing ZoneDefine Landing ZoneUse migration toolsUse migration toolsAUTOMATEMANUALInstallInstallConfigConfigDeployDeployValidation & handoverRehostingRehosting(move application)Define Landing ZoneDefine Landing ZoneUse migration toolsUse migration toolsAUTOMATEMANUALInstallInstallConfigConfigDeployDeployReplatformingReplatforming(lift and reshape)Define Landing ZoneDefine Landing ZoneMap Target PlatformMap Target PlatformAdapt Platform StackAdapt Platform StackRepurchasingRepurchasing(replace, drop and shop)Purchase COTS/SaaS and licensingPurchase COTS/SaaS and licensingMigrate business processMigrate business processRefactoringRefactoring(re-architecting applications)Redesign application/ infrastructure architectureRedesign application/ infrastructure architectureApp code developmentApp code developmentFull ALM/SDLCFull ALM/SDLCIntegrationIntegrationRetain/moveRetain/movekeep for now or move laterRetire/decommissionRetire/decommissionLanding zone foundationLanding zone foundationShared platform base for all paths
R-Strategie-Methode mit Rehost als Lift-and-Shift-Pfad auf Anwendungsebene

Rehost (lift-and-shift) migriert Workloads mit möglichst geringer Anwendungsänderung. Die Strategie reduziert Übergangsrisiken und beschleunigt den Umsetzungsdurchsatz.

Konkret ist Rehost anwendungs- und wellenorientiert: Für jeden Workload werden Zielabbildung, Cutover-Pfad und Runbook-Paket für eine wiederholbare Factory-Ausführung festgelegt.

Relocate und Rehost werden oft gleich verwendet, sind in diesem Framework jedoch bewusst getrennt.

  • Rehost in STACKIT: Anwendungsbezogener Lift-and-Shift mit klarer Zielabbildung, Cutover-/Rollback-Logik und standardisierten Runbooks.
  • Relocate in STACKIT: Überführung bestehender Virtualisierungs-Muster mit minimaler Umformung des bestehenden Laufzeitverhaltens.
  • Wann Rehost bevorzugt wird: Wenn Wellen über viele Anwendungen mit einheitlicher Runbook-Qualität und stabiler Ausführung geplant sind.
  • Wann Relocate bevorzugt wird: Wenn schnelle Estate-Überführung Priorität hat und Modernisierung bewusst später erfolgt.
  • Strenger Zeitrahmen bei begrenzter Engineering-Kapazität.
  • Legacy-Workloads, die aktuell schwer zu refactoren sind.
  • Priorität auf Stabilität bei möglichst unverändertem Fachverhalten.
  • Factory-Skalierung mit wiederholbaren Migrationsabläufen über viele Systeme.

Infrastruktur-Abbildung

Zielprofile für Compute, Storage und Netzwerk mit Kompatibilitätsprüfung definieren.

Daten- und Cutover-Pfad

Transferfenster, Konsistenzchecks und Rollback-Trigger entwerfen.

Stateful-Workload-Handling

Applikations-Deployment und Datenbankmigration als getrennte, aber abgestimmte Streams sequenzieren.

Security und Compliance

Identitätskontrollen, Verschlüsselungsanforderungen und Nachweis-Checkpoints abbilden.

Operatives Handover

Runbooks für Day-1-Betrieb und Incident-Ablaufe nach der Migration sicherstellen.

  1. Laufzeitabhängigkeiten und nicht-funktionale Anforderungen baseline.
  2. Zielabbildung und Migrationssequenz definieren.
  3. Datenumzug und Cutover-Orchestrierung entwerfen.
  4. Runbook-Qualität mit Dry-Run-Checkpoints validieren.
  5. Produktive Migration mit Release- und Business-Sign-off freigeben.

In Rehost-Szenarien hängt der Datenmigrationspfad davon ab, ob der Workload zustandslos (stateless) oder zustandsbehaftet (stateful) ist:

  • Stateless-Workloads: Fokus auf Anwendungs-Deployment und Konfiguration.
  • Stateful-Workloads: Erfordern eine koordinierte Datenverschiebungs-Strategie parallel zur Anwendungsmigration.

Für zustandsbehaftete Migrationswellen empfiehlt sich eine Trennung in zwei Streams:

  1. Infrastruktur- und Anwendungs-Stream: Zielumgebung bereitstellen, Anwendung bereitstellen und Zieldatenspeicher vorbereiten.
  2. Daten-Stream: Quelldaten exportieren, zum Ziel übertragen, wiederherstellen und validieren.
  1. Quelldaten mit plattformnativen oder werkspezifischen Methoden exportieren.
  2. Daten in die Zielumgebung oder einen Zwischenspeicher übertragen.
  3. Zielumgebung für den Import der migrierten Daten konfigurieren.
  4. Wiederherstellungsprozess ausführen und Datenintegrität verifizieren.
  5. Anwendungskonnektivität und funktionales Verhalten vor der endgültigen Umschaltung validieren.
  • Freigegebener Design-Entscheidungsnachweis mit Scope, Annahmen und Governance-Sign-off.
  • Validierungsnachweise für Security, Compliance und Betriebsbereitschaft.
  • Entwurf des Migrations-Runbooks je Strategie aus der Design-Phase.
  • Übergabepaket für Migration Factory Setup und Wellenplanung.
  • Rehost-Entscheidungsbegründung und Randbedingungen.
  • Zielabbildung der Laufzeit.
  • Datenumzugs- und Cutover-Plan.
  • Runbook mit Validierungs- und Rollback-Checkpoints.
  • Stabilisierungsliste nach der Welle.

Landing-Zone-Anforderungen und Controls als Startpunkt der Rehost-Ausführung festlegen. Netzwerk-, Identitäts-, Backup- und Monitoring-Voraussetzungen vor der Abfolge der Migration verbindlich festlegen, damit Rehost-Wellen mit planbarer Betriebsqualität umgesetzt werden.

Automatisierten Rehost-Pfad für wiederholbaren Wellen-Durchsatz definieren. Im automatisierten Rehost-Pfad werden Infrastruktur und Anwendung als Code bereitgestellt, damit Wellen reproduzierbar und auditierbar umgesetzt werden können.

  • VM-Ziel über IaC bereitstellen: Netzwerk, Security-Gruppen, Compute-Instanzen und Basis-Storage mit Terraform oder OpenTofu aufbauen.

  • Anwendung automatisiert installieren und konfigurieren: Ansible-Playbooks für die Installation von Paketen, Service-Setup und Basiskonfiguration verwenden.

  • Parameter der Zielumgebung kontrolliert anwenden: Variablen im Ziel, Secret-Referenzen und Endpoint-Mappings in einem gesteuerten automatisierten Lauf einspielen.

  • Automatisierte Validierungs- und Cutover-Gates ausführen: Health-Checks, Migrations-Pre-Checks, Rollback-Checkpoints und Release-Freigaben vor Live-Switch durchführen.

  • Runbook Blueprint
  • Migrationsplan
Asset-Titel
Framework
Asset-Typ

Das Runbook-Asset beschreibt die PostgreSQL-Flags und den optionalen Dump-basierten Restore-Pfad.

Manuelle Installations-Schritte für Ausnahme-Workloads beschreiben.

  • Ziel-VM manuell erstellen und vorbereiten: VM über Portal oder CLI bereitstellen, erforderlichen Storage anbinden und OS-Hardening sowie Patch-Baseline anwenden.

  • Runtime und Abhängigkeiten manuell installieren: Benötigte Runtime-Pakete, System-Bibliotheken und Service-User/-Gruppen gemäß Anleitung zur Installation des Produkts einrichten.

  • Anwendung klassisch installieren: Geführte Installationsschritte (zum Beispiel Installer- oder Setup-Wizard-Ablauf) ausführen, um das Quell-Deployment-Modell auf der Ziel-VM nachzubilden.

  • Status der Installation validieren: Service-Start, Rechte auf Dateien, erforderliche Ports, DNS-Erreichbarkeit und ausgehende Konnektivität prüfen.

  • Cloud-Design-Patterns
  • Runbook Blueprint

Manuelle Konfiguration der Laufzeit und Controls festlegen.

  • Konfiguration der Quelle für den Kontext im Ziel spiegeln: Einstellungen der Anwendung aus der Umgebung der Quelle nachbilden und auf Ziel-Endpoints, DNS, Zertifikate und Service-Integrationen anpassen.

  • Security- und Einstellungen für Zugriffe anwenden: Service-Credentials, Secret-Handling und Least-Privilege-Zugriffe für den Betrieb im Ziel konfigurieren.

  • Standards für den Betrieb ausrichten: Logging-Ziele, Metrics-Exporter, Backup-Zeitpläne und Retention-Baselines festlegen.

  • Konfigurationsparität validieren: Smoke-Checks ausführen, damit die Zielinstanz funktional dem Quellbaseline-Verhalten entspricht.

  • Runbook Blueprint

Manuelle Deployment-Sequenz und Release-Checks definieren.

  • Finales Zeitfenster für die Migration planen: Freeze-Fenster, Kommunikations-Checkpoints und Rollback-Autorität für den Wechsel in den Produktivbetrieb abstimmen.

  • Finale Datenmigration ausführen: Letzten Abgleich der Daten oder Restore-Schritte fahren und Konsistenzprüfungen vor Go-live bestätigen.

  • Live-Verkehr aktivieren: Kontrollierte Live-Schaltung auf die Zielumgebung durchführen und kritische Nutzer- sowie Integrationspfade prüfen.

  • Handover-Bereitschaft bestätigen: Nachweise dokumentieren, offene Risiken schließen und Ownership für Day-1-Betrieb übergeben.

  • Migrationsplan
  • Runbook Blueprint
STEP

Mit Terraform und Ansible automatisieren

Trennen Sie Infrastruktur-Lifecycle und Zielkonfiguration: Terraform oder OpenTofu erstellt und synchronisiert STACKIT Ressourcen, während Ansible das erreichbare Betriebssystem, Middleware, Anwendung und Validierungskontrollen konfiguriert.

Design and mobilizeLanding ZonesAutomatisierung (IaC) In 3 Trails

Automatisierung stellt sicher, dass Landing-Zone-Funktionen reproduzierbar, versioniert und testbar bereitgestellt werden.

Für Migrations-Landing-Zones ist Automatisierung das Delivery-Rückgrat, das Plattform-APIs, IaC-Werkzeuge, Entwickler-Workflows und Release-Kontrollen in ein verlässliches Betriebsmodell überführt.

  • STACKIT API: Nutzen Sie die API als grundlegende Steuerungsschnittstelle für Plattformautomatisierung und Integrationsmuster. Dokumentation
  • Terraform Provider: Nutzen Sie den offiziellen Provider für deklarative Infrastruktur-Bereitstellung und Lifecycle-Steuerung. Dokumentation
  • OpenTofu Provider: Nutzen Sie OpenTofu mit dem STACKIT Provider als offene IaC-Option mit vergleichbaren deklarativen Workflows. Dokumentation
  • Pulumi: Nutzen Sie Pulumi, wenn Teams für Infrastruktur-Automatisierung allgemeine Programmiersprachen bevorzugen. Dokumentation
  • Ansible: Nutzen Sie Ansible primär für Post-Provisioning-Konfiguration und Betriebsaufgaben. In einem kombinierten Modell stellen Terraform/OpenTofu die Infrastruktur bereit, während Ansible OS- und Middleware-Konfiguration übernimmt.
  • STACKIT CLI: Standardisieren Sie CLI-basierte Operationen für Skripting, Fehleranalyse und wiederholbare Betriebsaufgaben. Dokumentation
  • SDKs (Go, Python, Java): Nutzen Sie SDKs für kundenspezifische Automatisierung und Service-Integrationen, wenn IaC-Abstraktionen nicht ausreichen. Go SDK , Python SDK , Java SDK .
  • STACKIT Git: Nutzen Sie Git als Source of Truth für IaC-Module, Policies und Delivery-Workflows. Dokumentation
  • CI/CD Pipeline: Nutzen Sie Pipelines für Validierung, Policy-Prüfungen, kontrollierte Promotion und auditierbare Releases. Dokumentation
  • Container Registry: Nutzen Sie eine zentrale Registry für versionierte Build-Artefakte und konsistente Deployments über Umgebungen hinweg. Dokumentation
  • Steuerungsschicht: STACKIT API, CLI und SDKs liefern direkte und programmierbare Steuerungsschnittstellen.
  • Provisioning-Schicht: Terraform/OpenTofu und Pulumi definieren und synchronisieren den gewünschten Infrastrukturzustand.
  • Konfigurationsschicht: Ansible setzt Host- und Middleware-Konfiguration nach dem Infrastruktur-Provisioning um.
  • Delivery-Schicht: Git und CI/CD Pipelines erzwingen Qualitäts-Gates, Policy-Prüfungen und kontrollierten Rollout über Umgebungen.
  • Artefakt-Schicht: Die Container Registry liefert unveränderliche und versionierte Artefakte für vorhersehbare Deployments.

Terraform oder OpenTofu und Ansible lösen unterschiedliche Aufgaben innerhalb eines Delivery-Flows. Halten Sie die Grenze explizit, damit Infrastrukturänderungen prüfbar und Host-Konfigurationen wiederholbar bleiben.

Terraform / OpenTofu

Verantwortet den Infrastruktur-Lifecycle: Projekte, Netzwerke, Sicherheitskontrollen, Compute, Storage, Managed Services und die für das Konfigurationsmanagement benötigten Outputs.

Ansible

Verantwortet die Konfiguration im erreichbaren Ziel: Betriebssystempakete, Middleware, Applikationsartefakte, Service Units und die Validierung auf Workload-Ebene.

  1. Versionieren Sie Infrastruktur-Inputs, Konfiguration und Referenzen auf Applikationsartefakte in Git.
  2. Validieren und prüfen Sie den Terraform/OpenTofu-Plan einschließlich Ersetzungen und Security-Auswirkungen.
  3. Wenden Sie den freigegebenen Plan an und übergeben Sie nur das von Ansible benötigte Zielinventar und die erforderlichen Outputs.
  4. Führen Sie Ansible idempotent aus, um Betriebssystem, Middleware, Workload und Telemetrie zu konfigurieren.
  5. Validieren Sie Infrastrukturzustand, Service Health und betriebliche Kontrollen und bewahren Sie die Nachweise auf.
  6. Promoten Sie denselben versionierten Workflow durch die Umgebungen, statt manuelle Einrichtungsschritte zu wiederholen.

Verwischen Sie die Zuständigkeit beider Ebenen nicht durch Provisioner oder Ad-hoc-Skripte. Ansible aus Terraform anzustoßen kann eine praktische Brücke sein, aber jedes Werkzeug muss eigenständig verständlich, testbar und wiederholbar bleiben.

  • Empfehlung 1: Nutzen Sie Git plus CI/CD als Standard-Steuerungspfad und vermeiden Sie direkte manuelle Änderungen in produktiven Scopes.
  • Empfehlung 2: Wählen Sie je Plattformdomäne ein primäres IaC-Tool (Terraform oder OpenTofu), um Fragmentierung zu reduzieren.
  • Empfehlung 3: Nutzen Sie Ansible für Konfigurationsmanagement, nicht als Ersatz für deklaratives Infrastruktur-Provisioning.
  • Empfehlung 4: Nutzen Sie SDKs für domänenspezifische Automatisierung, wenn Provider-Ressourcen das gewünschte Verhalten nicht abdecken.
  • Empfehlung 5: Versionieren und promoten Sie Container-Artefakte über klare Umgebungsstufen mit rollbackfähigen Tags.
  • Automatisierungs-Schnittstellenstrategie: Definieren Sie, wo API, CLI, SDK und IaC-Werkzeuge als Primärschnittstellen eingesetzt werden.
  • IaC-Tool-Strategie: Entscheiden Sie Terraform versus OpenTofu versus Pulumi anhand von Skills, Governance und Ecosystem-Fit.
  • Modul- und Repository-Strategie: Definieren Sie wiederverwendbare Modulgrenzen, Versionierung und Ownership.
  • Pipeline-Control-Modell: Implementieren Sie Validierung, Policy-Prüfungen, Freigaben und Promotion-Gates.
  • Artefakt- und Release-Strategie: Definieren Sie Registry-Nutzung, Image-Versionierung und Rollback-Standards.
  • Wiederverwendbare Automatisierungs-Baseline: IaC-Module, Templates und Konfigurations-Playbooks mit Ownership-Modell.
  • Delivery-Blueprint: CI/CD-Flow mit Qualitäts-Gates, Policy-Prüfungen und gestufter Promotion.
  • Integrations-Toolkit: Standardisierte Nutzung von CLI- und SDK-Automatisierung für Betrieb und produktspezifische Workflows.
  • Release-Baseline: Versionierter Artefakt-Lifecycle in der Container Registry mit rollbackfähigen Praktiken.
  • Zu viele Automatisierungs-Paradigmen: Parallele Tool-Stacks ohne klare Ownership oder Governance-Modell.
  • Provisioning und Konfiguration ad hoc vermischt: Keine klare Trennung zwischen IaC-Provisioning und Ansible-Konfiguration.
  • Keine Artefakt-Disziplin: Veränderliche Container-Tags und unklare Release-Nachverfolgbarkeit.
  • CLI-Skripte ohne Git- und Pipeline-Kontrollen: Betriebsautomatisierung ist nicht verlässlich auditierbar oder reproduzierbar.
OPS

Zielarchitektur

Dieses Muster bildet das validierte Ziel mit geringer Änderungstiefe für das Spring-Boot-Rehost- Beispiel ab. Das JAR läuft weiterhin als systemd-Service, während PostgreSQL selbstverwaltet auf derselben VM verbleibt. Die Betriebsmodelle von Laufzeit und Datenbank bleiben damit VM-zentriert.

Die Baseline umfasst bewusst nur eine VM. Sie demonstriert wiederholbare Migrationskontrollen und Betriebsbereitschaft, nicht High Availability für Anwendung oder Datenbank.

  • Geringe Änderungstoleranz: Fachverhalten soll während der Migration stabil bleiben.
  • Kurze Zeitfenster für die Migration: Die Verlagerung der Laufzeit soll planbar und wiederholbar sein.
  • Betriebskontinuität: Teams behalten VM-zentrierte Betriebsabläufe auf STACKIT bei.
InternetApplication ProjectPublic IPUbuntu VMObservabilityBackup ArchiveSpring Boot JAR + systemdSelbstverwaltetes PostgreSQLNode Exporter eingeschränktes HTTP/SSHlokales SQLeingeschränkter ScrapeBoot-Volume-Backup
  • Ingress explizit einschränken: SSH- und Applikationsverkehr nur aus freigegebenen Quell-CIDRs zulassen; Exporter-Traffic ausschließlich aus STACKIT Service Ranges erlauben.
  • Credentials aus State und Inventar heraushalten: Das PostgreSQL-Passwort über die Prozessumgebung übergeben und die erzeugte Laufzeit-Environment-Datei nur für root lesbar speichern.
  • Observability-Minimum definieren: Infrastruktur- und Applikationssignale vor Go-live festlegen.
  • Recovery-Ebenen trennen: Den Datenbank-Dump von vor dem Restore für Cutover-Rollback und Server Backup für Disaster Recovery auf VM-Ebene verwenden.
  • Verfügbarkeitsgrenze benennen: Eine VM mit lokaler Datenbank bildet eine gemeinsame Failure Domain. Load Balancer oder zweiten Knoten nur mit separat entworfenem Datenbank- und Konsistenzmodell ergänzen.
  • Security Groups und Ingress-Regeln explizit halten: Nur erforderliche Ports und Protokolle freigeben.
Code & Registry github.com STACKIT CMF Rehost Spring Boot repository Repository öffnen
  1. Datei aus dem Beispiel kopieren: cp env.tfvars.example env.tfvars
  2. Erforderliche Werte setzen:
create_project = true
target_project_name = "cmf-rehost-springboot"
target_project_owner_email = "owner@sa.stackit.cloud"
parent_container_id = "cmf-parent-container-id"
service_account_key_path = "/path/to/stackit-sa-key.json"
run_ansible = true
jar_local_path = "ansible/files/springboot-app.jar"
availability_zone = "eu01-1"
machine_type = "g2i.2"
ssh_allowed_cidr = "203.0.113.10/32"
app_allowed_cidr = "203.0.113.10/32"
enable_observability = true
enable_node_exporter = true
enable_local_postgresql = true
enable_server_backup = true
  1. Optionaler CMF-Flag-Wrapper (flags.env):
setup_project=true
setup_observability=true
setup_database=false
setup_workload=true
setup_loadgen=false
setup_dns=false
  1. Ausführen:
Terminal-Fenster
terraform init
terraform apply -var-file=env.tfvars

Erwartetes Ergebnis: application_url stellt die Spring-Boot-Anwendung direkt von der VM auf dem konfigurierten Applikationsport bereit. PostgreSQL lauscht für die Anwendung auf localhost, Observability erfasst den Node Exporter und für das Boot Volume ist ein täglicher Backup-Zeitplan aktiv.

Diese Baseline bietet kein automatisches Failover. Eine Load-Balancer- oder Multi-VM-Variante ist erst sinnvoll, nachdem Session Handling, PostgreSQL-Platzierung, Schreibkonsistenz, Health Checks, TLS und Traffic-Umschaltung gemeinsam entworfen und getestet wurden. Behandeln Sie dies als eigene Architekturentscheidung, nicht als implizite Eigenschaft dieses Rehost-Pfads.

AUTO

Datenbankmigration

Trennen Sie nach der Definition von Infrastruktur und Laufzeitpfad die Vorbereitung der Anwendung von PostgreSQL-Export, Übertragung, Restore und Integritätsvalidierung. Definieren Sie Write Freeze, finalen Dump, Rollback-Deadline und Aufbewahrung der Quelle vor der Ausführung.

Design and mobilizeDesignRehost In 2 Trails
Kontrollierter PostgreSQL-Rehost-Pfad von Source Freeze und Nachweisen über Probe und transaktionalen Cutover bis zur Abnahme oder zum Rollback
Kontrollierter PostgreSQL-Rehost-Pfad von Source Freeze und Nachweisen über Probe und transaktionalen Cutover bis zur Abnahme oder zum Rollback

Rehost (lift-and-shift) migriert Workloads mit möglichst geringer Anwendungsänderung. Die Strategie reduziert Übergangsrisiken und beschleunigt den Umsetzungsdurchsatz.

Konkret ist Rehost anwendungs- und wellenorientiert: Für jeden Workload werden Zielabbildung, Cutover-Pfad und Runbook-Paket für eine wiederholbare Factory-Ausführung festgelegt.

Relocate und Rehost werden oft gleich verwendet, sind in diesem Framework jedoch bewusst getrennt.

  • Rehost in STACKIT: Anwendungsbezogener Lift-and-Shift mit klarer Zielabbildung, Cutover-/Rollback-Logik und standardisierten Runbooks.
  • Relocate in STACKIT: Überführung bestehender Virtualisierungs-Muster mit minimaler Umformung des bestehenden Laufzeitverhaltens.
  • Wann Rehost bevorzugt wird: Wenn Wellen über viele Anwendungen mit einheitlicher Runbook-Qualität und stabiler Ausführung geplant sind.
  • Wann Relocate bevorzugt wird: Wenn schnelle Estate-Überführung Priorität hat und Modernisierung bewusst später erfolgt.
  • Strenger Zeitrahmen bei begrenzter Engineering-Kapazität.
  • Legacy-Workloads, die aktuell schwer zu refactoren sind.
  • Priorität auf Stabilität bei möglichst unverändertem Fachverhalten.
  • Factory-Skalierung mit wiederholbaren Migrationsabläufen über viele Systeme.

Infrastruktur-Abbildung

Zielprofile für Compute, Storage und Netzwerk mit Kompatibilitätsprüfung definieren.

Daten- und Cutover-Pfad

Transferfenster, Konsistenzchecks und Rollback-Trigger entwerfen.

Stateful-Workload-Handling

Applikations-Deployment und Datenbankmigration als getrennte, aber abgestimmte Streams sequenzieren.

Security und Compliance

Identitätskontrollen, Verschlüsselungsanforderungen und Nachweis-Checkpoints abbilden.

Operatives Handover

Runbooks für Day-1-Betrieb und Incident-Ablaufe nach der Migration sicherstellen.

  1. Laufzeitabhängigkeiten und nicht-funktionale Anforderungen baseline.
  2. Zielabbildung und Migrationssequenz definieren.
  3. Datenumzug und Cutover-Orchestrierung entwerfen.
  4. Runbook-Qualität mit Dry-Run-Checkpoints validieren.
  5. Produktive Migration mit Release- und Business-Sign-off freigeben.

In Rehost-Szenarien hängt der Datenmigrationspfad davon ab, ob der Workload zustandslos (stateless) oder zustandsbehaftet (stateful) ist:

  • Stateless-Workloads: Fokus auf Anwendungs-Deployment und Konfiguration.
  • Stateful-Workloads: Erfordern eine koordinierte Datenverschiebungs-Strategie parallel zur Anwendungsmigration.

Für zustandsbehaftete Migrationswellen empfiehlt sich eine Trennung in zwei Streams:

  1. Infrastruktur- und Anwendungs-Stream: Zielumgebung bereitstellen, Anwendung bereitstellen und Zieldatenspeicher vorbereiten.
  2. Daten-Stream: Quelldaten exportieren, zum Ziel übertragen, wiederherstellen und validieren.
  1. Quelldaten mit plattformnativen oder werkspezifischen Methoden exportieren.
  2. Daten in die Zielumgebung oder einen Zwischenspeicher übertragen.
  3. Zielumgebung für den Import der migrierten Daten konfigurieren.
  4. Wiederherstellungsprozess ausführen und Datenintegrität verifizieren.
  5. Anwendungskonnektivität und funktionales Verhalten vor der endgültigen Umschaltung validieren.
  • Freigegebener Design-Entscheidungsnachweis mit Scope, Annahmen und Governance-Sign-off.
  • Validierungsnachweise für Security, Compliance und Betriebsbereitschaft.
  • Entwurf des Migrations-Runbooks je Strategie aus der Design-Phase.
  • Übergabepaket für Migration Factory Setup und Wellenplanung.
  • Rehost-Entscheidungsbegründung und Randbedingungen.
  • Zielabbildung der Laufzeit.
  • Datenumzugs- und Cutover-Plan.
  • Runbook mit Validierungs- und Rollback-Checkpoints.
  • Stabilisierungsliste nach der Welle.

Landing-Zone-Anforderungen und Controls als Startpunkt der Rehost-Ausführung festlegen. Netzwerk-, Identitäts-, Backup- und Monitoring-Voraussetzungen vor der Abfolge der Migration verbindlich festlegen, damit Rehost-Wellen mit planbarer Betriebsqualität umgesetzt werden.

Automatisierten Rehost-Pfad für wiederholbaren Wellen-Durchsatz definieren. Im automatisierten Rehost-Pfad werden Infrastruktur und Anwendung als Code bereitgestellt, damit Wellen reproduzierbar und auditierbar umgesetzt werden können.

  • VM-Ziel über IaC bereitstellen: Netzwerk, Security-Gruppen, Compute-Instanzen und Basis-Storage mit Terraform oder OpenTofu aufbauen.

  • Anwendung automatisiert installieren und konfigurieren: Ansible-Playbooks für die Installation von Paketen, Service-Setup und Basiskonfiguration verwenden.

  • Parameter der Zielumgebung kontrolliert anwenden: Variablen im Ziel, Secret-Referenzen und Endpoint-Mappings in einem gesteuerten automatisierten Lauf einspielen.

  • Automatisierte Validierungs- und Cutover-Gates ausführen: Health-Checks, Migrations-Pre-Checks, Rollback-Checkpoints und Release-Freigaben vor Live-Switch durchführen.

  • Runbook Blueprint
  • Migrationsplan
Asset-Titel
Framework
Asset-Typ

Das Runbook-Asset beschreibt die PostgreSQL-Flags und den optionalen Dump-basierten Restore-Pfad.

Manuelle Installations-Schritte für Ausnahme-Workloads beschreiben.

  • Ziel-VM manuell erstellen und vorbereiten: VM über Portal oder CLI bereitstellen, erforderlichen Storage anbinden und OS-Hardening sowie Patch-Baseline anwenden.

  • Runtime und Abhängigkeiten manuell installieren: Benötigte Runtime-Pakete, System-Bibliotheken und Service-User/-Gruppen gemäß Anleitung zur Installation des Produkts einrichten.

  • Anwendung klassisch installieren: Geführte Installationsschritte (zum Beispiel Installer- oder Setup-Wizard-Ablauf) ausführen, um das Quell-Deployment-Modell auf der Ziel-VM nachzubilden.

  • Status der Installation validieren: Service-Start, Rechte auf Dateien, erforderliche Ports, DNS-Erreichbarkeit und ausgehende Konnektivität prüfen.

  • Cloud-Design-Patterns
  • Runbook Blueprint

Manuelle Konfiguration der Laufzeit und Controls festlegen.

  • Konfiguration der Quelle für den Kontext im Ziel spiegeln: Einstellungen der Anwendung aus der Umgebung der Quelle nachbilden und auf Ziel-Endpoints, DNS, Zertifikate und Service-Integrationen anpassen.

  • Security- und Einstellungen für Zugriffe anwenden: Service-Credentials, Secret-Handling und Least-Privilege-Zugriffe für den Betrieb im Ziel konfigurieren.

  • Standards für den Betrieb ausrichten: Logging-Ziele, Metrics-Exporter, Backup-Zeitpläne und Retention-Baselines festlegen.

  • Konfigurationsparität validieren: Smoke-Checks ausführen, damit die Zielinstanz funktional dem Quellbaseline-Verhalten entspricht.

  • Runbook Blueprint

Manuelle Deployment-Sequenz und Release-Checks definieren.

  • Finales Zeitfenster für die Migration planen: Freeze-Fenster, Kommunikations-Checkpoints und Rollback-Autorität für den Wechsel in den Produktivbetrieb abstimmen.

  • Finale Datenmigration ausführen: Letzten Abgleich der Daten oder Restore-Schritte fahren und Konsistenzprüfungen vor Go-live bestätigen.

  • Live-Verkehr aktivieren: Kontrollierte Live-Schaltung auf die Zielumgebung durchführen und kritische Nutzer- sowie Integrationspfade prüfen.

  • Handover-Bereitschaft bestätigen: Nachweise dokumentieren, offene Risiken schließen und Ownership für Day-1-Betrieb übergeben.

  • Migrationsplan
  • Runbook Blueprint
BASE

Landing Zone

Etablieren Sie die gesteuerte Cloud-Basis, bevor das Rehost-Ziel davon abhängt. Verwenden Sie die sechs Kernkomponenten als Readiness-Rahmen: Jede Kontrolle benötigt Ownership, eine freigegebene Implementierung und Nachweise, bevor Terraform das Spring-Boot-Ziel bereitstellt.

Design and mobilizeLanding ZonesÜbersicht In 5 Trails
Landing-Zone-Kernkomponenten Sechs Bausteine einer sicheren Landing Zone. Landing-Zone-KernkomponentenDie sechs Bausteine einer sicheren Plattformbasis auf STACKIT.Account GovernanceAccount GovernanceWie strukturiere ich meine Projekte?Identity & Access ManagementIdentity & Access ManagementWer darf was tun auf der Plattform?Security und ComplianceSecurity und ComplianceWie überwache ich die Plattform sicher?NetzwerkarchitekturNetzwerkarchitekturWie sind Komponenten sicher verbunden?Kostensteuerung und KontrolleKostensteuerung und KontrolleWie behalte ich Ausgaben im Blick?Automatisierung (IaC)Automatisierung (IaC)Wie wird alles bereitgestellt?
Sechs Kernkomponenten einer sicheren STACKIT Landing Zone: Governance, Identity, Security, Netzwerk, Kostenkontrolle und Automatisierung

Eine Landing Zone ist die strukturierte Cloud-Grundlage, die festlegt, wie Ihre Organisation auf STACKIT von Anfang an betrieben wird. Sie verbindet Governance, Identität, Security, Netzwerkarchitektur, Kostensteuerung und Automatisierung zu einem belastbaren Rahmen.

Ohne diese Grundlage stocken Migrationswellen typischerweise durch fehlende Freigaben, inkonsistente Kontrollen und wiederkehrende Plattformentscheidungen.

Die folgende Visualisierung zeigt die zentralen Komponenten für eine belastbare Plattform-Basis.

Landing-Zone-Kernkomponenten Sechs Bausteine einer sicheren Landing Zone. Landing-Zone-KernkomponentenDie sechs Bausteine einer sicheren Plattformbasis auf STACKIT.Account GovernanceAccount GovernanceWie strukturiere ich meine Projekte?Identity & Access ManagementIdentity & Access ManagementWer darf was tun auf der Plattform?Security und ComplianceSecurity und ComplianceWie überwache ich die Plattform sicher?NetzwerkarchitekturNetzwerkarchitekturWie sind Komponenten sicher verbunden?Kostensteuerung und KontrolleKostensteuerung und KontrolleWie behalte ich Ausgaben im Blick?Automatisierung (IaC)Automatisierung (IaC)Wie wird alles bereitgestellt?
  • Kontrolle und Risikoreduktion: Security- und Compliance-Kontrollen werden konsistent umgesetzt.
  • Skalierbare Delivery-Basis: Wiederverwendbare Muster beschleunigen mehrere Migrationswellen.
  • Klare Verantwortlichkeiten: Zuständigkeiten zwischen Plattform-, Security- und Applikationsteams sind klar.
  • Höhere Umsetzungsgeschwindigkeit: Grundlegende Kontrollen müssen nicht je Applikation neu entworfen werden.

Starten Sie den Landing-Zone-Stream so früh wie möglich parallel zum Discovery.

  • Zu spät: Produktive Migrationen werden blockiert, weil Pflichtkontrollen noch fehlen.
  • Zu früh ohne Discovery-Feedback: Relevante Applikationsrandbedingungen fehlen und führen zu Nacharbeit.

Bewährt hat sich ein zweigleisiges Vorgehen: Die Plattform-Basis früh etablieren und Application-Landing-Zone-Templates iterativ mit Discovery-Erkenntnissen verfeinern.

Zwei Ebenen: Platform und Application Landing Zone

Abschnitt betitelt „Zwei Ebenen: Platform und Application Landing Zone“

Platform Landing Zone

Unternehmensweite Grundlage für Governance, Identität, Security, Netzwerk, Kostensteuerung und Automatisierung.

Zur Platform Landing Zone

Application Landing Zone

Workload-spezifische Umsetzungsprofile, abgeleitet aus Plattform-Basis und Discovery-Ergebnissen.

Zur Application Landing Zone

Für ein belastbares Landing-Zone-Design werden typischerweise benötigt:

  • Organisations- und Ownership-Modell: Einheiten, Projektgrenzen und Verantwortungsmodell.
  • Compliance- und Policy-Anforderungen: Regulatorische Pflichten und interne Kontrollvorgaben.
  • Security-Anforderungen: IAM-Standards, Netzsegmentierung, Verschlüsselung und Logging.
  • Betriebs- und Supportvorgaben: Incident-Prozesse, Eskalationswege und Übergabemodell.
  • Erkenntnisse aus dem Applikationsportfolio: Discovery-Resultate zu Abhängigkeiten und Archetypen.
  1. Unternehmensweite Leitplanken und Kontrollmodell definieren.
  2. Platform Landing Zone als Code aufbauen und validieren.
  3. Application-Landing-Zone-Templates aus Discovery und Migrationsdesign ableiten.
  4. Mit Pilot-Workloads testen und über Migration-Factory-Runbooks skalieren.

Um die Umsetzung zu beschleunigen, bietet STACKIT konkrete Best Practices und wiederverwendbare Vorlagen:

Asset-Titel
Framework
Asset-Typ

Basis als Code beschleunigen

Nutzen Sie den STACKIT Landing Zone Accelerator, um wiederverwendbare Organisations-Folder, Plattformprojekte, Connectivity, Management Services und die Workload-bereite Application Landing Zone zu erstellen, bevor die Rehost-Automatisierung ihre VM deployt.

Halten Sie die Grenze explizit: Der Accelerator stellt die gesteuerte Umgebung bereit; das Application Team deployt Spring Boot, PostgreSQL, Telemetrie und Backup in die freigegebene Application Landing Zone.

Architektur des Landing Zone Accelerators mit getrennten Verantwortlichkeiten für Plattform, Application Landing Zone und Workload
Architektur des Landing Zone Accelerators mit getrennten Verantwortlichkeiten für Plattform, Application Landing Zone und Workload
LIVE

Migration Framework

Beginnen Sie die Ausführung nur mit freigegebenen Designentscheidungen, einer bereiten Application Landing Zone, einer zugewiesenen Welle und einem Factory-fähigen Runbook. Führen Sie Readiness, Migration, Cutover, Validierung, Stabilisierung und Handover als einen kontrollierten Ablauf aus.

MigrateMigrateÜbersicht In 4 Trails

Dieses Modul setzt die eigentliche technische Migration in der Migration Factory um. Zu diesem Zeitpunkt sind Entscheidungen aus Design getroffen, Landing Zones aufgebaut und Wellen geplant.

Der Fokus liegt auf reproduzierbarer Umsetzung für:

  • Relocate: Verlagerung von Workloads mit minimalen Änderungen an Annahmen zur Plattform.
  • Rehost: Lift-and-Shift auf STACKIT mit kontrolliertem Cutover und Rollback-Bereitschaft.
  • Replatform: Gezielte Anpassungen an der Plattform während der Migration ohne vollständiges Redesign.

Migrate startet erst, wenn aus der vorherigen Phase umsetzbare Ergebnisse vorliegen:

  • Design je Anwendung: Zielbild, Schnittstellen, Daten und nicht-funktionale Anforderungen sind festgelegt.
  • Zuordnung zur Wellenplanung: Jede Anwendung ist einer freigegebenen Welle mit Zeitfenster und Abhängigkeiten zugeordnet.
  • Runbook je Pfad der Migration: Für Pfad und Typ von Workload liegt ein validiertes Runbook vor, inklusive Go/No-Go-, Cutover- und Rollback-Kriterien.
  • Zuordnung zur Application Landing Zone: Anwendungen sind der passenden Ziel-Landing-Zone und Ownership zugeordnet.
  • Entscheidungswege und Kommunikation: Entscheidungswege, Eskalationsprozess und Kommunikation mit dem Application Owner sind festgelegt, inklusive der Frage, ob der Cutover gemeinsam durchgeführt werden muss.

Verweise auf Module:

  1. Wellenscope, Cutover-Fenster, Rollback-Kriterien und Runbook-Verantwortung final bestätigen.
  2. Wellen-Baseline einfrieren (Versionen, Abhängigkeiten, Datenscope, Schnittstellenverträge).
  3. Technische Readiness-Prüfungen in Quelle und Ziel durchführen.
  4. Runbook-Schritte je Workload-Archetyp und R-Strategie-Pfad ausführen.
  5. Cutover durchführen und Traffic gemäß Wellenplan auf STACKIT umschalten.
  6. Technische, funktionale und operative Akzeptanzkriterien validieren.
  7. Stabilisierungsmaßnahmen in kurzen Feedback-Schleifen umsetzen.
  8. Stabilisierte Workloads an Optimize und Operate übergeben.
  1. Platzierung im Ziel auf STACKIT mit äquivalenten Annahmen zur Topologie herstellen.
  2. Daten und Zustände mit Konsistenzprüfungen migrieren.
  3. Traffic mit Rollback-Leitplanken umschalten.
  4. Geschäftskontinuität und operative Telemetrie verifizieren.
  1. Applikationen und Daten weitgehend unverändert übertragen.
  2. Infrastruktur-Bindings und Konnektivität auf STACKIT neu zuordnen.
  3. Kontrollierten Cutover mit Smoke-Tests durchführen.
  4. Phase zur Stabilisierung und Performance-Baseline abschließen.
  1. Ausgewählte Managed Services und Plattformfunktionen in den Pfad der Migration integrieren.
  2. Konfiguration, Deployment-Artefakte und Kontrollen im Betrieb anpassen.
  3. Cutover mit Kompatibilitäts- und Datenintegritätsprüfungen durchführen.
  4. SLO-Verhalten und Betriebsreife der Zielumgebung nachweisen.

Runbook-Nachweise

Vollständige Runbook-Protokolle, Entscheidungsnachweise und Rollback-Checkpoints pro Workload.

Cutover-Report

Zeitlich nachvollziehbares Ergebnis mit Abnahme, Defekten und eingeleiteten Maßnahmen.

Operative Baseline

Initiales Monitoring, Alerting, Ownership und Incident-Prozesse in der Zielumgebung.

Optimize-Backlog

Priorisierte Maßnahmen für Rightsizing, Performance-Tuning und Kostenoptimierung.

  • Optimize startet direkt nach stabilem Cutover und nutzt Daten aus dem Betrieb für Tuning und Kostensteuerung: Optimize.
  • Repurchase folgt einer anderen SaaS-Logik und läuft bewusst außerhalb des klassischen Modells mit Wellen: Repurchase.
  • Refactor wird als eigener Pfad für Transformation geführt: Refactor.

Unterstützung direkt nach dem Cutover kann sich zeitlich mit Optimize überschneiden, wird aber inhaltlich in der Run-Phase behandelt.

SAFE

Freigabepunkte der Migration

Das Migration Framework definiert Strategie, Design, Landing Zone, Migration und Betriebsprinzipien für Rehost-Workloads. Dieses Asset wendet diese Prinzipien auf eine konkrete, ausführbare Spring-Boot- und PostgreSQL-Implementierung auf STACKIT an.

Das gepflegte Repository ist die Source of Truth für Terraform, Ansible, Applikationsartefakte, Migrationsskripte, Validierung und Laufzeitkonfiguration. Dieses Asset beschreibt die Nutzung der Implementierung, ohne ihren vollständigen Quellcode zu duplizieren.

Code & Registry github.com STACKIT CMF Rehost Spring Boot Repository Öffnen Sie die ausführbare Terraform- und Ansible-Referenzimplementierung für den Rehost-Pfad von Spring Boot und PostgreSQL. Repository öffnen

Dieses Beispiel bildet einen Application-Rehost-Pfad für einen Spring-Boot-Workload ab, konkret das Spring-Music-Beispiel. Der Fokus liegt auf der Verlagerung der Laufzeit nach STACKIT:

  • Infrastruktur-Rehost: Terraform stellt eine STACKIT VM, Boot Volume, Netzwerk, Public IP, Security Group, SSH-Key, Observability-Ressourcen und optional einen Server-Backup-Zeitplan bereit.
  • Application-Rehost: Ansible installiert Java, deployt das Spring-Boot-JAR und verwaltet es mit systemd, ohne das Laufzeitmodell der Anwendung zu ändern.
  • Stateful Rehost: Ansible installiert selbstverwaltetes PostgreSQL auf derselben VM. Der Datenbank-Layer wird in diesem Pfad nicht auf einen Managed Service umgestellt.
  • Kontrollierte Migration: Das Repository enthält getrennte Workflows für Probe, Cutover, Validierung und Rollback mit maschinenlesbaren Nachweisen.

Die validierte Baseline enthält bewusst keinen Application Load Balancer, DNS-Switch, mehrere VMs, Kubernetes, Cloud Foundry oder PostgreSQL Flex. Ergänzen Sie diese nur als separat entworfene und getestete Erweiterungen; sie sind nicht impliziter Bestandteil dieses Rehost-Beispiels.

  • Provisioning: Terraform-Ressourcen für Netzwerk, Security, eine VM, Boot Volume, SSH-Key und Public IP.
  • Configuration Bridge: Terraform stößt Ansible nach dem Infrastruktur-Provisioning an.
  • Application Deployment: Ansible deployt ein konkretes Spring-Boot-Artefakt und konfiguriert einen systemd-Service.
  • VM-lokaler Datenbankpfad: PostgreSQL-Installation, Bootstrap von Application Role und Datenbank sowie Dump-basierter Restore mit Ownership- und Datenintegritätsprüfungen.
  • Operations-Baseline: STACKIT Observability erfasst Node-Exporter-Metriken; Terraform kann ein tägliches Server Backup für das Boot Volume der VM aktivieren.
  • Migrationskontrollen: Erzeugung des Quelldumps, unabhängige Restore-Validierung, Probe, Cutover, Rollback-Prüfung, Rollback-Ausführung und Nachweiserfassung.
  • Bereitstellbares Sample-Artefakt: Das Repository enthält ein ausführbares JAR, das die Standardkonfiguration verwendet.

Nutzen Sie dieses gemeinsame Flag-Modell in den Terraform-Variablen, um das Verhalten über CMF-Beispiele hinweg konsistent zu halten:

  • setup_project: Projektkontext erstellen oder verwenden.
  • setup_observability: Observability-Ressourcen aktivieren oder deaktivieren.
  • setup_database: Optionales VM-lokales PostgreSQL aktivieren oder deaktivieren.
  • setup_workload: Workload-Installation auf der VM aktivieren oder deaktivieren.
  • setup_loadgen: Optionale synthetische Lastgenerierung aktivieren oder deaktivieren.
  • setup_dns: Wird vom gemeinsamen Wrapper akzeptiert, ist in dieser Baseline aber nicht unterstützt.

Im aktuellen Rehost-Repository werden diese auf bestehende Schalter wie create_project, enable_observability, enable_local_postgresql und die Flags zur Lastgenerierung abgebildet.

Das folgende Diagramm zeigt das implementierte und getestete Ziel, nicht eine zukünftige High-Availability-Variante.

Freigegebene Operator-QuelleSTACKIT ProjektUbuntu VMObservabilityBackup ArchiveSpring Boot JAR + systemdSelbstverwaltetes PostgreSQL eingeschränktes HTTP/SSHlokales SQLeingeschränkter Metrics ScrapeBoot-Volume-Backup

Verwenden Sie ein isoliertes Linux-Labor mit Git, Terraform, Ansible, ShellCheck, SSH/SCP, curl, jq und PostgreSQL-Server-/Client-Werkzeugen einschließlich pg_config. Die Sample-Dump-Skripte nutzen runuser und den lokalen OS-Account postgres und benötigen Root-Rechte in diesem Labor. Bei aktiviertem Server Backup braucht der Cutover zusätzlich eine authentifizierte STACKIT CLI. Verwenden Sie für vorhandene gespeicherte Pläne die Terraform-Version, die sie erzeugt hat; Plandateien sind versionsgebunden.

Beginnen Sie in einem übergeordneten Verzeichnis ohne bereits vorhandenen gleichnamigen Checkout. Dieser Stand enthält die Migrationsworkflows und die deklarative Observability-Verwaltung. Seine JAR ist gegenüber dem in der Replatform-Referenz fixierten Artefakt unverändert:

Terminal-Fenster
umask 077 &&
git clone https://github.com/stackitcloud/stackit-cmf-Rehost-springboot.git &&
git -C stackit-cmf-Rehost-springboot checkout --detach b9225eb35c64b9ef4761c208fadb9a2356431793 &&
test -f stackit-cmf-Rehost-springboot/scripts/run_cutover.sh &&
cd stackit-cmf-Rehost-springboot &&
printf '%s\n' "Workspace ready. Continue from this Rehost checkout." || {
printf '%s\n' "Preparation failed. Resolve the error before continuing." >&2
false
}

Führen Sie die folgenden Schritte erst nach erfolgreicher Vorbereitung aus diesem Checkout aus. Bewahren Sie vorhandene Checkouts, State und Nachweise, statt sie zu ersetzen. Halten Sie Credentials, Pläne, State, Dumps, Inventory und Nachweise privat und außerhalb der Versionsverwaltung; aktivieren Sie kein Shell-Tracing.

Erstellen Sie die private Variablendatei nur, wenn sie noch nicht existiert:

Terminal-Fenster
umask 077
test -e env.tfvars || cp env.tfvars.example env.tfvars
chmod 600 env.tfvars

Bearbeiten Sie die Datei vor dem Plan. Konfigurieren Sie das freigegebene bestehende Projekt oder den Scope für die Projekterstellung, Service-Account-Key-Pfad, SSH-Schlüsselpaar, verfügbares Image, Availability Zone, VM-Flavor und Storage. Beschränken Sie SSH- und Applikations-Ingress auf die Quell-CIDRs, die am Zielpfad tatsächlich ankommen. Verifizieren Sie den SSH-Host-Key über einen vertrauenswürdigen Kanal, bevor Migrationsskripte die strikte Host-Prüfung verwenden. Setzen Sie für diese Skripte SSH_KEY und SSH_USER, falls sie von ~/.ssh/id_rsa und ubuntu abweichen; halten Sie sie konsistent zu private_ssh_key_path und ssh_user in Terraform.

Aktivieren Sie VM-lokales PostgreSQL, Observability und Server Backup für diesen Walkthrough. Lassen Sie für das erste Runtime-Deployment postgresql_restore_after_copy = false und den Quelldump-Pfad leer: Provisioning darf die Quelle nicht vor Probe und Cutover-Freigabe importieren. Übergeben Sie das Datenbankpasswort über den freigegebenen Secret-Mechanismus als TF_VAR_postgresql_app_password und bewahren Sie es für spätere Pläne sicher auf; schreiben Sie es nicht in Variablendatei, Shell-History oder Dokumentation.

Bestätigen Sie Berechtigungen, Quota, Kostenfreigabe und das private Terraform-Backend vor der Initialisierung. Dieser Ablauf setzt einen vorbereiteten Ausführungshost voraus und ist keine vollständige Installationsanleitung für das Labor.

Erstellen Sie einen Quelldump im Custom Format und erfassen Sie SHA-256-Prüfsumme, erwartete Datensatzanzahl und einen Workload-spezifischen deterministischen Fingerprint. Das Repository enthält ein reproduzierbares Beispiel mit acht Datensätzen:

Terminal-Fenster
./scripts/create_source_dump.sh
./scripts/validate_source_dump.sh

Das Validierungsskript stellt den Dump in einem separaten lokalen PostgreSQL-Cluster wieder her, bevor er in eine Migrationsprobe eingehen darf. Die Skripte erzeugen das mitgelieferte Sample in temporären lokalen Clustern; sie exportieren weder eine laufende Anwendung noch die STACKIT VM. Verwenden Sie ein frisches Artefaktverzeichnis und überschreiben Sie keinen bereits freigegebenen Migrationsdump. Exportieren Sie eine reale Quelle unter dem vereinbarten Write Freeze und erfassen Sie gleichwertige Nachweise für Prüfsumme, Anzahl und Fingerprint.

Konfigurieren Sie ein bestehendes STACKIT Projekt oder die Projekterstellung, beschränken Sie SSH- und Applikations-Ingress auf freigegebene Quell-CIDRs und übergeben Sie das Datenbankpasswort über TF_VAR_postgresql_app_password statt über eine Variablendatei. Prüfen Sie vor dem Apply einen gespeicherten Plan.

Terminal-Fenster
terraform init &&
./scripts/check.sh &&
terraform plan -input=false -var-file=env.tfvars -out=tfplan

Stoppen Sie bei Fehlern in Initialisierung, Checks oder Plan. Prüfen Sie Ressourcenänderungen, Zielprojekt, Ingress, Kosten und den deaktivierten initialen Restore, bevor Sie den gespeicherten Plan ausdrücklich anwenden:

Terminal-Fenster
terraform apply tfplan

Terraform führt nach dem Provisioning Ansible aus. Ein erfolgreicher Apply belegt den Abschluss dieser Orchestrierung, nicht die Abnahme migrierter Daten. Prüfen Sie die Laufzeit vor der Probe:

Terminal-Fenster
./scripts/validate_deployment.sh

Führen Sie die Probe gegen eine temporäre Datenbank auf der Ziel-VM aus:

Terminal-Fenster
./scripts/run_migration_rehearsal.sh

Die Probe prüft die Quelldaten, stellt den Dump wieder her, vergleicht Datensatzanzahl und Fingerprint und entfernt die temporäre Datenbank, ohne die produktive springmusic-Datenbank zu verändern.

Hinterlegen Sie die erwarteten Quelldaten in env.tfvars:

enable_local_postgresql = true
postgresql_source_dump_local_path = "artifacts/source-postgresql.dump"
postgresql_restore_after_copy = true
postgresql_expected_album_count = 8
postgresql_expected_album_fingerprint = "<source-fingerprint>"

Führen Sie anschließend das explizite Freigabe-Gate aus:

Terminal-Fenster
./scripts/run_cutover.sh --confirm

Das Skript verlangt ein vollständig verfügbares Server Backup, das höchstens 24 Stunden alt ist. Es erzeugt einen gespeicherten Terraform-Plan, der ausschließlich die Ansible-Orchestrierungsressource ersetzt, weist andere Infrastrukturänderungen zurück, führt den Restore aus, validiert Daten und Laufzeitverhalten und verlangt abschließend einen Terraform-No-op-Plan. Wiederholungen mit demselben Quelldump-Hash bewahren den ursprünglichen Datenbank-Rollback-Punkt.

Die Validierung prüft Datensatzanzahl und Fingerprint der Quelle, Tabellen-Ownership, einen transaktional zurückgerollten Schreibvorgang als Application Role, Erreichbarkeit der Anwendung, Services und den geschützten Rollback-Dump.

Terminal-Fenster
./scripts/validate_migration.sh
./scripts/validate_deployment.sh
./scripts/verify_rollback.sh

Wenn innerhalb des Rollback-Fensters ein freigegebener Rollback-Trigger eintritt, bewahren Sie die aktuelle Zieldatenbank und stellen den ursprünglichen Dump von vor dem Cutover wieder her:

Terminal-Fenster
./scripts/rollback_postgresql.sh --confirm

Mit enable_server_backup = true aktiviert Terraform STACKIT Server Backup und einen täglichen Zeitplan für das Boot Volume der VM. Die Standardaufbewahrung beträgt 14 Tage. Der Cutover verlangt ein vollständig verfügbares Backup, das höchstens 24 Stunden alt ist. Erstellung und Status des Backups wurden am realen Ziel validiert; ein In-place-Restore mit Server Backup bleibt eine disruptive Disaster-Recovery-Operation und muss in einer separaten Recovery-Umgebung geprobt werden.

Server Backup ergänzt den PostgreSQL-Dump von vor dem Restore. Es ersetzt weder die Datenbank-Konsistenzprüfungen noch das Application-Rollback-Verfahren.

Folgen Sie Arbeitsumgebung, privater Zielkonfiguration, Quellnachweisen und geprüftem Provisioning in dieser Reihenfolge. Proben Sie vor dem freigegebenen Cutover und bewahren Sie anschließend die Abnahmenachweise auf. Die Repository-Skripte rufen ausdrücklich terraform auf; ein Ausführungshost mit ausschließlich OpenTofu benötigt eine separat geprüfte Anpassung, nicht nur ersetzte Befehle auf dieser Seite.

Die Implementierung stellt STACKIT Observability bereit und erfasst den Node Exporter. Der Grafana-Provider verwaltet das enthaltene Dashboard im Ordner SCF Rehost mit der vorhandenen Thanos-Datenquelle. Er wartet auf die Bereitschaft der Instanz, statt die Dashboard-Erstellung stillschweigend zu überspringen.

Prüfen Sie über grafana_dashboard_url aktuelle VM-, Spring-Boot- und PostgreSQL-Metriken und verlangen Sie anschließend einen No-op-Plan. Sieben Panels bilden die aktive Basis ab; das Panel für synthetische Anfragen erscheint nur bei aktiviertem lokalem Lastgenerator. Diese Anfragen bilden nicht den gesamten Application-Traffic ab. Die Deployment-Validierung prüft außerdem Exporter-Metriken und Service Health nach dem Apply und nach dem Datenbank-Restore.

Die initialen Grafana-Admin-Zugangsdaten bleiben eine temporäre Authentifizierungsabhängigkeit. Schützen Sie State und gespeicherte Pläne. Benachrichtigungsempfänger, Zuständigkeit für Alarm-Routing, Application-Logs und Distributed Tracing benötigen vor Produktionseinsatz eine separate Konfiguration und Abnahme.

Dieses Beispiel kann in zwei zulässigen Setup-Modi eingesetzt werden.

  • Mit bestehender Application Landing Zone: Verwenden Sie den bereits definierten Projektkontext und Service Account Ihrer Landing-Zone-Implementierung. Nutzen Sie die bekannte Projekt-ID als Deployment-Ziel, zum Beispiel mit create_project = false und project_id = "...", sowie die für diesen Landing-Zone-Scope konfigurierte Service-Account-JSON.
  • Eigenständig ohne bestehendes Landing-Zone-Projekt: Lassen Sie das Beispiel ein dediziertes Projekt erstellen. Setzen Sie create_project = true und geben Sie über parent_container_id einen bestehenden Folder oder Container an, in dem der Service Account ausreichende Berechtigungen hat.

Hinweise zum Landing-Zone-Design finden Sie unter Application Landing Zone.

Nutzen Sie dieses Beispiel als Ausgangspunkt in env.tfvars.

create_project = true
target_project_name = "cmf-rehost-springboot"
target_project_owner_email = "owner@example.com"
parent_container_id = "cmf-xxxxxxxx"
service_account_key_path = "~/.ssh/cmf-sa.json"
public_ssh_key_path = "~/.ssh/id_rsa.pub"
private_ssh_key_path = "~/.ssh/id_rsa"
availability_zone = "eu01-1"
machine_type = "g2i.2"
ssh_allowed_cidr = "203.0.113.10/32"
app_allowed_cidr = "203.0.113.10/32"
enable_local_postgresql = true
enable_observability = true
enable_server_backup = true
  • Standard-Artefaktpfad: ansible/files/springboot-app.jar
  • Standardvariable: jar_local_path verweist auf dieselbe Datei.
  • Alternatives Artefakt: Ersetzen Sie die Datei oder überschreiben Sie jar_local_path.

Wenn sich das Artefakt ändert, erkennt Terraform die geänderte Prüfsumme und führt den Ansible-Deployment-Schritt erneut aus.

Jede Probe, jeder Cutover und jedes Rollback schreibt eine evidence.env-Datei unter artifacts/evidence/<timestamp>-<mode>/. Akzeptieren Sie einen Cutover nur, wenn der Nachweis die erwartete Prüfsumme, Datensatzanzahl, den Fingerprint, die Ziel-VM, eine erfolgreiche Laufzeitvalidierung und den abschließenden Terraform-No-op dokumentiert.

Terminal-Fenster
./scripts/validate_migration.sh
./scripts/validate_deployment.sh
terraform plan -var-file=env.tfvars -detailed-exitcode

Verwenden Sie denselben freigegebenen Quellpfad, Restore-Schalter, Erwartungswert und Fingerprint wie beim abgeschlossenen Cutover. Exit-Code 0 bedeutet keine Änderungen, 2 vorgeschlagene Änderungen und 1 einen Fehler. Ein Plan allein belegt keinen Apply. Der Cutover-Workflow setzt status=passed und terraform_noop=true erst nach Anwendung seines gespeicherten Plans und erfolgreicher Daten- und Laufzeitvalidierung.

  • Vorbereiten: Zieldesign, Zugangswege, Quellnachweise und Recovery-Verantwortung freigeben.
  • Bereitstellen: Infrastrukturplan prüfen und anwenden, danach die VM-Laufzeit unabhängig verifizieren.
  • Proben: In einer isolierten Datenbank wiederherstellen und Integrität prüfen, ohne die Anwendungsdatenbank zu verändern.
  • Umschalten: Schreibzugriffe an der Quelle einfrieren, finalen Dump freigeben und ausschließlich die vorgesehene Orchestrierungsänderung zulassen.
  • Abnehmen oder wiederherstellen: Daten-, Laufzeit- und No-op-Nachweise verlangen; bei fehlgeschlagener Abnahme das vereinbarte Rollback vor der Deadline auslösen.
  • Übergeben: Monitoring, Backup-Ownership, Nachweise und Entscheidungen zur Quellenaufbewahrung vor Optimize übergeben.

Die Replatform-Referenz verwendet das fixierte Spring-Music-JAR und den Sample-Datengenerator dieses Repositories weiter. Ihr Sample-Walkthrough benötigt deshalb diesen Checkout und validierte Dump-Artefakte, aber keine neu bereitgestellte Rehost-VM. Erstellen Sie keine zusätzliche VM allein zur Erzeugung des lokalen Samples.

Für eine tatsächliche Migration von der Rehost-VM zu SKE und PostgreSQL Flex müssen Sie den aktuellen VM-Zustand prüfen, Schreibzugriffe der Anwendung einfrieren, die reale PostgreSQL-Datenbank exportieren und diesen Export qualifizieren. Ein historisch erfolgreicher Rehost-Apply belegt weder aktuelle Erreichbarkeit noch die Gleichwertigkeit des lokalen Samples mit den VM-Daten. Quellexport, Abnahme und Source Failback benötigen ein eigenes freigegebenes Verfahren.

  • Stimmen Sie Betriebsverfahren mit Runbook und Migration Governance ab.
  • Passen Sie für den Produktionseinsatz Sicherheitskontrollen, Sizing, Image-Auswahl und Lifecycle-Automatisierung an.
GOAL

Abnehmen und an den Betrieb übergeben

  • Migrationsstrategie: Rehost (Lift-and-Shift)
  • Anwendungstyp: Spring-Boot-Service (JAR), kein Kubernetes-Ziel
  • Zielplattform: VM-basierter Runtime-Betrieb auf STACKIT
  • Daten-Backend: PostgreSQL
  • In Scope: Terraform-Provisioning, Ansible-Konfiguration, Quelldump-Nachweise, Probe in einer temporären Datenbank, kontrollierter Restore, Laufzeitvalidierung, Rollback, Observability und Server-Backup-Zeitplan.
  • Out of Scope: Code-Refactoring, Wechsel der Datenbank-Engine, Load Balancing, DNS-Switch, TLS-Terminierung, Multi-VM-Verfügbarkeit, Kubernetes, Cloud Foundry und PostgreSQL Flex.
  • Annahmen: Die Quelle verwendet eine PostgreSQL-Version, die mit den Restore-Werkzeugen im Ziel kompatibel ist; freigegebene Quell-CIDRs für SSH und Applikationszugriff sind bekannt.
  • Migrationsleitung: Steuert Zeitplan, Checkpoints und Go/No-Go-Entscheidung.
  • Application Owner: Validiert das Verhalten der Anwendung und business-kritische User Journeys.
  • Platform Engineer: Bereitet VM, eingeschränkte Netzwerkregeln, Monitoring und Backup-Zeitplan vor.
  • DB Owner: Führt DB-Backup, Restore, Konsistenzprüfungen und Rollback-Trigger aus.
  • Operations Owner: Übernimmt den Handover und verantwortet Day-1/Day-2 Incident Response.
  • Access Readiness: SSH, Deployment-Credentials, DB-Zugriff und Secrets-Zugriff sind validiert.
  • Baseline erfasst: Aktuelle Versionen, Umgebungsvariablen, Ports, Zertifikate und geplante Jobs sind dokumentiert.
  • Kapazität validiert: CPU, RAM, Disk-IOPS und Storage auf der Ziel-VM sind bestätigt.
  • Security-Controls bereit: Firewall-Regeln, IAM-Mapping, TLS-Chain und Logging sind aktiv.
  • Quelldaten bereit: Dump-Prüfsumme, erwartete Datensatzanzahl und deterministischer Daten-Fingerprint sind erfasst.
  • Rollback-Readiness: Dump von vor dem Restore, erwartete ursprüngliche Datensatzanzahl, Entscheidungsbefugnis und Deadline sind abgestimmt.
  1. Ziel-App-User und benötigte Filesystem-Struktur anlegen.
  2. Java-Runtime und unterstützende OS-Pakete installieren.
  3. App-Artefakt in das Ziel-Verzeichnis deployen.
  4. Service-Unit (systemd) und Environment-Datei konfigurieren.
  5. Selbstverwaltetes PostgreSQL installieren, Application Role und Datenbank erstellen und den Zugriff auf localhost beschränken.
  6. Node Exporter, Observability Scraping und Server-Backup-Zeitplan aktivieren.
  1. PostgreSQL-Dump im Custom Format ohne Ownership und Privileges der Quelle erstellen.
  2. Prüfsumme, erwartete Datensatzanzahl und deterministischen Fingerprint erfassen und validieren.
  3. ./scripts/run_migration_rehearsal.sh gegen eine temporäre Zieldatenbank ausführen.
  4. Bestätigen, dass die Probe ihre temporäre Datenbank entfernt und die produktive Zieldatenbank nicht verändert hat.
  5. Den ursprünglichen Ziel-Rollback-Dump in einer separaten temporären Datenbank prüfen.
  1. Schreibzugriffe auf der Quelle einfrieren und den finalen freigegebenen Dump erstellen.
  2. ./scripts/run_cutover.sh --confirm mit den freigegebenen Quelldaten ausführen.
  3. Verlangen, dass der gespeicherte Terraform-Plan ausschließlich die Ansible-Orchestrierungsressource ändert.
  4. Datensatzanzahl, Fingerprint, Ownership, Schreibverhalten der Application Role, Services und Endpunkt validieren.
  5. Abschließenden Terraform-No-op-Plan verlangen, Abnahme dokumentieren und Stabilisierungsbeobachtung starten.
  • Technische Gesundheit: Spring Boot, PostgreSQL und Node Exporter sind aktiv; lokale und freigegebene öffentliche HTTP-Checks sind erfolgreich.
  • Funktionale Checks: Die Anwendung liefert die migrierten Spring-Music-Datensätze.
  • Datenprüfungen: Erwartete Datensatzanzahl und Fingerprint stimmen; Tabellen gehören der Application Role.
  • Security-Checks: Runtime Environment und Rollback-Dump sind nur für root beziehungsweise den Datenbank-Owner lesbar.
  • Operations-Checks: Observability Scrape, Server-Backup-Zeitplan, Nachweisdateien und Eskalations-Ownership sind geprüft.
  • Kritischer funktionaler Fehler: Kern-Business-Flow ist nach Fix-Fenster nicht verfügbar.
  • Datenintegritätsrisiko: Abweichung in kritischen Datensätzen ohne schnelle Remediation.
  • Betriebliche Instabilität: Wiederholte Restarts oder nicht aufgelöste kritische Alerts.
  1. Freigegebene Rollback-Entscheidung vor der Deadline auslösen und Logs sowie Nachweise sichern.
  2. ./scripts/rollback_postgresql.sh --confirm ausführen, um Spring Boot zu stoppen und die aktuelle Zieldatenbank zu bewahren.
  3. Geschützten Dump von vor dem Cutover wiederherstellen und die erwartete ursprüngliche Datensatzanzahl validieren.
  4. Spring Boot neu starten und lokale sowie freigegebene öffentliche Erreichbarkeit validieren.
  5. Vereinbarten Betriebszustand von Quelle oder Ziel wieder aufnehmen und Rollback-Nachweis sowie Entscheidung veröffentlichen.
  • Übergabe-Artefakte: Finales Konfigurationspaket, Deployment-Manifest, Validierungsnachweise, Rollback-Log.
  • Ownership-Transfer: Benannter On-Call-Owner und Eskalationsweg sind bestätigt.
  • Stabilisierungsphase: 24-72 Stunden mit erhöhtem Monitoring und täglicher Statusprüfung.
  • Exit-Kriterien: Keine kritischen Alerts, stabile zentrale Metriken und Business-Owner-Sign-off.
GOAL

Optimierung

Kehren Sie vom konkreten Migrationsbeispiel zum Migration Framework zurück. Beginnen Sie Optimize erst nach stabilem Cutover, verwenden Sie repräsentative Produktionstelemetrie, setzen Sie jeweils eine kontrollierte Änderung um und validieren Sie ihre Wirkung auf Zuverlässigkeit, Performance und Kosten.

MigrateOptimizeÜbersicht In 7 Trails

Optimize startet, sobald Workloads auf STACKIT laufen und reale Daten aus dem Betrieb vorliegen. Das Modul überführt Beobachtungen aus dem Betrieb in messbare Verbesserungen für Performance, Stabilität und Wirtschaftlichkeit.

Optimize ist keine einmalige Aufgabe, sondern ein iterativer Zyklus, der sich mit früher Stabilisierung und Unterstützung direkt nach dem Cutover überschneiden kann.

Viele Entscheidungen zu Rightsizing und Tuning sind erst unter echter Last belastbar. Nach dem Cutover lassen sich Annahmen mit Daten aus dem Betrieb validieren und präzisieren.

  1. Laufzeitdaten erfassen: Auslastung, Latenz, Fehlerquoten, Durchsatz und Kostentreiber.
  2. Engpässe und Verschwendungsmuster auf Workload-, Plattform- und Datenebene identifizieren.
  3. Maßnahmen nach Business-Effekt, Risikoreduktion und FinOps-Nutzen priorisieren.
  4. Tuning-Änderungen in kontrollierten Inkrementen umsetzen.
  5. Ergebnisse gegen SLO-, Stabilitäts- und Kostenziele validieren.
  6. Erkenntnisse in Folgewellen und Betriebsstandards zurückführen.
  • Rightsizing: Compute-, Storage- und Netzwerkressourcen an reale Last anpassen.
  • Performance-Tuning: Latenz und Durchsatz durch Konfiguration, Skalierung und Architekturmaßnahmen verbessern.
  • Reliability-Hardening: Incident-Häufigkeit durch Resilienz-, Monitoring- und Fehlerbehandlungsmaßnahmen reduzieren.
  • FinOps-Steuerung: Kostentransparenz verbessern, Verschwendung abbauen und Run-Rate optimieren.

Optimierungsentscheidungen sollten auf Laufzeitdaten basieren, nicht auf Annahmen. Für die praktische Umsetzung werden Workload-Telemetrie, Alerting und kontrollierte Infrastrukturänderungen kombiniert.

  • Managed-Observability-Basis: Mit STACKIT Observability Metriken, Logs und Traces mit Grafana, Prometheus, Thanos, Loki und Tempo erfassen.
  • Erkennungslogik: Klare Schwellwerte und Beobachtungsfenster für Unterauslastung und Überlast definieren.
  • Umsetzungspfad: Rightsizing über IaC-Änderungen (zum Beispiel VM-Flavors) mit Rollback-Checkpoints umsetzen.
  • Validierungsschleife: Nach jedem Tuning-Inkrement SLO, Fehlerquote und Laufkosten erneut messen.
Filter

Innerhalb einer Gruppe weitet jeder Haken die Liste. Die Gruppen engen sich gegenseitig ein.

Framework

Status

Themen

Asset-Titel
Framework
Asset-Typ

Für Replatform-Workloads auf Kubernetes umfasst Optimierung mehrere Ebenen und sollte als gemeinsamer Regelkreis gesteuert werden.

  • Pod-Skalierung: HPA nutzen, um die Replikazahl anhand von Last mit klaren Min-/Max-Grenzen anzupassen.
  • Node-Pool-Skalierung: Ausreichend Cluster-Headroom sicherstellen und den Maschinentyp (Flavor) für CPU-/Memory-Dichteanforderungen abstimmen.
  • Ingress-Skalierung: Den Serviceplan des Load Balancers neu bewerten, wenn Ingress-Durchsatz oder Verbindungsverhalten zum Engpass werden.
  • Storage-Rightsizing: Storage-Klassen nach Performance-Anforderungen persistenter Workloads auswählen.
  • Validierungsdisziplin: Nach jeder inkrementellen Tuning-Änderung Latenz, Fehlerquote und Kosten erneut prüfen.

Zentrale Eingaben

Cutover-Berichte, Incident-Trends, SLO-Messwerte, Telemetrie-Baselines und Kostenberichte.

Ergebnisse

Priorisiertes Verbesserungs-Backlog, validierte Tuning-Änderungen und aktualisierte Betriebsstandards.

Governance-Effekt

Nachvollziehbare Trade-off-Entscheidungen zwischen Performance, Stabilität und Kosten.

  • Optimize folgt auf die technische Umsetzung in Migrate.
  • Aktivitäten direkt nach dem Cutover können parallel laufen, die fachliche Verankerung erfolgt jedoch in der Run-Phase.
  • Umfassende Umbauten bleiben im Modul Refactor.
STACKIT LogoSTACKIT Logo
Rehost Spring Boot mit Observability und VM-Rightsizing optimieren STACKIT · Runbook Open asset ↗

Dieses Asset führt dieselbe Spring-Boot- und PostgreSQL-Referenzimplementierung fort, die für Provisioning, Migration, Cutover und Stabilisierung verwendet wurde. Es führt kein weiteres Beispiel oder Repository ein. Die vorhandenen Terraform-Variablen, Ansible-Konfiguration, Observability-Instanz und Validierungsworkflows bleiben die technische Baseline für Optimize.

Die Optimize-Erweiterung beantwortet eine praktische Frage: Wie lassen sich Über- oder Unterprovisionierung erkennen und VM- oder Storage-Kapazität anschließend über einen kontrollierten IaC-Workflow ändern?

Code & Registry github.com STACKIT CMF Rehost Spring Boot Repository Arbeiten Sie mit derselben Terraform- und Ansible-Referenzimplementierung weiter, die in den vorherigen Rehost-Migrationsschritten verwendet wurde. Repository öffnen Rehost-Implementierungs-Asset

Nutze den managed STACKIT Observability -Stack als Datenquelle.

  • Prometheus: Metrik-Erfassung
  • Thanos: Langfristige Aufbewahrung von Metriken
  • Grafana Loki: Log-Analyse
  • Grafana Tempo: Distributed Traces
  • Grafana: Dashboards und Visualisierung

Architektur-Referenzen:

Nutze das Dashboard, um Infrastruktur-Auslastung, Anwendungszustand, Request-Verhalten und Alert-Historie gemeinsam zu bewerten, bevor die VM-Kapazität geändert wird.

Grafana-Dashboard für die Observability eines Rehost-Spring-Boot-Workloads und VM-Rightsizing-Entscheidungen

Definiere technische Schwellwerte, bevor du Kapazität änderst.

  • Kandidat für Downsize: CPU p95 unter 30% und Memory p95 unter 50% für mindestens 14 Tage.
  • Kandidat für Scale-up: CPU p95 über 75% oder Memory p95 über 80% während Business-Lastfenstern für mindestens drei Tage in Folge.
  • Stabilitäts-Guardrail: Keine offenen kritischen Alerts und keine Regression in der Error-Rate-SLO.

Halte Schwellwerte workload-spezifisch und validiere sie gegen reale Traffic-Muster.

Für stateful Rehost-Workloads sollten Signale aus der Datenbank im selben Dashboard-Zyklus bewertet werden.

  • Verbindungen: Trend aktiver Verbindungen und Verhalten bei Lastspitzen.
  • Datenbank Größe: Entwicklung der Datenbankgröße über die Zeit.
  • Transaktionen: Commit-/Rollback-Trends zur Stabilitätsbewertung.

Nutze diese Signale gemeinsam mit VM-Metriken, damit Optimize-Entscheidungen nicht nur auf CPU oder Memory basieren.

Wenn der Rehost-Workload den Datenbank-Layer später auf PostgreSQL Flex umstellt, sollte DB-Rightsizing in denselben Optimize-Loop aufgenommen werden.

  1. Baseline-Metriken und Traces für einen repräsentativen Zeitraum erfassen.
  2. Optimize-Kandidat mit Dashboards und Alert-Historie bestätigen.
  3. Kapazitätsänderung und Rollback-Checkpoint planen.
  4. VM-Größe per Terraform/OpenTofu anpassen.
  5. Latenz, Error-Rates, Durchsatz und Kosten erneut validieren.
  6. Behalten oder zurückrollen anhand objektiver Kriterien.

Beispiel A: Downsize nach dauerhaft niedriger Auslastung

Abschnitt betitelt „Beispiel A: Downsize nach dauerhaft niedriger Auslastung“

Passe die VM-Größe in env.tfvars an:

machine_type = "g3i.2"

Apply und Plan-Ausgabe prüfen:

Terminal-Fenster
terraform plan -var-file=env.tfvars
terraform apply -var-file=env.tfvars

Danach validieren:

  • Service-Health (systemctl status, synthetische Checks)
  • p95-Latenz und Error-Rate-Trend
  • Kosten-Differenz im Reporting-Zeitraum

Passe die VM-Größe in env.tfvars an:

machine_type = "g3i.4"

Apply durchführen und mit denselben Post-Change-Checks validieren.

Wenn sich SLOs nach dem Rightsizing verschlechtern, rolle zurück, indem du den vorherigen machine_type wiederherstellst und IaC erneut ausführst. Behandle Rollback als regulären Runbook-Schritt und nicht nur als Notfallweg.

  • Abhängig von Plattform-Constraints und Machine Type kann ein Resize einen Neustart oder Ersatz der VM auslösen. Prüfe das Verhalten vorab in terraform plan.

In Rehost-Szenarien sind CPU und Memory nur eine Seite des Rightsizing. Auch Storage-Performance kann zum Engpass werden.

  • Wann Storage prüfen: erhöhte I/O-Wait-Werte, instabile Latenz bei schreibintensiver Last oder Throughput-Sättigung trotz freier CPU.
  • Was auswählen: Storage-Service-Plan und Performance-Klasse passend zum beobachteten IOPS- und Durchsatzprofil.
  • Guidance: Block Storage Service Plans

Performance-Klasse vor dem Provisioning auswählen

Abschnitt betitelt „Performance-Klasse vor dem Provisioning auswählen“

Eine Block-Storage-Performance-Klasse definiert die maximalen IOPS und den maximalen Durchsatz für das gesamte Volume. Zugriffe von Anwendung, Datenbank, Betriebssystem und Backup teilen dieses Performance-Budget. Wählen Sie die Klasse vor dem Erstellen des Volumes anhand gemessener Lastspitzen, Latenzanforderungen, Backup-Aktivität und expliziter Wachstumsreserve.

Aus der STACKIT-DokuService-Pläne › Derzeit verfügbare Servicepläne (Leistungs-Klassen)Stand der Quelle 20.01.2026 · übernommen 05.10.2026

Die folgende Tabelle listet die derzeit verfügbaren Leistungs-Klassen für die Region EU01 auf:

IOPS – Input/Output Operations per second (Ein-/Ausgabebefehle pro Sekunde)

Durchsatz – Durchsatz in Megabyte pro Sekunde

Somit lassen sich die verwendeten Klassen anhand der Namensgebung im Detail unterscheiden. Beispiel: „Block Storage Premium – Leistungs-Klasse 2“ entspricht SSD-Festplatten mit max. 1000 IOPS und max. 100 Mbyte/s Durchsatz.

Was ist das?

Dieser Abschnitt wird mehrmals am Tag automatisch aus der STACKIT-Doku übernommen. Hier lässt er sich nicht ändern. Änderungen gehören in die STACKIT-Doku.

In der Rehost-Baseline teilen sich Betriebssystem, Spring-Boot-Anwendung und PostgreSQL-Daten das Boot Volume. Eine Änderung der Performance-Klasse erfordert daher ein kontrolliertes Ersatzziel:

  1. Wählen Sie die neue Klasse anhand beobachteter IOPS, Durchsatz-, Latenz- und I/O-Wait-Werte.
  2. Prüfen Sie die Bereitschaft für Backup und Datenbank-Rollback.
  3. Stellen Sie Ersatz-VM und Boot Volume mit der gewählten Klasse über IaC bereit.
  4. Wenden Sie die Ansible-Konfiguration erneut an und stellen oder migrieren Sie die Workload-Daten wieder her.
  5. Validieren Sie vor der Umschaltung Applikationsverhalten, Datenintegrität, Storage-Latenz, Backup-Abdeckung und Kosten.

Verwenden Sie ein separates Data Volume, wenn Storage-Kapazität oder -Performance unabhängig vom VM-Lifecycle weiterentwickelt werden müssen. Erstellen Sie für eine andere Performance-Klasse ein neues Volume im erforderlichen Verfügbarkeitsmodell mit ausreichender Kapazität, stoppen Sie Schreibzugriffe, migrieren und verifizieren Sie die Daten, wechseln Sie Attachment oder Mount und bewahren Sie das Quell-Volume auf, bis Abnahme- und Rollback-Gates passiert sind.

Daten aus Block Storage migrieren

Behandeln Sie Storage-Prüfungen als Teil derselben Optimize-Schleife und validieren Sie nach jeder Änderung erneut Latenz, Fehlerverhalten, Recovery und Kostenwirkung.