Definition Was ist Prefect?

Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Prefect ist eine Plattform zur Automatisierung und zur Verwaltung von Dataflows und Workflows. Es besteht aus der Open-Source-basierten Workflow Engine Prefect Core und der Cloud-basierten Orchestrierungsplattform Prefect Cloud. Prefect untergliedert Workflows in einzelne Tasks. Tasks lassen sich mithilfe von Python-Funktionen beschreiben. Die Kombination von Prefect Core und Prefect Cloud erlaubt hybrides Workflow-Management.

Firmen zum Thema

(Bild: © aga7ta - stock.adobe.com)

Prefect ist der Name eines Management-Systems und einer Plattform zur Ausführung, Automation und Orchestrierung von Workflows. Es setzt sich aus den beiden Komponenten Prefect Core und Prefect Cloud zusammen. Prefect Core ist die Open-Source-basierte Workflow Engine, die sich on-premises oder auf Cloud-basierten Systemen ausführen lässt. Sie steht unter Apache-2.0-Lizenz und wurde 2019 veröffentlicht. Die Engine unterteilt Workflows in einzelne Tasks, die sich mit Python-Funktionen beschreiben lassen.

Prefect Cloud erlaubt die Orchestrierung von Workflows. Workflows lassen sich über ein grafisches Benutzer-Interface per Cloud automatisiert ausführen, gruppieren, filtern und überwachen. Während Prefect Core frei erhältlich ist, ist Prefect Cloud in einem kostenpflichtigen Modell verfügbar. Die Kosten sind von unterschiedlichen Kriterien wie der Ausführung von Tasks in einem bestimmten Zeitraum abhängig.

Durch die Kombination von Prefect Core und Prefect Cloud lassen sich hybride Ansätze zur Automatisierung von Workflows umsetzen. Zusätzlich bringt Prefect mit Prefect Server and Prefect UI ein Open-Source-Backend für die Orchestrierung und das Management von Workflows mit. Prefect ist eine Alternative zu anderen Workflow-Management-Systemen wie Apache Airflow.

Funktionsweise der Prefect Core Engine

Prefect Core ist die Open-Source-Komponente der Workflow-Plattform und agiert als Workflow Engine. Mit ihr lassen sich Workflows erstellen, testen und interaktiv ausführen. Die Workflows setzen sich aus einzelnen Tasks zusammen. Die Tasks lassen sich mit Python-Funktionen beschreiben. Flows stellen die Abhängigkeit der Tasks untereinander und die Datenflüsse dar. Die Tasks sind über die Flows miteinander verbunden und bilden in ihrer Gesamtheit den Worfklow. In den Flows können Parameter definiert und den Tasks als Input übergeben werden. Die Parameter sind zur Laufzeit dynamisch veränderbar. Die lokale Ausführung eines Workflows ist per Run-Methode möglich.

Prefect Cloud zur Cloud-basierten Orchestrierung der Workflows

Prefect Cloud stellt die Cloud-basierte Plattform zur Orchestrierung und zum Monitoring der Workflows zur Verfügung. Die Workflows lassen sich über ein grafisches Benutzer-Interface automatisieren, steuern und überwachen. Zu den unterstützten Funktionen zählen unter anderem:

  • das Gruppieren von Workflows
  • das interaktive Starten, Steuern und Anpassen von Workflows
  • das Scheduling und automatisierte Starten und Stoppen von Workflows
  • die grafische Workflow-Darstellung in Dashboards
  • das Bereitstellen von Logdaten
  • das Betrachten und Filtern von Logdaten
  • das Error Handling

Beispielablauf einer Workflow-Orchestrierung

Prefect unterstützt mit Prefect Core und Prefect Cloud die hybride Worfklow-Automatisierung und -Orchestrierung. Während sich die Workflows Cloud-basiert managen, überwachen und orchestrieren lassen, bleiben der Code der Workflows und die Datenflüsse in einer lokalen On-premises-Umgebung. Ein möglicher Ablauf in einem solchen hybriden Modell kann folgendermaßen aussehen:

  • Erstellen eines Workflows mit Prefect Core in einer lokalen Umgebung
  • erstes Testen und Ausführen des Workflows innerhalb der Workflow Engine
  • Registrieren und übermitteln der Metadaten des Workflows in Prefect Cloud
  • Scheduling der automatisierten Ausführung des Workflows in der Cloud
  • Prefect Cloud initiiert den Start des Workflows – ausgeführt wird er On-Premises mit der Prefect Core Workflow Engine
  • der Code und die Daten des Workflows bleiben in der lokalen Umgebung
  • Statusinformationen des Workflows werden in Form von Metadaten an Prefect Cloud übertragen und dort dargestellt
  • das Monitoring des Workflows erfolgt über die Cloud-Benutzeroberfläche unabhängig vom eigentlichen Ausführungsort des Workflows

Für das Zusammenspiel zwischen Prefect Core und Prefect Cloud ist es erforderlich, auf dem lokalen, den Workflow ausführenden System, einen Agenten zu starten. Dieser Agent kommuniziert mit Prefect Cloud. Er empfängt terminierte Flow Runs aus der Cloud und sorgt für die lokale Ausführung des Workflows. Zudem muss das lokale System in der Prefect Cloud angemeldet und authentifiziert sein.

Die Vorteile des Workflow-Managements mit Prefect

  • die Workflow Engine ist Open-Source-Software und frei verfügbar
  • die Workflows und ihre Tasks lassen sich mit Python-Funktionen beschreiben
  • vollständiges lokales Erstellen, Testen und Ausführen von Workflows möglich
  • die Workflows unterstützen während der Laufzeit veränderbare Parameter – dynamische Workflows realisierbar
  • in Kombination mit Prefect Cloud lassen sich hybride Modelle der Workflow-Automatisierung und -Orchestrierung umsetzen
  • benutzerfreundliches grafisches User Interface verfügbar
  • Versionieren von Workflows über Prefect Cloud UI und Docker-Container möglich
  • umfangreiche grafische Darstellungs- und Montoring-Möglichkeiten der Workflows

(ID:47108674)