Масштабування пакетної обробки

Концепції стримінгу

Mike Metzger

Data Engineer

Що таке масштабування?

  • Поліпшення продуктивності
    • Обробка швидше
      • Менше часу на той самий обсяг даних
    • Обробка більше даних
      • Більше даних за той самий час
Концепції стримінгу

Вертикальне масштабування

  • Краще обладнання
    • Швидший CPU
    • Швидший IO
    • Більше пам'яті
  • Зазвичай найлегший тип масштабування
    • Мінімальна складність
    • Рідко вимагає змін у програмах чи алгоритмах

CPU

Пам'ять

1 Images courtesy https://unsplash.com/@jeremy0
Концепції стримінгу

Мінуси вертикального масштабування

  • Властиво обмежене
  • Може бути дорогим / низький ROI
  • Прогрес індустрії не гарантований
Концепції стримінгу

Горизонтальне масштабування

  • Розбиття завдання на кілька частин
    • Більше комп'ютерів
    • Або більше CPU
  • Найкраще для «надзвичайно паралельних» задач
    • Їх легко розподілити між виконавцями
  • Дуже економічно вигідно
  • Для певних процесів можливі майже лінійні прирости швидкодії

CPU1

CPU2

CPU3

CPU4

Концепції стримінгу

Мінуси горизонтального масштабування

  • Складність
    • Потрібна платформа обробки (наприклад, Apache Spark або Dask)
    • Потрібні розвиненіша мережа
  • Постійне адміністрування
  • Може бути дорогим залежно від вимог
  • «Непаралельні» задачі
Концепції стримінгу

Давайте потренуємось!

Концепції стримінгу

Preparing Video For Download...