Как стать автором
Обновить

Комментарии 29

Давно, мечтаю о таком же UI. Но пока всё делаю веб-сервисами и ручками запускаю. Поиск, предиктивная аналитика, рендеринг иконок в различные форматы.

Пытался пустить данные и вычисления через Azure Machine Learning (как на картинке), но этот инструмент больше заточен под машинное обучение. К тому же JSON понимает не «из коробки».

Спросил ребят на Open Data Science, мне посоветовали только локальные решения. Из чего я сделал вывод, что облачных решений пока нема, а тут такая манящая статья…

С нетерпением ждём выхода в свет. Как насчёт бета-теста?
Спасибо за комментарий!

Azure Machine Learning действительно близок по духу к Нирване, хоть и более узкоспециализированный.

Как уже ниже написала readysteady, мы хотим понять на сколько востребован может быть такой продукт для внешних пользователей. Если все сложиться удачно, то можно будет думать и о бета-тесте :)
Привет! Спасибо за рассказ!

1) А можете, пожалуйста, рассказать, как вы распараллеливаете Job-ы? То есть, вот есть у меня какой-то алгоритм. Как я понимаю, я должен запрограммировать его на каком-то языке и собрать в бинарник (наверное, положить в Докер). Всё, что вы сделаете — это запустите несколько инстансов моего контейнера? Или как-то более хитро сможете расспараллелить задачу?

2) А кто и где хостит Процессоры? Я, как пользователь вашего продукта, должен сам задеплоить свой Процессор в частном/публичном облаке? И с скалабилити я тоже должен сам бороться? Или я опять-таки могу завернуть свой Процессор в Докер, дать вам, и вы сами будете подымать и опускать инстансы?

* Я не разработчик Нирваны и никогда не пользовался ей, но у меня есть определенный опыт с некоторыми системами параллельного запуска задач *
1) Любой по-настоящему параллельный алгоритм позволяет принимать в себя часть данных, обсчитывать их и в дальнейшем объединять для следующего шага. В целом, MapReduce, допустим, работает именно так. То есть да, обычно запускается несколько экземпляров приложения, получающих на вход определенную часть из данных, которую необходимо обработать. Распределить входящие данные и собрать результат обычно проблемы платформы, а не приложения, в этом ее цель. Более хитрое распрделение вряд ли возможно, ну и в любом случае оно ограничено самим алгоритмом, магии тут нет. А что за алгоритм будет запускаться внури и какие сервисы он будет использовать — проблема программиста алгоритма и, частично, проблема платформы.
2) Учитывая ремарку про «полную изоляцию и выделенные ресурсы», job-процессор вероятно и есть контейнер. В этом случае с очень высокой степенью вероятности все будет происходить только в рамках инфраструктуры Я и их облака. Кстати, если модель оплаты будет похожа на Google Bigtables — было бы интересно.
P.S. По описанию Нирвана похожа на Google Cloud Job Discovery, который сейчас в закрытом тестировании. Приятно что Я делает вещи мирового уровня.
1) А можете, пожалуйста, рассказать, как вы распараллеливаете Job-ы?

Сама Нирвана не занимается распараллеливанием процессов. Это зона ответственности процессоров. Job Processor, например, умеет запускать задачи в режиме master-slave.

Единственная параллельность на уровне Нирваны – это выполнение параллельных веток графа.

2) А кто и где хостит Процессоры?

Процессор для Нирваны — это просто web-сервис, реализующий необходимое REST-API. Так что в принципе, он может хоститьсягде угодно. Но в основном они развернуты на нашем внутреннем хостинге (Qloud).
Давно, мечтаю о таком же UI. Но пока всё делаю веб-сервисами и ручками запускаю. Поиск, предиктивная аналитика, рендеринг иконок в различные форматы.

Пытался пустить данные через Azure Machine Learning (как на картинке), но этот инструмент больше заточен под машинное обучение. К тому же JSON понимает не «из коробки».

Спросил ребят на Open Data Science? мне посоветовали только локальные решения. Из чего я сделал вывод, что облачных решений пока нема, а тут такая манящая статья…

С нетерпением ждём выхода в свет. Как насчёт бета-теста?
Извиняюсь за дубликат сообщения, даже не понял как создал его.
Интересно, для каких задач кроме описанных в статье может быть использован данный инструмент?
Если честно, то круг задач довольно широк. навскидку, можно использовать инструмент как систему сборки. Почему нет?
Не уверен на счет нирваны, лет пять назад делали продобный велосипед проект (DSL для описания task-ов, проектов в терминах нирваны, видимо и job-ов и даже была попытка графически визуализировать дерево, но забили на это). Но там имелась возможность не только запускать процессы обработки и передачи данных, но и управляющие команды, флоу основной задачи был примерно такой:

1 Просмотр внешних источников данных
2 Если есть конвертация, каждый источник свой конвертер в общий формат
3 Загрузка в Mongo(остановка репликации/запуск репликации (не помню деталей уже))
4 Запуск процедур индексации (полной/инкрементной) полнотекстового поиска по загруженным данным
5 Регенерация сайтмап для поисковых роботов
6 проверка отказов на каждом шаге уведомление по почте об сбоях
7 отложенный запуск через N минут или через K если был обнаружен сбой

Были так же менее сложные задачи, имелась возможность создавать вложенные задачи условные запуски job-ов, обработка отказов. Контекст исполнения и данные хранились в Mongo, не было серьезных требований по количеству/объемам так как не открытая платформа была, а так для себэ.
Слушайте, это конечно отличная идея, обсуждать внутренние инструменты на публичном ресурсе. Но какая внешним людям польза от знания, что внутри яндекса есть такое чудо? Захотеть трудоустроиться в яндекс, только чтобы потыкать пальчком в крутой тул? Серьезно?
Спасибо за вопрос. Мы и сами думали перед тем, как написать статью, интересно ли будет широкому кругу читателей, если мы не даем доступа к инструменту, а рассказываем про историю его появления и способы применения. Но ведь и про fml много писали на Хабре, хотя пользоваться им снаружи тоже нельзя. И статьи пользовались вниманием.

Мы ведь и без этой статьи обсуждаем внутренние инструменты публично: на собеседованиях, на конференциях, в кругу ML-увлеченных коллег из других компаний (настолько подробно, насколько нам позволяет NDA).

И в конце статьи мы написали, что в числе прочего нам интересно:
— есть ли у широкого круга читателей опыт по работе с подобными системами (а они существуют),
— есть ли горящие задачи, которые можно было бы решать с помощью Нирваны не только в Яндексе.

Делать систему открытой не только для сотрудников — это большая и ресурсозатратная работа для нескольких подразделений. Прямо сейчас это невозможно сделать. И мы размышляем над тем, есть ли потребность.

Есть ли внешним людям польза от нашего знания — вот в комментариях и хотим прочитать. Возможно, мы провернули кучу работы для этой статьи зря. А может, и нет. Решать каждому конкретному читателю.

Да все же рассказывают про свои внутренние ML-платформы:
Facebook FBLearner Flow
Uber Michelangelo
Google TFX
Ничто из этого нельзя потрогать снаружи, так что заманивают на работу, конечно.
С другой стороны, мы вот у себя внутри тоже платформу пилим, да и все на ML-рынке этим в той или иной степени занимаются. И я с интересом смотрю на опыт других, подмечаю интересные идеи.

Зачем Нирване знать о графовой структуре процессов? Зачем ей вообще знать о структуре процессов?
Не очень поняла ваш вопрос. Дело в том, что Нирвана сама подразумевает, что у процессов графовая структура. В Нирване ведь нельзя выполнить процесс, у которого не графовая структура. Можно, конечно, создать граф из одного блока, но это вырожденный вариант графовой структуры.

Нирвана состоит нескольких компонентов, и Workflow Processor, как написано в статье, смотрит на структуру графа и каждый блок, для которого пришли все нужные входные данные, отправляет в процессор, который за этот блок отвечает.

То есть знать о структуре процессов Нирване нужно для того, чтобы процессы выполнять. Другое дело что каждый пользователь сам решает, насколько детально он распишет процесс: может, конкретное действие выполнит один блок, а может — вложенный граф на 3500 блоков. Во втором случае можно больше узнать о конкретном действии, глядя на граф (если этапы процесса достаточно понятно описаны автором поблочно, конечно).
> Нирвана — неспециализированная облачная платформа

Замечательно! А почему на ее аватаре — Себрант? :)
Дима, привет :)

Ты имеешь в виду картинку в начале поста? Это не аватар, эту иллюстрацию мы делали для этой статьи специально. Если честно, я связи у образа монаха с Андреем Себрантом не видела, но теперь понимаю, что они могут казаться похожими.

Мы попросили иллюстраторов взять для статьи образ такого знающего, опытного адепта Нирваны — и не имели в виду никого конкретно.

В Яндексе Нирвана и Кокаин идут рука об руку

Больше похоже на Apache Airflow
Очень интересно! Может сделаете закрытый бета-тест? Тогда и запрашиваемая обратная связь будет более предметной. А там и по результатам может быть выкатите в узкий паблик.

1. На чем у вас написан UI? Это браузер?
2. Какую библиотечку использовали для графа?
1. На чем у вас написан UI? Это браузер?

Да это браузер. UI полностью написан на Polymer.

2. Какую библиотечку использовали для графа?

В первой инкарнации Нирваны, рендерилка графов была сделана поверх JsPlumb. Но очень скоро мы уперлись в производительность, на графах 100+ блоков.
Поэтому было принято решение написать собственный визуализатор «с нуля». Сейчас это хитрая комбинация canvas и HTML, под капотом там redux + lit-html. Вообще отрисовка (и взаимодействие) графа в 3000+ блоков, это отдельная и очень интересная задача :)
Эту рендерилку было бы неплохо иметь в виде отдельного продукта. Насчёт Нирваны не знаю, но вот качественный «Blueprint-like» редактор графов уже сам по себе много где пригодился бы, а найти что-то похожее, даже за деньги, сильно не просто, а потом ещё и дорабатывать напильником не один месяц.
Вообще-то есть вполне хорошая библиотека. Раньше стоила несколько тысяч долларов, теперь ее отдали в Open Source: github.com/jgraph/mxgraph
Штука конечно хорошая, но она принципиально не отличается от прочих найденных библиотек. Это — рисовалка векторных диаграмм, оперирующая графическими примитивами. А нужен редактор визуального языка программирования, оперирующий чем-то вроде AST.
НЛО прилетело и опубликовало эту надпись здесь
Оффтоп про шапку: в матрице символы каны были отзеркалены по горизонтали
Спасибо большое за статью!
Скажите, пожалуйста, как можно подключиться к вашей платформе, мы хотели бы ее использовать для доработки нашей систему по моделированию «умного города».
Здравствуйте! У нас пока нет открытой Нирваны, только закрытая. Эта статья — в каком-то смысле возможность понять, нужна ли вообще рынку открытая и для чего. Очень много нужно планирования, времени и других ресурсов, чтобы внутренний продукт стал внешним, и не каждому внутреннему продукту это нужно.

Спасибо за поддержку.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий