Upgrade to Pro — share decks privately, control downloads, hide ads and more …

K8s-native Daten-Pipelines mit Quarkus und Argo et al.

K8s-native Daten-Pipelines mit Quarkus und Argo et al.

Daten sind der neue Brennstoff für moderne digital Produkte. Aber auch Daten müssen zunächst gefördert und anschließend aufwändig raffiniert und angereichert werden bevor sie wirklich nutzbringend verwendet werden können. Die hierfür verwendeten ETL und ELT Ansätze und Tools sind dabei häufig entweder proprietär oder extrem individuell. Die Wartbarkeit und Skalierbarkeit solcher Ansätze ist leider beschränkt.

Dieser Vortrag beschreibt die Evolution und Migration einer monolithischen Datenversorgung, hinzu flexibel orchestrierbaren Daten-Services und k8s-nativen Daten-Pipelines auf Basis von Quarkus und einer Kombination verschiedener Projekte aus dem Argo Ökosystem: ArgoCD, Workflows und Events.

M.-Leander Reimer

June 22, 2023
Tweet

More Decks by M.-Leander Reimer

Other Decks in Programming

Transcript

  1. Der ETL Prozess wird über Jenkins Pipelines und Workflows gesteuert

    + Maven based Continuous Delivery. QAware | 6 QAware
  2. ▪ 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
  3. 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.
  4. Quarkus im Überblick QAware | 14 ▪ Open source Container-native

    Workflow Engine zur parallelen Job Orchestrierung mit Kubernetes ▪ Meet the Argo Family
  5. 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
  6. 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
  7. 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
  8. 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