SlideShare una empresa de Scribd logo
1 de 50
Descargar para leer sin conexión
Распределенные
системы
План
● WTF
● Распределенные вычисления
● Немножко о ZeroMQ
WTF
WTF
Распределенная система — это набор независимых компьютеров,
представляющийся их поль-зователям единой объединенной системой
Эмпирические свойства
● Устойчивость при отказе одного из элементов
● Неоднородность элементов, конфигурация системы может изменяться в
процессе функционирования
● Ни один из элементов не обладает полными знаниями о всей системе в
целом
Что в этом хорошего?
● Выход из строя одного элемента системы не приводит к ее отказу в
целом
● Масштабируемость
● Доступность
WTF
● DNS
● CDN
● P2P
● TOR
● AWS
● ...
Кто и когда
● Первые исследования в области начались в 1960х годах прошлого века
● 1960-1970 ARPANET, EMAIL
● 1970-1980 USENET, FIDONET
● И покатилось
Основные архитектуры
● Клиент - сервер
● Кластерная архитектура
● Peer-2-Peer
Versus battle
Versus battle
+ Большая центролизованность
+ Более легкий менеджмент данных
+ Возможность делать бэкапы
+ Легче
- Меньшая устойчивость
- Необходимость высококвалифицированного персонала
- Ограниченность в производительности
ACID
● Атомарность - все транзакции атомарны
● Согласованность - каждая успешная транзакция вносит только
допустимые результаты
● Изолированность - результат параллельных транзакций не зависит друг
от друга
● Долговечность - изменения, созданные успешной транзакцией, не
исчезают после возможных сбоев
в условиях распределенных систем выполнения требований
становится куда сложнее
BASE
● Базовая доступность - сбои в отдельных узлах приводят только к
ограниченной потери работоспособности системы в целом
● Неустойчивое состояние - возможность жертвовать долговечностью не в
критических местах
● Согласование в конечном счете - данные могут быть противоречивы в
определенный промежуток времени. В обозримое время должно
произойти их согласование
значительное усложнение процесса создания распределенных систем
CAP теорема (Брюера)
● Согласованность - во всех элементах (узлах) в один момент времени
данные не противоречат друг другу
● Доступность - любой запрос к завершается корректным откликом
● Устойчивость - разделение на несколько изолированных секций не
приводит к некорректности отклика от каждой из секций
возможны только 2 из 3
CAP теорема (Брюера)
Проблема
Зачем вообще нам нужны эти сложности, ведь делать все в рамках одного
процесса проще?
Проблема
Физические ограничения железа
● Память
● Вычислительные мощности
Pipeline архитектура
Задача:
● Есть некий поток данных
● Над ним необходимо совершать много различных затратных действий
● Время выполнения каждого действия значительно больше времени
Pipeline архитектура
cat usernames.txt | grep “your mom” | sort > moms
Pipeline архитектура
Межпроцессное взаимодействие
Как осуществлять передачу данных между процессами?
IPC
● Файлы
● Сигналы
● Pipes
● Семафоры
● Общая память
● Сокеты
IPC
● Файлы
● Сигналы
● Pipes
● Семафоры
● Общая память
● Сокеты
Очереди сообщений
Очереди сообщений
● Масштабируемость
● Отказоустойчивость
● Буферизация
● Гарантированный порядок сообщений
● Гарантированная доставка сообщений
● Асинхронность
Очереди сообщений
Два относительно стандартизованных текстовых протокола, работающих на
уровне HTTP
● Advanced Message Queuing Protocol
● Simple Text Oriented Messaging Protocol
● MQTT
● IETF CAP
● XMPP
Очереди сообщений
● RabbitMQ
● ZeroMQ
● IronMQ
● OpenMQ
● Apache Kafka
● ...
MapReduce
MapReduce
MapReduce
● MapReduce: Simplified Data Processing on Large Clusters, 2004
● По состоянию на 2014ый год Google отказался от концепции MapReduce
● Самая популярная open-source реализация - Apache Hadoop
MapReduce
Apache Hadoop
● Написан на Java
● Предлагает интерфейсы для запуска произвольных задач
● Обладает хорошо развитой сопутствующей инфраструктурой (сетевая
файловая система, хранилища данных, вспомогательные вещи для
скриптинга)
● Обладает ОГРОМНЫМ количеством архитектурных недостатков
● Достаточно сложен в освоении, настройке и управлении
Apache Hadoop
Apache Hadoop
Apache Hadoop
Apache Hadoop
Apache Hadoop
Apache Hadoop
Apache Hadoop
Apache Hadoop
Apache Hadoop
Apache Hadoop
ZeroMQ
● Не является очередью сообщений в обычном понимании этого термина
● Является универсальным транспортным фреймворком
● Поддерживает большое количество языков программирования
● Обладает великолепной документацией
● Обладает великолепным кодом
● Проверена и используется большим количеством признанных лидеров
индустрии
ZeroMQ
We took a normal TCP socket, injected it with a mix of radioactive isotopes stolen
from a secret Soviet atomic research project, bombarded it with 1950-era cosmic
rays, and put it into the hands of a drug-addled comic book author with a badly-
disguised fetish for bulging muscles clad in spandex. Yes, ZeroMQ sockets are
the world-saving superheroes of the networking world.
ZeroMQ
ZeroMQ
● Различные типы сокетов (соединения 1-1, 1-много, соединения с/без
гарантии доставки, round-robin балансировка и тд)
● Произвольный формат передаваемых данных между сокетами
(возможен любой протокол, от бинарного до текстового)
● Необходимость чуть больше попрограммировать
● Большая гибкость получаемой системы
Обязательные вопросы
● В систему прилетает Task
● Task разбивается на маленькие Job
● Каждая Job мапится на соответствующего воркера
● Каждый воркер выполнения Job отсылает результаты в аггрегатор
● Аггрегатор дожидается выполнения всех Job и отдает итоговый
результат
Обязательные вопросы
● Что делать если выполнение одной из Job по какой-либо причине
сорвалось?
● Как определить, что выполнение сорвалось?
● Как долго ждать аггрегатору завершения выполнения всех Job?
● Как оценивать время выполнения всей Task в зависимости от доступных
свободных Job-нод?
● ….
Базовая архитектура
Controller
Job Nodes
Aggregator
Distributed systems

Más contenido relacionado

La actualidad más candente

noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайnoBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
Ontico
 
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Ontico
 
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Ontico
 
Считаем Рунет или миллион pps в секунду / Дмитрий Смирнов (TNS Russia)
Считаем Рунет или миллион pps в секунду / Дмитрий Смирнов (TNS Russia)Считаем Рунет или миллион pps в секунду / Дмитрий Смирнов (TNS Russia)
Считаем Рунет или миллион pps в секунду / Дмитрий Смирнов (TNS Russia)
Ontico
 
ащита удаленного доступа с помощью континент Tls vpn
ащита удаленного доступа с помощью континент Tls vpnащита удаленного доступа с помощью континент Tls vpn
ащита удаленного доступа с помощью континент Tls vpn
Oleg Boyko
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?
Vadim Madison
 
Systemd. Структура и применение
Systemd. Структура и применениеSystemd. Структура и применение
Systemd. Структура и применение
udmlug
 

La actualidad más candente (18)

noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайnoBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
 
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
 
linux and freebsd monitoring
linux and freebsd monitoringlinux and freebsd monitoring
linux and freebsd monitoring
 
1. Sartakov. Virtualization. June 01, 2013
1. Sartakov. Virtualization. June 01, 20131. Sartakov. Virtualization. June 01, 2013
1. Sartakov. Virtualization. June 01, 2013
 
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
 
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
DPDK в виртуальном коммутаторе Open vSwitch / Александр Джуринский (Selectel)
 
Непрерывность работы критичных сервисов
Непрерывность работы критичных сервисовНепрерывность работы критичных сервисов
Непрерывность работы критичных сервисов
 
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
 
Считаем Рунет или миллион pps в секунду / Дмитрий Смирнов (TNS Russia)
Считаем Рунет или миллион pps в секунду / Дмитрий Смирнов (TNS Russia)Считаем Рунет или миллион pps в секунду / Дмитрий Смирнов (TNS Russia)
Считаем Рунет или миллион pps в секунду / Дмитрий Смирнов (TNS Russia)
 
Макс Лапшин - "EventMachine и evented архитектура"
Макс Лапшин - "EventMachine и evented архитектура"Макс Лапшин - "EventMachine и evented архитектура"
Макс Лапшин - "EventMachine и evented архитектура"
 
ащита удаленного доступа с помощью континент Tls vpn
ащита удаленного доступа с помощью континент Tls vpnащита удаленного доступа с помощью континент Tls vpn
ащита удаленного доступа с помощью континент Tls vpn
 
Лазейки в прошивке ядра LTE-модема
Лазейки в прошивке ядра LTE-модемаЛазейки в прошивке ядра LTE-модема
Лазейки в прошивке ядра LTE-модема
 
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
 
Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?Чему мы научились разрабатывая микросервисы?
Чему мы научились разрабатывая микросервисы?
 
Systemd. Структура и применение
Systemd. Структура и применениеSystemd. Структура и применение
Systemd. Структура и применение
 
IOP202 Redis in Azure
IOP202 Redis in AzureIOP202 Redis in Azure
IOP202 Redis in Azure
 
Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)
Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)
Реклама со скоростью света (DMP-платформа), Сергей Жемжицкий (Clever Data)
 
EZchip Open Flow switch by ARCCN
EZchip Open Flow switch by ARCCN  EZchip Open Flow switch by ARCCN
EZchip Open Flow switch by ARCCN
 

Similar a Distributed systems

Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
Ontico
 
Порядок преодоления болота на маршруте: как не надо писать приложения, основа...
Порядок преодоления болота на маршруте: как не надо писать приложения, основа...Порядок преодоления болота на маршруте: как не надо писать приложения, основа...
Порядок преодоления болота на маршруте: как не надо писать приложения, основа...
HLL
 
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Tanya Denisyuk
 
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл КоринскийСравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Fuenteovejuna
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
it-people
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
Ontico
 
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиАндрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
IBS
 
Highload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPIHighload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPI
Leonid Yuriev
 
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
IT-Portfolio
 
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest
 

Similar a Distributed systems (20)

Sivko
SivkoSivko
Sivko
 
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
 
Порядок преодоления болота на маршруте: как не надо писать приложения, основа...
Порядок преодоления болота на маршруте: как не надо писать приложения, основа...Порядок преодоления болота на маршруте: как не надо писать приложения, основа...
Порядок преодоления болота на маршруте: как не надо писать приложения, основа...
 
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)
 
TMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: Genode
 
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
 
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл КоринскийСравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
Сравнительный анализ хранилищ данных, Олег Царев, Кирилл Коринский
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
 
Сетевое оборудование ETegro Technologies
Сетевое оборудование ETegro TechnologiesСетевое оборудование ETegro Technologies
Сетевое оборудование ETegro Technologies
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
 
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиАндрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
 
Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018
Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018
Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018
 
Создание и развитие отечественной платформы с открытым программным кодом для ...
Создание и развитие отечественной платформы с открытым программным кодом для ...Создание и развитие отечественной платформы с открытым программным кодом для ...
Создание и развитие отечественной платформы с открытым программным кодом для ...
 
Open Ethernet - открытый подход к построению Ethernet сетей
Open Ethernet - открытый подход к построению Ethernet сетейOpen Ethernet - открытый подход к построению Ethernet сетей
Open Ethernet - открытый подход к построению Ethernet сетей
 
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
 
Highload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPIHighload++2013: TopGun - архитектура терабитной платформы DPI
Highload++2013: TopGun - архитектура терабитной платформы DPI
 
Обратная разработка бинарных форматов с помощью Kaitai Struct
Обратная разработка бинарных форматов с помощью Kaitai StructОбратная разработка бинарных форматов с помощью Kaitai Struct
Обратная разработка бинарных форматов с помощью Kaitai Struct
 
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
 
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
 
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
 

Distributed systems

  • 2. План ● WTF ● Распределенные вычисления ● Немножко о ZeroMQ
  • 3. WTF
  • 4. WTF Распределенная система — это набор независимых компьютеров, представляющийся их поль-зователям единой объединенной системой
  • 5. Эмпирические свойства ● Устойчивость при отказе одного из элементов ● Неоднородность элементов, конфигурация системы может изменяться в процессе функционирования ● Ни один из элементов не обладает полными знаниями о всей системе в целом
  • 6. Что в этом хорошего? ● Выход из строя одного элемента системы не приводит к ее отказу в целом ● Масштабируемость ● Доступность
  • 7. WTF ● DNS ● CDN ● P2P ● TOR ● AWS ● ...
  • 8. Кто и когда ● Первые исследования в области начались в 1960х годах прошлого века ● 1960-1970 ARPANET, EMAIL ● 1970-1980 USENET, FIDONET ● И покатилось
  • 9. Основные архитектуры ● Клиент - сервер ● Кластерная архитектура ● Peer-2-Peer
  • 11. Versus battle + Большая центролизованность + Более легкий менеджмент данных + Возможность делать бэкапы + Легче - Меньшая устойчивость - Необходимость высококвалифицированного персонала - Ограниченность в производительности
  • 12. ACID ● Атомарность - все транзакции атомарны ● Согласованность - каждая успешная транзакция вносит только допустимые результаты ● Изолированность - результат параллельных транзакций не зависит друг от друга ● Долговечность - изменения, созданные успешной транзакцией, не исчезают после возможных сбоев в условиях распределенных систем выполнения требований становится куда сложнее
  • 13. BASE ● Базовая доступность - сбои в отдельных узлах приводят только к ограниченной потери работоспособности системы в целом ● Неустойчивое состояние - возможность жертвовать долговечностью не в критических местах ● Согласование в конечном счете - данные могут быть противоречивы в определенный промежуток времени. В обозримое время должно произойти их согласование значительное усложнение процесса создания распределенных систем
  • 14. CAP теорема (Брюера) ● Согласованность - во всех элементах (узлах) в один момент времени данные не противоречат друг другу ● Доступность - любой запрос к завершается корректным откликом ● Устойчивость - разделение на несколько изолированных секций не приводит к некорректности отклика от каждой из секций возможны только 2 из 3
  • 16. Проблема Зачем вообще нам нужны эти сложности, ведь делать все в рамках одного процесса проще?
  • 17. Проблема Физические ограничения железа ● Память ● Вычислительные мощности
  • 18. Pipeline архитектура Задача: ● Есть некий поток данных ● Над ним необходимо совершать много различных затратных действий ● Время выполнения каждого действия значительно больше времени
  • 19. Pipeline архитектура cat usernames.txt | grep “your mom” | sort > moms
  • 21. Межпроцессное взаимодействие Как осуществлять передачу данных между процессами?
  • 22. IPC ● Файлы ● Сигналы ● Pipes ● Семафоры ● Общая память ● Сокеты
  • 23. IPC ● Файлы ● Сигналы ● Pipes ● Семафоры ● Общая память ● Сокеты
  • 25. Очереди сообщений ● Масштабируемость ● Отказоустойчивость ● Буферизация ● Гарантированный порядок сообщений ● Гарантированная доставка сообщений ● Асинхронность
  • 26. Очереди сообщений Два относительно стандартизованных текстовых протокола, работающих на уровне HTTP ● Advanced Message Queuing Protocol ● Simple Text Oriented Messaging Protocol ● MQTT ● IETF CAP ● XMPP
  • 27. Очереди сообщений ● RabbitMQ ● ZeroMQ ● IronMQ ● OpenMQ ● Apache Kafka ● ...
  • 30. MapReduce ● MapReduce: Simplified Data Processing on Large Clusters, 2004 ● По состоянию на 2014ый год Google отказался от концепции MapReduce ● Самая популярная open-source реализация - Apache Hadoop
  • 32. Apache Hadoop ● Написан на Java ● Предлагает интерфейсы для запуска произвольных задач ● Обладает хорошо развитой сопутствующей инфраструктурой (сетевая файловая система, хранилища данных, вспомогательные вещи для скриптинга) ● Обладает ОГРОМНЫМ количеством архитектурных недостатков ● Достаточно сложен в освоении, настройке и управлении
  • 43. ZeroMQ ● Не является очередью сообщений в обычном понимании этого термина ● Является универсальным транспортным фреймворком ● Поддерживает большое количество языков программирования ● Обладает великолепной документацией ● Обладает великолепным кодом ● Проверена и используется большим количеством признанных лидеров индустрии
  • 44. ZeroMQ We took a normal TCP socket, injected it with a mix of radioactive isotopes stolen from a secret Soviet atomic research project, bombarded it with 1950-era cosmic rays, and put it into the hands of a drug-addled comic book author with a badly- disguised fetish for bulging muscles clad in spandex. Yes, ZeroMQ sockets are the world-saving superheroes of the networking world.
  • 46. ZeroMQ ● Различные типы сокетов (соединения 1-1, 1-много, соединения с/без гарантии доставки, round-robin балансировка и тд) ● Произвольный формат передаваемых данных между сокетами (возможен любой протокол, от бинарного до текстового) ● Необходимость чуть больше попрограммировать ● Большая гибкость получаемой системы
  • 47. Обязательные вопросы ● В систему прилетает Task ● Task разбивается на маленькие Job ● Каждая Job мапится на соответствующего воркера ● Каждый воркер выполнения Job отсылает результаты в аггрегатор ● Аггрегатор дожидается выполнения всех Job и отдает итоговый результат
  • 48. Обязательные вопросы ● Что делать если выполнение одной из Job по какой-либо причине сорвалось? ● Как определить, что выполнение сорвалось? ● Как долго ждать аггрегатору завершения выполнения всех Job? ● Как оценивать время выполнения всей Task в зависимости от доступных свободных Job-нод? ● ….