Cloud Migration - Raus aus der Hyperscaler-Abhängigkeit¶
Die Herausforderung: Vendor Lock-in bei Cloud-Hyperscalern¶
Cloud-Hyperscaler wie AWS, Azure und Google Cloud bieten komfortable, verwaltete Services – aber zu einem hohen Preis: proprietäre APIs, nicht-standardisierte Datenformate, egress fees und vertragliche Hürden schaffen systematischen Vendor Lock-in.
Typische Lock-in-Mechanismen:
- 🔒 Proprietäre Services: RDS, DynamoDB, S3, Lambda mit AWS-spezifischen APIs
- 💰 Egress Fees: Hohe Kosten für Datentransfer beim Wechsel
- 📦 Nicht-portable Formate: Vendor-spezifische IaC (CloudFormation, ARM Templates)
- 🔗 Service-Verkettungen: Tief integrierte Services erschweren Teilmigration
- 📄 Vertragliche Bindung: Enterprise Agreements mit Rabatt-Struktur binden langfristig
Die Folgen:
- ❌ Keine Wechselmöglichkeit bei Preissteigerungen oder Qualitätsproblemen
- ❌ Abhängigkeit von Drittland-Jurisdiktion (CLOUD Act, FISA)
- ❌ Fehlende Souveränität über eigene Infrastruktur
- ❌ Schwierige Compliance (DORA, NIS-2, Data Act)
Der EU Data Act: Portabilität als Pflicht¶
Der Data Act (EU 2023/2854) tritt am 12. September 2025 in Kraft und schafft verbindliche Regeln für Cloud-Switching und Interoperabilität.
Data Act Kernforderungen an Cloud-Provider¶
| Anforderung | Beschreibung | Deadline |
|---|---|---|
| Offene Schnittstellen | Standardisierte, dokumentierte APIs für Export | Sofort |
| Maschinenlesbare Formate | Daten in strukturierten, gängigen Formaten | Sofort |
| Funktionale Äquivalenz | Mindestens für IaaS-Features | Sofort |
| Egress Fee-Abbau | Schrittweise Reduzierung bis auf 0€ | Bis 12.09.2028 |
| Multi-Cloud-Support | Parallelbetrieb und graduelle Migration ermöglichen | Sofort |
| Dokumentierte Switching-Prozesse | Transparente Wechselprozesse vor Vertrag | Sofort |
Was bedeutet das für Unternehmen?¶
- ✅ Recht auf Wechsel – Cloud-Kunden müssen wechseln können
- ✅ Portabilität – Voller Export von Daten, Apps, Konfigurationen
- ✅ Interoperabilität – Offene Standards statt proprietäre Formate
- ✅ Kostenfreiheit – Keine Egress Fees ab 2028
- ✅ Unabhängigkeit – Keine vertraglichen oder technischen Lock-ins
Aber: Der Data Act fordert Rechte – er liefert keine Werkzeuge zur Umsetzung.
Polycrate: Das ideale Werkzeug für souveräne Cloud-Migration¶
Polycrate wurde entwickelt, um standardisierte, portable Infrastruktur-Automatisierung zu ermöglichen – genau das, was der Data Act fordert und Hyperscaler jahrelang verhindert haben.
Warum Polycrate für Cloud-Migration?¶
1. Ansible: Industrie-Standard für heterogene Infrastruktur¶
Polycrate nutzt Ansible als Kern-Engine – den de-facto Industrie-Standard für Automatisierung heterogener IT-Landschaften.
graph LR
Polycrate[Polycrate] --> Ansible[Ansible]
Ansible --> AWS[AWS]
Ansible --> Azure[Azure]
Ansible --> GCP[Google Cloud]
Ansible --> K8s[Kubernetes]
Ansible --> Linux[Linux Hosts]
Ansible --> Docker[Docker]
style Ansible fill:#e74c3c,color:#fff
style Polycrate fill:#3498db,color:#fff Vorteile:
- ✅ Nicht-proprietär: Ansible ist Open Source, kein Vendor Lock-in
- ✅ Universell einsetzbar: AWS, Azure, GCP, Bare Metal, K8s, Docker
- ✅ Deklarativ: Infrastructure as Code, versionierbar, reproduzierbar
- ✅ Etabliert: Über 60% der Unternehmen nutzen Ansible (Red Hat Survey 2023)
- ✅ Agentless: Keine Software-Installation auf Zielsystemen nötig
2. Kubernetes-native Architektur¶
Polycrate fokussiert Kubernetes als Ziel-Plattform – die einzige wirklich cloud-agnostische Infrastruktur-Schicht.
# block.poly - Kubernetes-native App-Deployment
name: my-app
kind: k8sapp
config:
namespace: production
replicas: 3
persistence:
enabled: true
size: 50Gi
actions:
- name: install
playbook: install.yml
# Kubeconfig wird von anderem Block referenziert
kubeconfig:
from: my-cluster
Warum Kubernetes?
- 🌍 Cloud-agnostisch: Läuft identisch auf AWS, Azure, GCP, Bare Metal
- 📦 Container-nativ: Standard-Artefakte (OCI Images), keine proprietären Formate
- 🔄 Portabel: Workloads lassen sich zwischen Clustern verschieben
- 🛠️ Standardisiert: CNCF-Standards (kubectl, Helm, Operators)
- 🔓 Lock-in-frei: Kein Vendor kann Kubernetes "ownen"
3. Kostenlose, Production-Ready Blocks vom PolyHub¶
Der PolyHub bietet kuratierte, kostenlose Blocks für häufige Infrastruktur-Patterns – als Hyperscaler-Alternativen.
Beispiele: Hyperscaler → K8s-native Alternative
| Hyperscaler-Service | Polycrate Block (Open Source) | Technologie |
|---|---|---|
| AWS RDS (PostgreSQL) | ayedo/k8s/cloudnative-pg | CloudNativePG Operator |
| AWS ElastiCache (Redis) | ayedo/k8s/redis | Redis mit Sentinel HA |
| AWS DocumentDB (MongoDB) | ayedo/k8s/mongodb | MongoDB mit Replica Sets |
| AWS ALB/ELB | ayedo/k8s/nginx | NGINX Ingress Controller |
| AWS Certificate Manager | ayedo/k8s/cert-manager | cert-manager + Let's Encrypt |
| AWS ECR | ayedo/k8s/harbor | Harbor Container Registry |
| AWS CloudWatch | ayedo/k8s/victoria-metrics-stack | VictoriaMetrics + Grafana |
| AWS Secrets Manager | ayedo/k8s/hashicorp-vault | HashiCorp Vault |
| AWS SQS/SNS | ayedo/k8s/rabbitmq-operator | RabbitMQ Operator |
Alle PolyHub-Blocks sind:
- 🆓 Open Source (Apache 2.0)
- ✅ Production-Tested
- 📖 Vollständig dokumentiert
- 🔄 Versioniert (Semantic Versioning)
- 🧪 Erweiterbar (via Vererbung)
# Block vom PolyHub pullen
polycrate blocks pull cargo.ayedo.cloud/ayedo/k8s/cloudnative-pg:1.2.0
# Deployen
polycrate run ayedo/k8s/cloudnative-pg install
4. Umfangreiche Cloud-Native Toolchain vorinstalliert¶
Der Polycrate-Container bringt alle nötigen Tools für Cloud-Migration mit – keine lokalen Installationen erforderlich.
Kubernetes & Container:
kubectl v1.32.1 - Kubernetes CLI
helm v3.18.4 - Package Manager für Kubernetes
cilium v0.18.5 - Networking & Security
velero v1.16.1 - Backup & Disaster Recovery
argocd v3.0.6 - GitOps Deployment
docker - Container Runtime CLI
skopeo - Container Image Management
Automatisierung & IaC:
ansible-core - Automation Engine
terraform - Infrastructure as Code
yq v4.45.1 - YAML/JSON Processor
jq - JSON Processor
age v1.2.1 - Encryption Tool
Cloud Provider CLIs (via Ansible):
AWS (boto3) - AWS SDK für Python
Hetzner (hcloud) - Hetzner Cloud API Client
VMware (PyVmomi) - VMware vSphere API
OpenStack - OpenStack APIs
Azure - Azure SDKs (via Ansible modules)
GCP - Google Cloud SDKs (via Ansible modules)
Migration-spezifische Tools:
rsync - Datensynchronisation
openssh-client - Remote-Access
docker-compose - Multi-Container Apps
git - Versionskontrolle
apache2-utils - HTTP-Benchmarking (ab, htpasswd)
Ansible Collections für Provider:
community.general - 1000+ Module für diverse Systeme
community.docker - Docker & Docker Compose Automation
community.vmware - VMware vSphere Automation
netbox.netbox - IPAM & DCIM Integration
Assessment-Workflow mit Polycrate:
# workspace.poly - Migration Assessment
name: aws-migration-assessment
blocks:
- name: aws-inventory
actions:
- name: scan-resources
script:
# AWS CLI via Ansible boto3
- ansible-playbook scan-aws-resources.yml
- name: export-rds-schemas
script:
# PostgreSQL Schema Export
- ansible-playbook export-rds-schemas.yml
- name: analyze-dependencies
script:
# Service Dependency Analysis
- python analyze-service-mesh.py
- yq eval '.services[] | .dependencies' services.yaml
- name: cost-analysis
actions:
- name: calculate-savings
script:
# Cost-Vergleich: AWS vs. Self-Hosted
- python calculate-migration-cost.py
Beispiel: RDS-Datenbank-Assessment mit vorinstallierten Tools
# playbooks/scan-aws-resources.yml
---
- name: Scan AWS RDS Instances
hosts: localhost
tasks:
- name: Get all RDS instances
amazon.aws.rds_instance_info:
region: eu-central-1
register: rds_instances
- name: Export to JSON
copy:
content: "{{ rds_instances | to_nice_json }}"
dest: "{{ artifacts_root }}/aws-rds-inventory.json"
- name: Analyze schemas
shell: |
for instance in $(cat {{ artifacts_root }}/aws-rds-inventory.json | jq -r '.instances[].db_instance_identifier'); do
pg_dump -h ${instance}.abc123.eu-central-1.rds.amazonaws.com \
-U admin \
--schema-only \
-f {{ artifacts_root }}/${instance}-schema.sql
done
Ausführung:
# Alles läuft im Polycrate-Container - keine lokalen Tools nötig!
polycrate run aws-inventory scan-resources
polycrate run aws-inventory export-rds-schemas
polycrate run aws-inventory analyze-dependencies
polycrate run cost-analysis calculate-savings
Vorteile:
- ✅ Keine lokale Installation: Alle Tools im Container, konsistente Versionen
- ✅ Provider-Übergreifend: AWS, Azure, GCP, VMware, Hetzner – alles dabei
- ✅ Assessment-Ready: Direkt mit Inventarisierung starten
- ✅ Migrations-Ready: Schema-Export, Datensync, Testing – alles verfügbar
- ✅ Versioniert: Exakt definierte Tool-Versionen (siehe
Dockerfile.goreleaser)
5. Provider-Unabhängige Infrastructure as Code¶
Polycrate-Workspaces sind vollständig portabel – kein Lock-in an Tools, Provider oder Plattformen.
# workspace.poly - Provider-unabhängige Beschreibung
name: production-stack
blocks:
# Cluster auf beliebigem Provider (Linux-Server)
- name: k8s-cluster
from: cargo.ayedo.cloud/ayedo/linux/k8s-1.27:1.0.0
config:
servers: 3
agents: 5
# Apps auf Cluster (Provider-agnostisch)
- name: postgres
from: cargo.ayedo.cloud/ayedo/k8s/cloudnative-pg:1.2.0
kubeconfig:
from: k8s-cluster
config:
namespace: databases
persistence:
size: 100Gi
storageClass: fast-ssd
- name: app
from: webapp-base:1.0.0
kubeconfig:
from: k8s-cluster
config:
domain: myapp.example.com
replicas: 3
workflows:
- name: deploy-complete-stack
steps:
- name: provision-cluster
block: k8s-cluster
action: provision
- name: deploy-postgres
block: postgres
action: install
- name: deploy-app
block: app
action: install
Dieser Workspace läuft identisch auf:
- ☁️ AWS (via Hetzner Cloud, EKS, EC2)
- ☁️ Azure (AKS, VMs)
- ☁️ Google Cloud (GKE, Compute Engine)
- 🖥️ Bare Metal (eigene Server)
- 🏠 On-Premise (VMware, Proxmox)
Wechsel? → Nur Kubeconfig austauschen, Rest bleibt identisch.
6. OCI-Registry-basiertes Sharing¶
Polycrate nutzt OCI-kompatible Registries (Docker, Harbor, etc.) für Block-Distribution – offener Standard, kein proprietäres Format.
# Block entwickeln
cd blocks/my-custom-postgres
# In private Registry pushen
polycrate block push registry.company.com/infra/postgres:1.0.0
# In anderem Workspace verwenden
polycrate blocks pull registry.company.com/infra/postgres:1.0.0
Data Act-konform:
- ✅ Maschinenlesbares Format (OCI Image Spec)
- ✅ Offener Standard (kein Vendor Lock-in)
- ✅ Portabel (jede OCI-Registry funktioniert)
- ✅ Versioniert (Image Tags)
Der Migrationspfad: Von Hyperscaler zu souveräner K8s-nativer Infrastruktur¶
Phase 1: Assessment & Planung¶
Ziel: Bestandsaufnahme der aktuellen Hyperscaler-Abhängigkeiten
# Workspace für Migration Assessment
name: migration-assessment
blocks:
- name: inventory
actions:
- name: scan-aws
script:
- aws resourcegroupstaggingapi get-resources > aws-resources.json
- python analyze-resources.py aws-resources.json
- name: analyze-dependencies
script:
- echo "Analyzing service dependencies..."
- python dependency-graph.py aws-resources.json > dependencies.yaml
Ergebnis: Inventar aller Ressourcen, Service-Abhängigkeiten, Migrationskandidaten
Phase 2: Ziel-Architektur Design¶
Ziel: K8s-native Alternativen für jeden Hyperscaler-Service identifizieren
Migrationsstrategie:
graph TB
AWS[AWS Services] --> Analysis[Analyse & Mapping]
Analysis --> K8s[Kubernetes-Native<br/>Alternativen]
AWS --> RDS[RDS PostgreSQL]
AWS --> ElastiCache[ElastiCache Redis]
AWS --> ELB[ALB/ELB]
AWS --> ECR[ECR]
AWS --> CloudWatch[CloudWatch]
RDS --> PG[CloudNativePG<br/>ayedo/k8s/cloudnative-pg]
ElastiCache --> Redis[Redis Sentinel<br/>ayedo/k8s/redis]
ELB --> Ingress[NGINX Ingress<br/>ayedo/k8s/nginx]
ECR --> Harbor[Harbor Registry<br/>ayedo/k8s/harbor]
CloudWatch --> Prom[VictoriaMetrics + Grafana<br/>ayedo/k8s/victoria-metrics-stack]
K8s --> PG
K8s --> Redis
K8s --> Ingress
K8s --> Harbor
K8s --> Prom
style AWS fill:#ff9900,color:#fff
style K8s fill:#326ce5,color:#fff
style Analysis fill:#3498db,color:#fff Phase 3: Parallel-Aufbau mit Polycrate¶
Ziel: Neue K8s-native Infrastruktur parallel zur bestehenden aufbauen
# workspace.poly - Migration Workspace
name: migration-production
blocks:
# Neuer K8s-Cluster auf Linux-Servern
- name: new-cluster
from: cargo.ayedo.cloud/ayedo/linux/k8s-1.27:1.0.0
config:
servers: 3
agents: 5
# PostgreSQL-Migration (RDS → CloudNativePG)
- name: postgres-migration
from: cargo.ayedo.cloud/ayedo/k8s/cloudnative-pg:1.2.0
kubeconfig:
from: new-cluster
config:
namespace: databases
app:
persistence:
size: 200Gi # Größe aus RDS übernehmen
storageClass: fast-ssd
backup:
enabled: true
schedule: "0 2 * * *"
actions:
- name: migrate-from-rds
playbook: migrate-rds.yml
# Redis-Migration (ElastiCache → Redis Sentinel)
- name: redis-migration
from: cargo.ayedo.cloud/ayedo/k8s/redis:1.0.0
kubeconfig:
from: new-cluster
config:
namespace: cache
persistence:
enabled: true
size: 50Gi
# Ingress (ALB → NGINX)
- name: ingress
from: cargo.ayedo.cloud/ayedo/k8s/nginx:1.0.0
kubeconfig:
from: new-cluster
# Monitoring (CloudWatch → VictoriaMetrics + Grafana)
- name: monitoring
from: cargo.ayedo.cloud/ayedo/k8s/victoria-metrics-stack:2.0.0
kubeconfig:
from: new-cluster
config:
retention: 30d
storage: 100Gi
workflows:
- name: setup-target-infrastructure
steps:
- name: provision-cluster
block: new-cluster
action: provision
- name: deploy-ingress
block: ingress
action: install
- name: deploy-monitoring
block: monitoring
action: install
- name: deploy-postgres
block: postgres-migration
action: install
- name: deploy-redis
block: redis-migration
action: install
- name: migrate-data
prompt:
message: "Datenmigration starten? (Downtime erforderlich)"
steps:
- name: backup-rds
block: postgres-migration
action: backup-from-rds
- name: stop-old-app
block: legacy-app
action: stop
- name: restore-to-cloudnativepg
block: postgres-migration
action: restore
- name: verify-data
block: postgres-migration
action: verify
- name: start-new-app
block: new-app
action: start
Ausführung:
# Ziel-Infrastruktur aufbauen
polycrate workflows run setup-target-infrastructure --blocks-auto-pull
# Datenmigration durchführen
polycrate workflows run migrate-data --force
# Verifikation
polycrate run postgres-migration verify
polycrate run new-app health-check
Phase 4: Cutover & Validation¶
Ziel: Traffic auf neue Infrastruktur umleiten, alte abschalten
# Cutover-Workflow
workflows:
- name: cutover
prompt:
message: "Production Cutover starten?"
steps:
# DNS/Load Balancer auf neues System umstellen
- name: update-dns
block: dns
action: point-to-new-cluster
# Traffic-Validierung
- name: monitor-traffic
block: monitoring
action: watch-metrics
# Alte Services stoppen (nach Soak-Period)
- name: shutdown-old-services
block: legacy
action: stop
Phase 5: Decommission Hyperscaler-Resources¶
Ziel: Alte Hyperscaler-Ressourcen abbauen
workflows:
- name: cleanup-aws
prompt:
message: "AWS-Ressourcen wirklich löschen?"
steps:
- name: delete-rds
block: aws-cleanup
action: delete-rds-instance
- name: delete-elasticache
block: aws-cleanup
action: delete-elasticache-cluster
- name: delete-alb
block: aws-cleanup
action: delete-load-balancers
Praktische Beispiele¶
Beispiel 1: PostgreSQL-Migration (AWS RDS → CloudNativePG)¶
# workspace.poly - PostgreSQL Migration Block-Definition
name: migration-production
blocks:
- name: postgres-migration
from: cargo.ayedo.cloud/ayedo/k8s/cloudnative-pg:1.2.0
kubeconfig:
from: new-cluster
config:
namespace: databases
aws:
rds_endpoint: "mydb.abc123.eu-central-1.rds.amazonaws.com"
rds_database: "production"
rds_user: "admin"
actions:
- name: backup-from-rds
playbook: playbooks/backup-rds.yml
- name: restore
playbook: playbooks/restore.yml
- name: verify
playbook: playbooks/verify.yml
# playbooks/backup-rds.yml
---
- name: Backup from AWS RDS
hosts: localhost
tasks:
- name: Create backup from RDS
ansible.builtin.shell: |
pg_dump \
-h {{ block.config.aws.rds_endpoint }} \
-U {{ block.config.aws.rds_user }} \
-d {{ block.config.aws.rds_database }} \
-F custom \
-f {{ artifacts_root }}/blocks/postgres-migration/rds-backup.dump
environment:
PGPASSWORD: "{{ lookup('env', 'RDS_PASSWORD') }}"
- name: Verify backup
ansible.builtin.stat:
path: "{{ artifacts_root }}/blocks/postgres-migration/rds-backup.dump"
register: backup_file
- name: Fail if backup missing
ansible.builtin.fail:
msg: "Backup file not created"
when: not backup_file.stat.exists
# playbooks/restore.yml
---
- name: Restore to CloudNativePG
hosts: localhost
tasks:
- name: Get CloudNativePG primary pod
kubernetes.core.k8s_info:
kubeconfig: "{{ kubeconfig_path }}"
kind: Pod
namespace: "{{ block.config.namespace }}"
label_selectors:
- "cnpg.io/cluster={{ block.name }}"
- "role=primary"
register: primary_pod
- name: Copy backup to pod
kubernetes.core.k8s_cp:
kubeconfig: "{{ kubeconfig_path }}"
namespace: "{{ block.config.namespace }}"
pod: "{{ primary_pod.resources[0].metadata.name }}"
remote_path: "/tmp/backup.dump"
local_path: "{{ artifacts_root }}/blocks/postgres-migration/rds-backup.dump"
state: to_pod
- name: Restore backup
kubernetes.core.k8s_exec:
kubeconfig: "{{ kubeconfig_path }}"
namespace: "{{ block.config.namespace }}"
pod: "{{ primary_pod.resources[0].metadata.name }}"
command: |
pg_restore \
-d {{ block.config.aws.rds_database }} \
-U postgres \
/tmp/backup.dump
Ausführung:
# Backup aus RDS
export RDS_PASSWORD="your-rds-password"
polycrate run postgres-migration backup-from-rds
# Restore in CloudNativePG
polycrate run postgres-migration restore
# Verifikation
polycrate run postgres-migration verify
Beispiel 2: Complete Stack Migration¶
# workspace.poly - Full Stack Migration
name: complete-migration
blocks:
# Cluster auf Linux-Servern
- name: cluster
from: cargo.ayedo.cloud/ayedo/linux/k8s-1.27:1.0.0
config:
servers: 3
agents: 5
# Databases
- name: postgres
from: cargo.ayedo.cloud/ayedo/k8s/cloudnative-pg:1.2.0
kubeconfig:
from: cluster
- name: redis
from: cargo.ayedo.cloud/ayedo/k8s/redis:1.0.0
kubeconfig:
from: cluster
# Infrastructure
- name: ingress
from: cargo.ayedo.cloud/ayedo/k8s/nginx:1.0.0
kubeconfig:
from: cluster
- name: cert-manager
from: cargo.ayedo.cloud/ayedo/k8s/cert-manager:1.0.0
kubeconfig:
from: cluster
# Monitoring
- name: monitoring
from: cargo.ayedo.cloud/ayedo/k8s/victoria-metrics-stack:2.0.0
kubeconfig:
from: cluster
# Registry
- name: harbor
from: cargo.ayedo.cloud/ayedo/k8s/harbor:1.0.0
kubeconfig:
from: cluster
workflows:
- name: migrate-complete-stack
steps:
# Infrastructure
- name: provision-cluster
block: cluster
action: provision
- name: deploy-ingress
block: ingress
action: install
- name: deploy-cert-manager
block: cert-manager
action: install
# Monitoring
- name: deploy-monitoring
block: monitoring
action: install
# Databases
- name: deploy-postgres
block: postgres
action: install
- name: deploy-redis
block: redis
action: install
# Registry
- name: deploy-harbor
block: harbor
action: install
Vorteile der Polycrate-basierten Migration¶
1. Data Act-Konformität¶
- ✅ Offene Standards: Ansible, Kubernetes, OCI Images
- ✅ Maschinenlesbare Formate: YAML, JSON
- ✅ Vollständige Portabilität: Workspaces zwischen Providern verschiebbar
- ✅ Keine Egress Fees: Block-Transfer über Standard-Registries
- ✅ Funktionale Äquivalenz: K8s-native Services bieten gleiche Features
2. Souveränität & Kontrolle¶
- 🏛️ EU-Hosting: Kubernetes-Cluster in Deutschland/EU betreibbar
- 🔐 Volle Kontrolle: Kein Vendor kann Zugriff erzwingen
- 🔑 Customer-Managed Keys: Verschlüsselung mit eigenen Schlüsseln
- 🛡️ DORA/NIS-2-konform: Vollständige Exit-Strategien dokumentiert
3. Kosteneffizienz¶
- 💰 Keine Egress Fees: Datentransfer zwischen eigenen Systemen kostenfrei
- 📉 Transparente Preise: Bare-Metal/Hetzner statt AWS-Markup
- 🆓 Open-Source-Stack: PostgreSQL statt RDS, Redis statt ElastiCache
- 📊 Vorhersagbare Kosten: Keine Überraschungen durch versteckte Gebühren
4. Technische Unabhängigkeit¶
- 🔄 Provider-Wechsel: Jederzeit zu anderem Kubernetes-Provider wechselbar
- 🧱 Modulare Architektur: Services einzeln austauschbar
- 📦 Standard-Artefakte: Container-Images, Helm Charts, Ansible Playbooks
- 🌍 Keine Herstellerbindung: Open-Source-Ökosystem statt Vendor-Lock
- 🛠️ Umfangreiche Toolchain: kubectl, helm, ansible, terraform & Cloud-Provider-CLIs vorinstalliert
5. Compliance & Audit¶
- 📋 Dokumentierte Prozesse: Alle Migrations-Steps versioniert in Git
- 🔍 Reproduzierbar: Exakt gleiche Infrastruktur jederzeit neu aufbaubar
- 📊 Audit-Trail: Vollständige Historie aller Änderungen
- ✅ Zertifizierbar: ISO 27001, BSI IT-Grundschutz kompatibel
Zusammenhang mit anderen Konzepten¶
- Warum Polycrate?: Grundlegende Polycrate-Philosophie
- PolyHub: Kostenlose Blocks als Hyperscaler-Alternativen
- Ansible: Industrie-Standard für Automatisierung
- Kubernetes: Cloud-agnostische Ziel-Plattform
- Workflows: Orchestrierung komplexer Migrations-Prozesse
- Registry: OCI-basiertes Block-Sharing für Portabilität
- Recipes: Praktische Migrations-Beispiele
Nächste Schritte¶
- Assessment durchführen:
- Polycrate installieren:
curl -sSL https://get.polycrate.io | bash - Inventar-Workspace erstellen mit vorinstallierten Cloud-Provider-Tools
- AWS/Azure/GCP-Ressourcen scannen (boto3, Azure SDK, GCP SDK bereits dabei)
-
Kosten-Analyse durchführen
-
PolyHub erkunden:
- hub.polycrate.io für K8s-native Alternativen besuchen
-
Hyperscaler-Service → PolyHub-Block Mapping erstellen
-
Pilot starten:
- Nicht-kritischen Service als Proof-of-Concept migrieren
-
Mit vorinstallierten Tools (kubectl, helm, ansible) direkt loslegen
-
Workspace aufbauen:
- Ziel-Infrastruktur parallel zum Hyperscaler aufbauen
-
PolyHub-Blocks für Postgres, Redis, Monitoring etc. nutzen
-
Datenmigration planen:
- Backup-/Restore-Workflows mit Ansible definieren
-
Schema-Export via pg_dump/mongodump (vorinstalliert)
-
Cutover durchführen:
- Traffic auf neue Infrastruktur umleiten
-
Monitoring mit VictoriaMetrics-Stack
-
Decommission:
- Alte Hyperscaler-Ressourcen abbauen
- Mit provider-spezifischen Ansible-Modulen automatisieren
Bereit für souveräne Cloud-Infrastruktur?
Kontaktieren Sie ayedo für: - Migration-Assessments - Architektur-Workshops - Hands-on Unterstützung bei der Umsetzung - Custom Block-Entwicklung für spezifische Use Cases
Data Act Compliance mit Polycrate
Mit Polycrate erfüllen Sie nicht nur die Data Act-Anforderungen – Sie bauen eine zukunftssichere, souveräne Cloud-Infrastruktur auf offenen Standards. Keine Abhängigkeit, volle Kontrolle, transparente Kosten.