---
title: Spring Boot on Cloud Foundry mit PostgreSQL und Autoscaler
description: Referenzarchitektur für Spring Boot auf STACKIT Cloud Foundry mit gemanagtem PostgreSQL, App Autoscaler und Observability für kontrollierte Auslieferung.
sidebar:
  badge:
    text: "STACKIT"
    variant: success
scfAsset:
  managed: false
  category: 'blueprint'
  external: false
  tags: ["design-and-mobilize", "design", "target-architecture", "replatform", "cloud-foundry", "postgresql", "observability", "spring-boot"]
  maintainers:
    - user: "lukas.weberruss"
      role: true
      website: true
source_url: "https://framework.stackit.cloud/de/migration/assetcontainer/stackit/architecture-spring-boot-cloud-foundry-paas-backing-services/"
source_file: "docs/de/migration/assetcontainer/stackit/architecture-spring-boot-cloud-foundry-paas-backing-services.mdx"
---

## Überblick

Dieses Muster nutzt STACKIT Cloud Foundry als primäre Laufzeit für Spring-Boot-Anwendungen.
Das Zielbild priorisiert schnelle Auslieferung über eine durch die Plattform gemanagte Laufzeit, gemanagtes PostgreSQL und Autoscaling.

## Einsatz

- **Application-first-Delivery**: Teams priorisieren Deployment-Geschwindigkeit statt Infrastruktur-Verwaltung.
- **PaaS-Betriebsmodell**: Life cycle, Skalierung und Health-Management werden an die Plattform delegiert.
- **Service-Binding-Ansatz**: Anwendungs-Zugangsdaten werden über Cloud-Foundry-Service-Bindings und native Marketplace-Integrationen bereitgestellt.

## Architekturdiagramm

```d2
vars: {
  d2-config: {
    pad: 32
  }
}

style.font-size: 22

direction: right

Users: "Users" {
  icon: ../../../../../../../public/stackit-icons/networking/ip.svg
}

CloudFoundry: "Cloud Foundry" {
  link: https://docs.stackit.cloud/products/runtime/cloud-foundry/

  Router: "CF Router" {
    icon: ../../../../../../../public/stackit-icons/networking/application-load-balancer.svg
    link: https://docs.stackit.cloud/products/runtime/cloud-foundry/
  }

  Autoscaler: "App AutoScaler Service" {
    icon: ../../../../../../../public/stackit-icons/runtime/cloudfoundry.svg
    link: https://docs.stackit.cloud/products/runtime/cloud-foundry/how-tos/use-the-app-autoscaler/
  }

  SpringApps: "Spring Boot App-Instanzen (1..N)" {
    icon: ../../../../../../../public/stackit-icons/runtime/cloudfoundry.svg
    link: https://docs.stackit.cloud/products/runtime/cloud-foundry/
  }
}

Postgres: "PostgreSQL Flex Service" {
  icon: ../../../../../../../public/stackit-icons/databases/postgresql-flex.svg
  link: https://docs.stackit.cloud/products/databases/postgresql-flex/
}

Obs: "Observability" {
  icon: ../../../../../../../public/stackit-icons/logging-monitoring/observability.svg
  link: https://docs.stackit.cloud/products/logging-and-monitoring/observability/
}

Users -> CloudFoundry.Router: "HTTPS"
CloudFoundry.Router -> CloudFoundry.SpringApps: "Route auf die App"
CloudFoundry.Autoscaler -> CloudFoundry.SpringApps: "Skalierung nach Last"
CloudFoundry.SpringApps -> Postgres: "Service-Binding"
CloudFoundry.SpringApps -> Obs: "Metriken/Logs"
```

## Designprinzipien

- **Service-Bindings konsistent verwenden**: Zugangsdaten und Endpunkte über Plattform-Binding steuern.
- **Stateless-Deployment klar halten**: Daten in PostgreSQL auslagern und App-Instanzen austauschbar halten.
- **Fallback für Service-Limits definieren**: Runbook-Pfade für Quoten oder Wechsel des Service-Plans festlegen.
- **Route-Strategie an Environment-Grenzen ausrichten**: Routen und Service-Instanzen pro Stage oder Tenant trennen.

## Repository-Nutzung (einfacher Rollout und update)

1. Datei aus dem Beispiel kopieren:

```bash
cp env.tfvars.example terraform.tfvars
```

2. Projekt-, Auth- und Cloud-Foundry-Werte in `terraform.tfvars` setzen.

3. Initialer Rollout (Terraform erstellt App und Route):

```hcl
setup_workload            = true
manage_workload_app_route = true
```

```bash
terraform init -upgrade
terraform plan
terraform apply
```

4. Reguläre Updates (stabiler Modus):

```hcl
manage_workload_app_route = false
existing_cf_app_id        = "<deine-app-guid>"
```

```bash
terraform plan
terraform apply
```

Hinweis: Diese Trennung gibt es, weil bestimmte Cloud-Foundry-Provider-Versionen nach der initialen Erstellung weiterhin wiederkehrenden App/Route-Drift erzeugen können.

## Optimize follow-up asset

Für den Schritt Optimierung und Rightsizing im Modul Optimize nutze:

<ScfAssetLoader
  showFilter={false}
  showSearch={false}
  assetIds={[
    "de/migration/assetcontainer/stackit/optimize-replatformed-spring-boot-cloud-foundry-autoscaling",
  ]}
/>
