Async Gateway или Разработка системы распределенных...

15
Async Gateway или разработка системы распределенных вычислений с нуля

Transcript of Async Gateway или Разработка системы распределенных...

Page 1: Async Gateway или Разработка системы распределенных вычислений с нуля

Async Gatewayили разработка системы распределенных вычислений с нуля

Page 2: Async Gateway или Разработка системы распределенных вычислений с нуля

© 2014 Epam Systems

Требования

● Поддержка Map Reduce● Поддержка Pipeline● Оптимизация ресурсов● Оптимизация плана вычислений● Удобный API для клиентов

Page 3: Async Gateway или Разработка системы распределенных вычислений с нуля

© 2014 Epam Systems

Технологии

● Java 7 (Java 8 в перспективе)● Hazelcast● Optaplanner● REST Services

Page 4: Async Gateway или Разработка системы распределенных вычислений с нуля

© 2014 Epam Systems

Архитектура

Узел Узел

Узел Узел

Клиент Клиент

ДиспетчерHazelcast Hazelcast

Hazelcast Hazelcast

ХранилищеREST REST

Optaplanner powered

Page 5: Async Gateway или Разработка системы распределенных вычислений с нуля

© 2014 Epam Systems

Работа с HazelcastЯвляется бесплатным распределенным “in-memory” хранилищем

Page 6: Async Gateway или Разработка системы распределенных вычислений с нуля

© 2014 Epam Systems

Использование Optaplanner

2*0+2*3+2*4 2*(3+4)

Математический движок для оптимизации задач и ресурсов

Page 7: Async Gateway или Разработка системы распределенных вычислений с нуля

© 2014 Epam Systems

Узел

● Коммуникация через Hazelcast● Динамическая загрузка новых задач● Запуск задач на исполнение● Версионность задач● Наблюдение за состоянием здоровья

узла

Page 8: Async Gateway или Разработка системы распределенных вычислений с нуля

© 2014 Epam Systems

Загрузка новой задачи на исполнение

Узел

Наблюдатель

Файловая система

Jar JarJarJarJar

Page 9: Async Gateway или Разработка системы распределенных вычислений с нуля

© 2014 Epam Systems

Язык описания задач (DSL)

● Последовательная и параллельная обработка задач

● Возможность дожидаться/не дожидаться выполнения всех задач в пакете

● Понятный API для составления пакетов задач

Page 10: Async Gateway или Разработка системы распределенных вычислений с нуля

© 2014 Epam Systems

Постановка задачи

Задача: Порезать арбуз и вытянуть косточки с помощью Async Gateway

Дано: Целый арбузЦель: Дольки без косточек

Page 11: Async Gateway или Разработка системы распределенных вычислений с нуля

© 2014 Epam Systems

Пример составления плана задачи

План_Выполнения = строитель() .начать(“Взять нож и порезать на 6 частей”, “арбуз”)

Page 12: Async Gateway или Разработка системы распределенных вычислений с нуля

© 2014 Epam Systems

Пример составления плана задачи

План_Выполнения = строитель() .начать(“Взять нож и порезать на 6 частей”, “арбуз”)

.разделитьВыполнение(“Разрезать круглую дольку накрест”)

Page 13: Async Gateway или Разработка системы распределенных вычислений с нуля

© 2014 Epam Systems

Пример составления плана задачи

План_Выполнения = строитель() .начать(“Взять нож и порезать на 6 частей”, “арбуз”)

.разделитьВыполнение(“Разрезать круглую дольку накрест”)

.послеВсех(“Вытянуть косточки”)

Page 14: Async Gateway или Разработка системы распределенных вычислений с нуля

© 2014 Epam Systems

Пример составления плана задачи

План_Выполнения = строитель() .начать(“Взять нож и порезать на 6 частей”, “арбуз”)

.разделитьВыполнение(“Разрезать круглую дольку накрест”)

.послеВсех(“Вытянуть косточки”)

.послеНачать(“Подать арбуз”)

.конец();

x 24

Page 15: Async Gateway или Разработка системы распределенных вычислений с нуля

© 2014 Epam Systems

Вопросы