Zum Inhalt

Polycrate

Was ist Polycrate?

Polycrate ist ein modernes Automatisierungs-Framework und eine Runtime für Ansible, mit dem Sie komplexe Anwendungen und IT- oder Cloud-Infrastruktur paketieren, integrieren und automatisieren können.

Der Kern: Polycrate macht heterogene IT-Infrastrukturen im Bereich Software-Delivery – also Plattformen, Cloud-Infrastruktur, App-Deployments und mehr – deterministisch automatisierbar und wartbar.

Das Problem, das Polycrate löst

Software kommt in allen möglichen Formen und Farben – ebenso wie die Infrastruktur, auf der sie läuft. Um Software auf die richtige Art und Weise zum Endkunden zu bringen (auszuliefern), sind zahlreiche komplexe Tools und Methoden nötig:

  • Container-Orchestrierung (Kubernetes, Docker)
  • Configuration Management (Ansible, Chef, Puppet)
  • CI/CD-Pipelines (GitLab, Jenkins, GitHub Actions)
  • Cloud-Provider-APIs (AWS, Azure, GCP, Bare Metal)
  • Secrets Management, Monitoring, Logging, Networking...

Polycrate bringt all diese Tools und Methoden an einem Ort zusammen, gestützt durch ein einheitliches Framework. Die Idee dahinter: Brücken schlagen zwischen der Vielzahl an Paradigmen, die bei der Entwicklung und dem Betrieb von cloud-nativer Infrastruktur involviert sind.

Das technische Bindemittel ist Ansible – ein bewährter Industrie-Standard für Configuration Management und Automatisierung.

Der gesamte Software Development Lifecycle

Polycrate bringt Features mit, die sowohl Developer als auch Operatoren während des gesamten Software Development Lifecycle (SDLC) unterstützen:

┌─────────────────────────────────────────────────────────────────────┐
│                    Software Delivery Lifecycle                       │
├──────────┬──────────┬──────────┬──────────┬──────────┬─────────────┤
│  Develop │   Build  │   Test   │  Deploy  │  Operate │   Monitor   │
│    ↓     │    ↓     │    ↓     │    ↓     │    ↓     │      ↓      │
│  Blocks  │ Actions  │ Actions  │ Workflows│ Actions  │  Artifacts  │
│  Config  │ Playbooks│ Playbooks│ Rollout  │ Wartung  │  Logging    │
└──────────┴──────────┴──────────┴──────────┴──────────┴─────────────┘

Polycrate bildet den gesamten SDLC ab und ermöglicht es seinen Usern, ihre Software sicher, planbar und hochverfügbar zu entwickeln und zu betreiben.

Für wen ist Polycrate?

Polycrate ist für Menschen und Organisationen, die Software als Service an ihre Kunden ausliefern:

  • SaaS-Anbieter, die ihre Plattform zuverlässig und reproduzierbar deployen müssen
  • Managed Service Provider, die heterogene Kundenumgebungen verwalten
  • Interne Platform-Teams, die Self-Service-Infrastruktur bereitstellen
  • DevOps-Engineers, die den Betrieb automatisieren und standardisieren wollen
  • Entwickler, die ihre Anwendungen in einer konsistenten Umgebung testen und deployen

Mit Polycrate können Sie Tools, Abhängigkeiten und Installations-Logik für beliebige IT-Systeme in modulare Blocks kapseln, diese in einem gemeinsamen Workspace zusammenführen und benutzerfreundliche Actions bereitstellen, die für jedes System einen individuellen Installations- und Wartungs-Workflow ermöglichen.

Polycrate in Aktion

Warum Polycrate?

Polycrate's Framework ermöglicht es Unternehmen, Teams und einzelnen Entwicklern:

  • Reproduzierbare System-Blöcke zu erzeugen, die getestet, versioniert und geteilt werden können
  • Diese Blöcke mit etablierten Guard-Rails zu ganzen Systemen zusammenzustecken
  • Legacy-Systeme schrittweise in die Automatisierung zu überführen
  • Neue Systeme von Anfang an automatisiert zu entwickeln
  • Migrationspfade von Alt nach Neu direkt in die DNA der Infrastruktur einzubauen
  • Den gesamten SDLC in einem einheitlichen Workflow abzubilden

Wer nutzt Polycrate?

Polycrate wird von zahlreichen Unternehmen eingesetzt, um:

  • Dev, Ops und DevSecOps Workflows umzusetzen
  • Souveräne Systeme über mehrere Provider und Architektur-Generationen hinweg zu pflegen
  • Einen kollaborativen Technologie-Layer zu etablieren, auf dem die ganze Organisation aufbauen kann
  • Software sicher, planbar und hochverfügbar an ihre Kunden auszuliefern

Überblick

Polycrate ist ein Kommandozeilen-Tool und benötigt Docker auf dem System, auf dem es eingesetzt wird.

So funktioniert es:

  1. Containerisierte Ausführung: Polycrate führt alle Actions in einem Docker Container aus, der eine Vielzahl an cloud-nativen Tools enthält (Ansible, kubectl, Helm, Cloud-CLIs)
  2. Ansible als Kern: Polycrate bietet erstklassigen Support für Ansible-Playbooks als Action-Implementierung, mit automatischer Übergabe aller Workspace- und Block-Variablen
  3. Deterministische Ausführung: Der containerisierte Ansatz garantiert reproduzierbare Ergebnisse unabhängig von der lokalen Entwicklerumgebung
  4. Block-Bibliotheken: Fertige Blocks können von OCI-kompatiblen Registries gepullt und in Workspaces wiederverwendet werden

Der Polycrate-Ansatz

┌─────────────────────────────────────────────────────────────┐
│                     Ihr Workspace                           │
├─────────────────────────────────────────────────────────────┤
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │   Block A   │  │   Block B   │  │   Block C   │   ...   │
│  │ (Datenbank) │  │  (Cluster)  │  │    (App)    │         │
│  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘         │
│         │                │                │                 │
│         ▼                ▼                ▼                 │
│  ┌─────────────────────────────────────────────────────┐   │
│  │           Polycrate Container (Ansible)             │   │
│  │  • Einheitliche Toolchain                           │   │
│  │  • Konsistente Ausführungsumgebung                  │   │
│  │  • Automatische Artefakt-Verwaltung                 │   │
│  └─────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────┘
       ┌──────────────────────┼──────────────────────┐
       │                      │                      │
       ▼                      ▼                      ▼
 ┌───────────┐         ┌───────────┐         ┌───────────┐
 │  Linux    │         │ Kubernetes│         │   Cloud   │
 │  Hosts    │         │  Cluster  │         │  Provider │
 └───────────┘         └───────────┘         └───────────┘

Cloud Migration: Raus aus der Hyperscaler-Abhängigkeit

  • Von Hyperscalern zu souveräner Infrastruktur


    Migrieren Sie Ihre Infrastruktur von AWS, Azure oder Google Cloud zu einer Kubernetes-nativen, standardisierten Architektur mit offenen Standards.

    Polycrate ist das ideale Werkzeug für Data Act-konforme Cloud-Migration:

    • Ansible-basiert: Industrie-Standard für heterogene Infrastruktur
    • Kubernetes-nativ: Cloud-agnostische Ziel-Plattform
    • Kostenlose Blocks: Hyperscaler-Alternativen vom PolyHub (RDS → CloudNativePG, ElastiCache → Redis, etc.)
    • Provider-unabhängig: Vollständig portable Workspaces
    • Data Act-konform: Offene Standards, maschinenlesbare Formate, keine Lock-ins

    Zum Cloud Migration Guide

Architektur

graph TB
    User[Benutzer] -->|polycrate CLI| CLI[Polycrate CLI]
    CLI -->|lädt| WS[Workspace]
    CLI -->|erstellt| Container[Docker Container]

    WS -->|enthält| Blocks[Blocks]
    WS -->|definiert| Workflows[Workflows]
    WS -->|konfiguriert| Config[workspace.poly]

    Container -->|führt aus| Ansible[Ansible Playbooks]
    Container -->|führt aus| Kubectl[kubectl/Helm]

    Ansible -->|provisioniert| Hosts[Linux Hosts]
    Kubectl -->|deployed| K8s[Kubernetes Cluster]

    CLI -->|push/pull| Hub[Polycrate Hub]
    CLI -->|push/pull| Registry[OCI Registry]

    CLI -->|erstellt| TX[Transactions]
    TX -->|logged in| Logs[Transaction Logs]

    Blocks -->|speichern| Artifacts[artifacts/]
    Artifacts -->|enthält| Inventory[Ansible Inventory]
    Artifacts -->|enthält| Kubeconfig[Kubeconfig]

Polycrate orchestriert Infrastructure-as-Code über einen containerisierten Ansatz. Die CLI lädt einen Workspace, erstellt einen Docker-Container mit allen notwendigen Tools (Ansible, kubectl, Helm), und führt Actions aus Blocks aus. Alle Operationen werden als Transactions geloggt.

Kernkonzepte

Blocks

Blocks sind modulare Einheiten in Polycrate, die Tools, Abhängigkeiten und Installations-Logik für beliebige IT-Systeme kapseln. Ein Block kann:

  • Ein Datenbank-Cluster sein (z.B. CloudNativePG)
  • Eine Kubernetes-Installation (z.B. k3s, RKE2)
  • Eine Anwendung (z.B. Victoria Metrics, Zammad)
  • Ein Basis-System (z.B. Linux-Host-Konfiguration)

Mehr zu Blocks

Workspace

Ein Workspace ist die gemeinsame Umgebung, in der verschiedene Blocks zusammengeführt werden. Er definiert:

  • Welche Blocks verwendet werden
  • Wie diese konfiguriert sind
  • Welche Workflows verfügbar sind
  • Wie Blocks untereinander Artefakte teilen

Mehr zu Workspaces

Actions

Actions sind benutzerfreundliche Befehle, die für jedes System einen individuellen Installations- und Wartungs-Workflow ermöglichen:

polycrate run database install
polycrate run my-app deploy
polycrate run cluster upgrade

Mehr zu Actions

Nächste Schritte