Scalare l’elaborazione batch

Concetti di Streaming

Mike Metzger

Data Engineer

Cos’è lo scaling?

  • Migliorare le prestazioni
    • Elaborare più velocemente
      • Meno tempo per la stessa quantità di dati
    • Elaborare più dati
      • Più dati nello stesso tempo
Concetti di Streaming

Scaling verticale

  • Hardware migliore
    • CPU più veloce
    • IO più veloce
    • Più memoria
  • In genere il tipo di scaling più semplice
    • Meno complessità
    • Raramente richiede cambiare programmi/algoritmi

CPU

Memoria

1 Immagini per gentile concessione di https://unsplash.com/@jeremy0
Concetti di Streaming

Svantaggi dello scaling verticale

  • Limitato per natura
  • Può essere costoso / ROI basso
  • I miglioramenti del settore non sono garantiti
Concetti di Streaming

Scaling orizzontale

  • Suddividere un’attività in più parti
    • Più computer
    • Possono anche essere più CPU
  • Meglio per attività "ampiamente parallelizzabili"
    • Facili da distribuire tra i worker
  • Può essere molto conveniente
  • Può avere miglioramenti quasi lineari per certi processi

CPU1

CPU2

CPU3

CPU4

Concetti di Streaming

Svantaggi dello scaling orizzontale

  • Complessità
    • Richiede un framework (es. Apache Spark o Dask)
    • Richiede più rete
  • Gestione continua
  • Può essere costoso a seconda dei requisiti
  • Attività "non parallele"
Concetti di Streaming

Passons à la pratique !

Concetti di Streaming

Preparing Video For Download...