Slide 1

Slide 1 text

qaware.de K8s-native Daten-Pipelines mit Argo Workflows und Events Mario-Leander Reimer [email protected] @LeanderReimer

Slide 2

Slide 2 text

2 Mario-Leander Reimer Principal Software Architect @LeanderReimer #cloudnativenerd #qaware #gernperDude

Slide 3

Slide 3 text

Anno 2016 QAware | 3

Slide 4

Slide 4 text

Anno 2017 QAware | 4

Slide 5

Slide 5 text

Anno 2018 QAware | 5

Slide 6

Slide 6 text

■ In einem Whitepaper haben wir Ende 2018 zunächst die Modernisierung und Cloudifizierung des kompletten Systemverbunds beschrieben. Migration in 3 Phasen: – Enabling (Infrastruktur, CI/CD) – Microservice Decomposition und Service Migration – Data Decomposition, Solr und Loader Migration ■ Natürlich gab es unvorhergesehene Herausforderungen: – Zunehmende Datenmenge machte kurzfristige Bedatungs-Jobs quasi unmöglich – Datenqualität der Quellsysteme ist häufig suboptimal und wird erst zu spät erkannt – Instabilitäten der On-Premise Infrastruktur sorgen für schlechte Availability – EOL der Server-Hardware der Solr und Loader Services verschärft die Dringlichkeit – AWS EC2 Instanzen mit AMIs zur Loader Orchestrierung funktioniert, führt jedoch zu langen Feedback Cycles und schlechter Dev-Prod Parity – Betriebsverantwortung und TLM für self-hosted Services (z.B. Jenkins) ist aufwändig Seit dem ist viel passiert … QAware | 6

Slide 7

Slide 7 text

TO THE RESCUE?

Slide 8

Slide 8 text

Die einfachen Kubernetes Resources sind nicht für komplexe containerisierte Workflow Orchestrierung geeignet. QAware | 8

Slide 9

Slide 9 text

TO THE RESCUE!

Slide 10

Slide 10 text

Argo Workflow im Überblick QAware | 10 ■ Open source Container-native Workflow Engine zur parallelen Job Orchestrierung mit Kubernetes ■ Ermöglicht die einfache und schnelle Ausführung von rechenintensive Jobs für maschinelles Lernen, Datenverarbeitung und ETL Jobs, CI/CD sowie Infrastructure Automation auf Kubernetes. ■ Definition der Workflows erfolgt über Kubernetes CRDs (Custom Resource Definition). – Jeder Schritt einer Workflow Definition ist dabei ein Container – Komplexe Workflows können über eine Sequenz von Schritten einfach abgebildet werden, oder aber über eine DAG (Directed Acyclic Graph) – Workflows können parametrisiert werden, über Artifacts können Ergebnisse zwischen Steps ausgetauscht und übergeben werden – Zahlreiche Features wie Schleifen, Conditionals, Parallelität, Synchronisation, Retries, Templates, Lifecycle Hooks werden unterstützt ■ Einfache Installation via Plain YAML oder Helm Chart

Slide 11

Slide 11 text

QAware | 11 WorkflowTemplate Workflow CronWorkflow submit reference Container Script Resource Suspend HTTP Steps DAG Resources Work Items Argo Workflow Concepts Execution reference Parameters inputs entrypoint

Slide 12

Slide 12 text

Argo Workflow Example QAware | 12

Slide 13

Slide 13 text

Argo Events im Überblick QAware | 13 ■ Ein Event-driven Workflow Automation Framework für Kubernetes ■ Ermöglicht das generische Triggern von K8s Objects, Argo Workflows, Serverless Workloads, etc. auf Basis von Events aus mehr als 20+ verschiedenen unterstützten Quellen – Trigger: Argo Rollouts, Argo Workflows, HTTP Requests, Slack Notifications, Kubernetes Objects, Kafka und NATS Message, etc.pp – Sources: Webhooks, Kubernetes Objects, File-based Events, Minio, AWS SNS, AWS SQS, etc.pp ■ Einfache Installation via Plain YAML oder Helm Chart

Slide 14

Slide 14 text

Argo Events Conceptual Architecture QAware | 14

Slide 15

Slide 15 text

lreimer/k8s-dataflows argoproj/argo-workflows argoproj/argo-events

Slide 16

Slide 16 text

qaware.de QAware GmbH Aschauer Straße 32 81549 München Tel. +49 89 232315-0 [email protected] twitter.com/qaware linkedin.com/company/qaware-gmbh xing.com/companies/qawaregmbh slideshare.net/qaware github.com/qaware