2016-12-01 10 views
-1

В ближайшее время: требуется 50 виртуальных виртуальных машин в течение 10 минут, 1-2 раза за день.Выберите облачный сервис для нечастых вычислений на большие облака

Задача состоит в обработке сотен ГБ данных. Данные находятся в небольших кусках, и весь код обработки реализован и готов к масштабированию от одного до сотен ядер. Средний набор данных занимает 10 минут для обработки на 50VM (каждый с 16 + GB RAM, всего 200 ядер).

Задачи обработки нечасты и непредсказуемы (по запросу пользователя), поэтому нет смысла постоянно поддерживать виртуальные виртуальные машины.

Однако большинство облачных сервисов медленно масштабируются, поэтому «10 минут на 50 виртуальных машинах» поворачиваются на 30 минут, теряя время на виртуальных машинах, и даже в этом случае ресурсы не используются на 100%, потому что когда последние виртуальные машины, наконец, в сети, задача уже обработана. После этого наступает период «полного расточительства», когда эти виртуальные машины завершают работу еще на 30 + минут, но все еще выставлены счета.

Есть ли известная облачная служба, способная быстро запускать и останавливать 50 виртуальных машин для такой задачи? Предпочтительно, с прозрачной ценой.

+0

Это не по теме для StackOverflow - вы просите рекомендации по инструменту/сервису. Это не вопрос программирования, на который нельзя ответить объективно. –

+0

@DavidMakogon Я не согласен с тем, что в настоящее время не существует инструмента, который бы соответствовал требованиям, поэтому легко дать объективный ответ - просто назовите инструмент, который соответствует потребностям. –

+0

@DavidMakogon более того - я не вижу, как этот вопрос «не программируется»: я программист, нуждающийся в таком решении для проекта. –

ответ

-1

Вы можете использовать услугу Azure Batch, предназначенную для высокопроизводительных вычислений (HPC). Он предназначен для выполнения задач с интенсивным вычислением на 100 или 100 виртуальных машинах и масштабирования автоматически. Вы можете запустить их по запросу или по расписанию. Вы платите, как только виртуальные машины готовы начать выполнение ваших задач.

Вот некоторые полезные вводные ссылки

  1. Azure Batch
  2. Short introductory video (староват)
  3. Longer more recent video

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

Я не знаю других облачных платформ, поэтому не могу вам помочь.

+0

Azure Batch имеет все недостатки, о которых я упомянул в своих вопросах: он не предназначен для быстрого запуска загрузок виртуальных машин по требованию. Он предназначен для обработки постоянной нагрузки HPC ... Пожалуйста, дайте мне знать, если я ошибаюсь. –

+0

Фактически вы можете динамически добавлять/удалять вычислительные узлы на основе ваших параметров, задавая формулы. https://docs.microsoft.com/en-us/azure/batch/batch-automatic-scaling – alwayslearning

+0

Могу ли я создать формулу для масштабирования от 0 до 50 узлов и обратно до 0 при обработке (через 10 минут)? Как быстро он будет увеличиваться и уменьшаться? –

-1

Если ваши задания несовместимы с ошибками, вы можете использовать превентивные экземпляры Google Cloud. Есть случаи, которые продолжаются до 24 часов, затем они автоматически завершаются и на 70% дешевле обычных.

Если машина выключена менее чем за 10 минут, она бесплатна. Плюс, экземпляры Google Cloud являются наиболее быстрыми среди всех других поставщиков, которые я использовал (включая AWS). Обычно вращение занимает около 30 секунд.

Для получения дополнительной информации:

https://cloud.google.com/compute/docs/instances/preemptible

Для того, чтобы раскрутить много примеров сразу, вы можете сделать следующее:

1 - Создайте экземпляр, установите все необходимое программное обеспечение, вам нужно для ваших партий.

2 - Создание образа из этого экземпляра, который вы можете повторно использовать

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

4 - Создайте группу экземпляров на основе этого шаблона. При этом вы можете указать количество экземпляров, которые вам нужны (50 в вашем случае). Затем GCP будет вращать их сразу.

5 - Теперь вы можете убить их самостоятельно, когда захотите, или вы можете оставить их, и они будут жить до 24 часов и будут убиты автоматически. Вы можете изменить количество экземпляров в группе экземпляров, когда захотите.

Подробнее: https://cloud.google.com/compute/docs/instances/preemptible#preemptible_with_instance_groups

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

Другим способом было бы написать небольшой скрипт, который будет создавать цикл и создать экземпляр 50 раз.

Надеюсь, это поможет.

+0

Теперь это что-то! Считаете ли вы, что можно ежедневно создавать наборы из 50 preemtptible экземпляров? –

+0

уверен, я обновил ответ с более подробной информацией о том, как это сделать. – HakRo