Zum Inhalt

Software Delivery Plattform

Die ayedo Software Delivery Platform (SDP) ist das Produkt: Platform- und Workload-Cluster mit Identity, CI/CD, GitOps, Registry, Secrets, Observability, Edge und Managed Apps — abgebildet auf und mit Kubernetes.

Die Kubernetes Distribution liefert nur das Cluster (k3s-server oder k8s-1.27). Orchestrierung erfolgt über Polycrate; App-Charts oft über ohMyHelm.

Marketing-Übersicht: ayedo.de/platform/.

Schichten im Überblick

graph TB
    subgraph SDP[Software Delivery Platform]
        PlatformCluster[Platform Cluster<br/>Identity GitLab Argo CD Harbor OpenBao Observability]
        WorkloadCluster[Workload Cluster<br/>Apps und Fachanwendungen]
        Fundament[Cluster-Fundament<br/>Cilium Kyverno Cert-Manager Velero Ingress/Gateway]
    end

    subgraph Distro[Kubernetes Distribution]
        K3sServer[k3s-server<br/>Controlplane im Host-Cluster]
        K8sHost[k8s-1.27<br/>Foundation / On-Prem]
    end

    Polycrate[Polycrate<br/>CLI und API]
    Polycrate --> Distro
    Polycrate --> SDP
    Distro --> SDP
    Fundament --> PlatformCluster
    Fundament --> WorkloadCluster

Kubernetes Distribution (Cluster-Basis)

Nur die Bereitstellung von Kubernetes:

Variante Einsatz
k3s-server Kubernetes-in-Kubernetes Controlplane (K8sControlplane)
k8s-1.27 Foundation / On-Prem auf Linux-Hosts (Region)

Details: Kubernetes Distribution.

Foundation-Blöcke (Linux-Hosts, nicht SDP-k8s-Apps):

Komponente Block Nutzung
k3s auf Hosts ayedo/linux/k8s-1.27 k8s-1.27
Hardening (SSH, auditd, Host-Collector) ayedo/linux/hardening Logs ingestieren

Blöcke und Apps

Die SDP besteht aus Polycrate-Blöcken. Versionen stehen im Polycrate Hub. Nutzung: Platform Operations (Betrieb) und Delivery Operations (Apps ausrollen). Details: Komponenten & Features.

Komponente Block Nutzung
Cilium ayedo/k8s/cilium Network Access
Envoy Gateway ayedo/k8s/envoy Ingress & Edge
NGINX Ingress ayedo/k8s/nginx Ingress & Edge
Cert-Manager ayedo/k8s/cert-manager Features
Kyverno ayedo/k8s/kyverno Policy as Code · Guardrails
Falco ayedo/k8s/falco Features
Velero ayedo/k8s/velero Disaster Recovery · Backup & Restore
Longhorn ayedo/k8s/longhorn Platform Storage
Ceph / Rook ayedo/k8s/rook Platform Storage · Object Storage
RustFS ayedo/k8s/rustfs Object Storage
VictoriaMetrics ayedo/k8s/victoria-metrics-stack Observability · Alerts
VictoriaLogs ayedo/k8s/victoria-logs Observability · Logs ingestieren
Harbor ayedo/k8s/harbor Application Deployment
GitLab ayedo/k8s/gitlab Application Deployment
Argo CD ayedo/k8s/argo-cd Application Deployment
Keycloak ayedo/k8s/keycloak Identity & Access
OpenBao ayedo/k8s/openbao Identity & Access
External Secrets ayedo/k8s/external-secrets Identity & Access
CloudNativePG ayedo/k8s/cloudnative-pg Backup & Restore
Polycrate Operator ayedo/k8s/polycrate-operator Features

Workloads: weitere Managed Apps auf ayedo.de/apps/. Betriebsmodelle: Betriebsmodelle. Onboarding: Erste Schritte.


Polycrate

Polycrate ist das Deployment-Automation-Framework, das die Installation, Konfiguration und Day-2-Operations der gesamten Plattform orchestriert.

Was macht Polycrate?

Polycrate paketiert komplexe Anwendungen und Infrastruktur in wiederverwendbare Blocks:

  • Kubernetes-Cluster selbst
  • Plattform-Komponenten (Cilium, Monitoring, Logging)
  • Managed Apps (GitLab, Harbor, Datenbanken)
  • Custom Applications

Kernkonzepte

Blocks

Modulare Einheiten, die Tools, Dependencies und Installations-Logik kapseln:

# workspace.poly
name: my-platform

blocks:
  - name: gitlab
    from: cargo.ayedo.cloud/ayedo/k8s/gitlab:1.0.0
    config:
      domain: gitlab.example.com
      storage_size: 100Gi

  - name: harbor
    from: cargo.ayedo.cloud/ayedo/k8s/harbor:2.0.0
    config:
      domain: harbor.example.com

Workspaces

Gemeinsame Umgebung, in der Blocks zusammengeführt werden:

my-workspace/
├── workspace.poly         # Workspace-Konfiguration
├── blocks/                # Block-Verzeichnisse
│   ├── custom-app/
│   └── monitoring/
├── artifacts/             # Generierte Artefakte
│   └── blocks/
│       ├── gitlab/
│       └── harbor/
└── .logs/                 # Transaction Logs (optional)

Actions

Benutzerfreundliche Befehle für Workflows:

# Action eines Blocks ausführen
polycrate run gitlab install

# Weitere Actions
polycrate run gitlab backup
polycrate run harbor upgrade
polycrate run monitoring status

Vorteile

  • Infrastructure as Code: Deklarative Konfiguration in Git
  • Wiederverwendbarkeit: Blocks können über Projekte hinweg genutzt werden
  • Versionierung: Alle Changes nachvollziehbar via Git
  • PolyHub: Zentrales Repository für geteilte Blocks

Integration mit Distribution und SDP

  1. Cluster Bootstrap: Kubernetes Distribution (k8s-1.27 und/oder k3s-server)
  2. SDP Installation: Platform-Services und Cluster-Fundament als Blocks
  3. App Deployment: Managed Apps und Workloads
  4. Day-2 Operations: Updates, Backups, Monitoring

Weitere Informationen:


ohMyHelm

ohMyHelm ist ein universeller Helm Chart Wrapper, der es Entwicklern ermöglicht, ihre Anwendungen ohne eigene Chart-Entwicklung auf Kubernetes zu deployen.

Was macht ohMyHelm?

ohMyHelm stellt vorgefertigte, flexible Helm Chart Templates bereit, die über die values.yaml konfiguriert werden können.

Hauptfunktionen

Chart-Funktion

Wenn chart.enabled: true:

  • Deployment/StatefulSet - Flexibel wählbar
  • Service - Automatische Service-Konfiguration
  • Ingress - TLS und Routing
  • RBAC - ServiceAccount und Permissions
  • HPA - Horizontal Pod Autoscaler
  • ConfigMaps & Secrets - Konfiguration und Credentials
  • Init-Container & Sidecars - Multi-Container-Pods
  • Jobs - Pre-/Post-Install Jobs
  • Volumes - Persistent Storage

Helper-Funktionen

Unabhängige Helper, die auch standalone verwendet werden können:

  • Namespaces - Namespace-Erstellung
  • Docker Registry Secrets - Image Pull Secrets
  • Secrets - Generische Secrets mit Auto-Generierung
  • TLS Secrets - TLS-Zertifikate
  • ConfigMaps - Konfigurationsdateien
  • Ingress - Standalone Ingress
  • ServiceMonitor - Prometheus-Monitoring

Vorteile für Entwickler

  • Keine eigene Chart-Entwicklung nötig für typische Apps
  • Ein Chart-Muster für viele Anwendungen
  • Deklarativ / GitOps-tauglich

Beispiel

# Chart.yaml
dependencies:
  - name: ohmyhelm
    alias: myapp
    repository: https://gitlab.com/ayedocloudsolutions/ohmyhelm
    version: 1.13.0

# values.yaml
myapp:
  chart:
    enabled: true
    image:
      repository: myapp
      tag: 1.0.0
    ingress:
      enabled: true
      host: myapp.example.com
      tls: true
    autoscaling:
      enabled: true
      minReplicas: 3
      maxReplicas: 10

Integration mit der Plattform

ohMyHelm nutzt automatisch alle Platform-Services:

  • Cert-Manager: Automatische TLS-Zertifikate
  • Monitoring: ServiceMonitor für VictoriaMetrics
  • Logging: Logs werden automatisch gesammelt
  • Network Policies: Via Kyverno oder manuell
  • Backup: Velero Annotations

Weitere Informationen:


Wie die Komponenten zusammenarbeiten

Developer Workflow

  1. Entwicklung: Entwickler schreibt Code
  2. Chart erstellen: ohMyHelm als Dependency einbinden
  3. Konfiguration: values.yaml anpassen
  4. Commit: Push zu Git-Repository
  5. Deployment: GitOps (Argo CD) oder Polycrate deployed automatisch
  6. Monitoring: Automatisch in VictoriaMetrics/Grafana sichtbar

Operations Workflow

  1. Infrastructure Setup: Polycrate bootstrapped Kubernetes-Cluster
  2. Platform Installation: Polycrate installiert alle Platform-Services
  3. App Onboarding: Neue Apps via ohMyHelm oder Polycrate Blocks
  4. Day-2 Operations: Updates, Backups, Monitoring via Polycrate
  5. Incident Response: über die gebuchte Supportklasse (Leistungsanhang)

Beispiel: Neue App deployen

Als Entwickler (mit ohMyHelm):

# 1. ohMyHelm Chart erstellen
helm create myapp
# Chart.yaml: ohMyHelm als Dependency

# 2. Konfigurieren
vim values.yaml

# 3. Deployen
helm install myapp ./myapp

Als Platform Admin (mit Polycrate):

# workspace.poly
blocks:
  - name: myapp
    from: cargo.ayedo.cloud/ayedo/k8s/generic-app:1.0.0
    config:
      image: myapp:1.0.0
      replicas: 3
polycrate run myapp install

Vorteile der integrierten Plattform

Für Entwickler

  • Schneller Einstieg: Keine Kubernetes-Expertise erforderlich
  • Standardisiert: Bewährte Patterns und Best Practices
  • Self-Service: Unabhängiges Deployment ohne Ops-Team
  • Monitoring inklusive: Automatische Integration mit Grafana

Für Operations

  • Automatisierung: Polycrate orchestriert alles
  • Konsistenz: Gleiche Patterns über alle Umgebungen
  • Wartbarkeit: Infrastructure as Code via Git
  • Skalierbarkeit: Von 1 bis 100+ Anwendungen

Für das Business

  • Time-to-Market: Schnellere Releases
  • Kostenkontrolle: Transparente, planbare Kosten
  • Compliance: GDPR, BSI, NIS2, ISO 27001
  • Support: über die gebuchte Supportklasse (Leistungsanhang)

Erste Schritte

  1. Erste Schritte (Onboarding) — Grundlagen und erste App
  2. Blöcke und Apps — Katalog mit Hub- und How-to-Links
  3. Delivery Operations — Harbor, Argo CD, ohMyHelm, Guardrails
  4. Platform Operations — Betrieb der Plattform-Blöcke
  5. Betriebsmodelle · Komponenten & Features

Support

Weitere Dokumentation