- PVSM.RU - https://www.pvsm.ru -

Пару недель назад Microsoft анонсировало для Azure новый сервис Azure Batch [1].
Как всегда в описании любого облачного сервиса куча слов про «large-scale parallel and high performance computing».
Читая описания проекта в первый раз, сразу возникнет вопрос- а что он делает такого, что не делает уже существующие проекты, ведь можно загрузить бинарник на исполнение уже давно.
Azure Batch- это windows кластер по запросу, для выполнения операций над большим числом одинаковых, независимых задач.
От WebJob этот проект отличается многим:
Второй кандидат на сравнение- Service Role. Service Role может выполнять любую работу, которыю вы напишите.
Третий кандидат на сравнение Виртуальные машины:
Виртуальные машины вы получаете по одной, в случаи Batch вы получаете сразу кластер и управляется кластером, а не одной виртуальной машиной. Т.е. вы копируете ПО 1 раз, а потом только пользуетесь. (Правда есть особенность, виртуальную машину вы можете выбрать из готовых images, либо смонтировать уже свою, а тут ваш выбор ограничен 3 версиями windows.)
В случаи с виртуальными машинами, как и с Service Role любой планировщик вам придется писать самим и городить велописед.
Далее возникает желание сравнить Batch и HDInside(Hadoop).

Лично мое мнение, что Batch сильно проще, чем Hadoop. В нем нет ни HDFS, Hive, Solar ни кучи других технологий-сервисов.
Простой, чистый windows cluster (набор числодробилок), с минимальным распределением нагрузки и то если потребуется. Простота и каркас для написания планировщика- это единственное, что вообще отличает Batch от ранее созданных сервисов.
Один из авторов на хабре уже писал про Batch в статье [2]и и ему было жаль, что нет dataflow и т.п. Мое мнение- не надо усложнять, чем проще тем лучше и тем ниже порог входа.
Batch — это промежуточное решение между hdinside(hadoop) и виртуальными машин. Над просто виртуалньными машинами абстракция в виде задач и пула виртуальных машин, но не на столько сложно как в hadoop.
Мое личное мнение, что этот сервис надо было делать еще года 3-4 назад, в самом начале Azure, когда все было на порядок проще, а необходимость была и тогда уже.
Сами Microsoft заявляют следующий набор сценариев использования:
Лично у меня, когда я вижу такой список возник вопрос- те же самые задачи уже ранее были представлены как use case к другим сервисам.
Тестирование- это к visual studio online, видео- это media services. По этому зачем реально вам нужен такой кластер- это исключительно на ваше усмотрение.


Среди примеров работы сервера можно найти вот такой пример [3]:
Лично мне он напоминает такой map-reduce.
Как и у всех сервис azure, у Batch есть Rest для управления задач/пулами. Документация [4]доступна:
В Nuget сразу же появились 2 пакета для работы с batch из .net первый [5]и второй [6].
Обертки для уже существующих приложений, чтобы они могли запускаться в azure batch так-же доступны в nuget тут [7]и тут [8].
Цены [9]указаны за час, замер факта использования по минутам, а цены в списке представлены в зависимости от типа запрашиваемого инстанса виртуальной машины. На сам сервис на время preview действует 50% скидка.
Особенность в том, что эта цена без учета стоимости ресурсов виртуальных машин, на которых это будет работать. И реально надо еще добавить цену виртуальных машин [10].
. Суммарно стоимости batch примерно равна использованию базового HDInside [11].
Так, что по деньгам выигрыша нет в использования batch вместо hdinside или просто набора виртуалок.
Текст статьи доступе на github [15]/
Автор: SychevIgor
Источник [16]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/microsoft/74463
Ссылки в тексте:
[1] Azure Batch: http://azure.microsoft.com/en-us/services/batch/
[2] статье : http://habrahabr.ru/post/242403/
[3] пример: https://code.msdn.microsoft.com/Azure-Batch-Apps-Samples-dd781172/sourcecode?fileId=128208&pathId=1607913124
[4] Документация : http://msdn.microsoft.com/en-us/library/azure/dn820177.aspx
[5] первый : http://www.nuget.org/packages/Azure.Batch/
[6] второй: http://www.nuget.org/packages/Microsoft.Azure.Management.Batch/1.1.5-preview
[7] тут : http://www.nuget.org/packages/Microsoft.Azure.Batch.Apps/
[8] тут: http://www.nuget.org/packages/Microsoft.Azure.Batch.Apps.Cloud/
[9] Цены : http://azure.microsoft.com/en-us/pricing/details/batch/
[10] цену виртуальных машин: http://azure.microsoft.com/en-us/pricing/details/cloud-services/
[11] HDInside: http://azure.microsoft.com/en-us/pricing/details/hdinsight
[12] Azure Batch техническая информация: http://azure.microsoft.com/en-us/documentation/articles/batch-technical-overview/
[13] Forum: https://social.msdn.microsoft.com/forums/azure/en-US/home?forum=azurebatch
[14] Примеры кода : https://code.msdn.microsoft.com/site/search?f[0].Type=Topic&f[0].Value=Azure%20Batch&f[0].Text=Azure%20Batch
[15] github: https://github.com/SychevIgor/blog_AzureBatch
[16] Источник: http://habrahabr.ru/post/104066/
Нажмите здесь для печати.