Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

2 Mario-Leander Reimer Managing Director | CTO @LeanderReimer #cloudnativenerd #qaware #gernperDude

Slide 3

Slide 3 text

QAware | 3

Slide 4

Slide 4 text

QAware | 4 QAware

Slide 5

Slide 5 text

QAware | 5 QAware

Slide 6

Slide 6 text

Der ETL Prozess wird über Jenkins Pipelines und Workflows gesteuert + Maven based Continuous Delivery. QAware | 6 QAware

Slide 7

Slide 7 text

■ In einem Whitepaper haben wir zunächst die Modernisierung und Cloudifizierung des kompletten Systemverbunds durchdacht und beschrieben. Migration in 3 Phasen: – Enabling (Infrastruktur, CI/CD) – Microservice Decomposition und Service Migration – Solr und Loader Migration, Data Decomposition ■ 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 Seitdem ist viel passiert … QAware | 7

Slide 8

Slide 8 text

TO THE RESCUE

Slide 9

Slide 9 text

Die Grundidee: Eine Cloud-native Platform für Micro- und Data-Services. QAware | 9

Slide 10

Slide 10 text

Das EVA Prinzip: Eingabe – Verarbeitung – Ausgabe Datenverarbeitung mit einem Graph von Microservices. QAware | 10

Slide 11

Slide 11 text

TO THE RESCUE

Slide 12

Slide 12 text

Quarkus im Überblick QAware | 12 ■ Container First - Quarkus tailors your application for GraalVM and HotSpot. Amazingly fast boot time, incredibly low RSS memory (not just heap size!) ■ Unifies imperative and reactive - Combine both the familiar imperative code and the reactive style when developing applications. ■ Community and Standards - provides a cohesive, fun to use, full-stack framework by leveraging a growing list of over fifty best-of-breed libraries. ■ Kube Native - combination of Quarkus and Kubernetes provides an ideal environment for creating scalable, fast, and lightweight applications. ■ Developer Joy - good build tool support, CLI, zero config, live reload in the blink of an eye, unified configuration and no hassle native executable generation.

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

Quarkus im Überblick QAware | 14 ■ Open source Container-native Workflow Engine zur parallelen Job Orchestrierung mit Kubernetes ■ Meet the Argo Family

Slide 15

Slide 15 text

Argo Workflow im Überblick QAware | 15 ■ 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 16

Slide 16 text

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

Slide 17

Slide 17 text

Argo Workflow Example QAware | 17

Slide 18

Slide 18 text

Argo Events im Überblick QAware | 18 ■ 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 19

Slide 19 text

Argo Events Conceptual Architecture QAware | 19

Slide 20

Slide 20 text

lreimer/k8s-dataflows lreimer/data-services-data2day argoproj/argo-workflows argoproj/argo-events

Slide 21

Slide 21 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