Follow Me Widget

пятница, 5 августа 2011 г.

Windows Azure. Знакомимся с проектом Daytona.

Совсем недавно на одном из саммитов Microsoft была представлена очень интересная и интригующая своим предназначением технология под названием проект Daytona. В двух словах проект Daytona представляет собой MapReduce движок, созданный специально под платформу Windows Azure. Технология может использоваться для широкого круга задач, связанных с анализом данных и алгоритмами машинного обучения. Кроме того заявляется, что Daytona чрезвычайно масштабируется и умеет функционировать на большом количестве одновременно работающих серверов. В основном этот фреймворк будет интересен проектам, которые оперируют большими объемами данных. Например, это могут быть проекты связанные с медициной, образованием и т.д.
При помощи данного фреймворка можно было бы значительно упростить и ускорить процесс нахождения закономерностей в большом количестве данных.
Одним из ограничений текущей версии фреймворка является то, что он запускается только в условии Windows Azure. Для того, чтобы развернуть свое решение на базе проекта Daytona нам необходимо выполнить следующую последовательность шагов :
Project Daytona Setup/Deploy Steps
На первом шаге мы при помощи фреймворка Daytona разрабатываем сам алгоритм анализа. Сам алгоритм должен быть выполнен как последовательность Map и Reduce задач. Следует отметить, что в пакете Daytona (который кстати можно скачать по этому адресу http://research.microsoft.com/en-us/downloads/cecba376-3d3f-4eaf-bf01-20983857c2b1/default.aspx) уже присутствуют примеры разработки таких алгоритмов, а также пошаговые инструкции для разработчиков по разработке новых решений и интеграции с проектом Daytona готовых решений.
На втором шаге нам необходимо загрузить наши данные в хранилище. На данный момент в качестве основного источника данных для проекта Daytona используется хранилище блобов (Azure Blob Storage).
В скачиваемом пакете также присутствуют инструкции по загрузке среды выполнения Daytona в облако. При этом у нас есть возможность настроить количество виртуальных машин, сконфигурировать аккаунт хранилища, где будут накапливаться результаты функционирования алгоритма, а также средства для тестирования работоспособности системы в условиях Windows Azure.
Дальше уже полноценно в игру вступает сама среда Daytona, которая в первую очередь деплоит свой клон на все виртуальные машины после чего подразделяет данные на маленькие порции для того, чтобы они могли быть обработаны параллельно (это собственно и есть map-функция). По завершению среда комбинирует полученные результаты в готовое решение и сохраняет его в хранилище блобов (reduce-функция). Как я уже говорил среда спроектирована для функционирования в условиях Windows Azure, поэтому она на полную мощность использует потенциал этой платформы. Хранилище данных также выбрано не случайно. Все дело в том, что блобы соответствуют всем основным требованиям параллельных вычислений таким как поддержка параллельных чтений, автоматическое сохранение и репликация. В конце концов данный фреймворк чрезвычайно оптимален для большинства задач, требующих значительной аналитики данных. Он поддерживает циклические вычисления; присутствуют механизмы повышающие отказоустойчивость системы, а также нативный программный интерфейс для взаимодействия со средой.
На данный момент проект Daytona находится в стадии RTP (Research Technology Preview). Будем надеяться, что эта технология все также будет активно развиваться так как заявленная функциональность думаю является очень востребованной на рынке.

Комментариев нет: