Как обрабатывать большие объемы хранилища в облаке (или иным образом?) - PullRequest
3 голосов
/ 03 мая 2011

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

В ходе этого видео по 1 ГБ на несколькоГб промежуточных данных.Этот сервис написан так, что разные программы (через RabbitMQ) могут обрабатывать каждый фрагмент конвейера.Конечно, процесс не должен запускаться таким образом, что приводит меня к моему вопросу.

Я смотрю на требования к хранилищу, чтобы приложение работало.Облачные провайдеры платят за ГБ хранилища и за ГБ передачи.Пока все хорошо.

Когда я передаю этот видеоблок размером 1 ГБ из одного экземпляра облачной виртуальной машины в другую или из виртуальной машины в общую службу хранения, учитывается ли это для моей пропускной способности?(Я понимаю, что этот ответ будет меняться в зависимости от условий обслуживания хоста.)

Будет ли более целесообразно, чтобы 1 ВМ выполняла весь процесс, а затем запускала несколько экземпляров этого?В отличие от 1 ВМ, выполняющих только одну задачу в конвейере?Я задаю этот вопрос с точки зрения оптимизации затрат (самая низкая стоимость хранения, самая низкая стоимость раскручивания виртуальных машин. Поскольку кодирование будет выполняться в пакетном режиме, меня меньше беспокоит быстрое распространение запросов * ).

Этот сценарий несколько уникален тем, что у меня есть огромное количество двоичных данных, которые невозможно эффективно хранить, скажем, в базе данных.В связи с этим возникает аналогичный вопрос: для тех, у кого есть опыт, когда ваша виртуальная машина БД отправляет свои результаты обратно в ваше веб-приложение, взимается ли плата за эту промежуточную передачу?

Я даже задаю правильные вопросы?Есть ли руководство, которое я должен прочитать, кроме как позвонить хостинг-провайдерам и спросить их о ценах самостоятельно?

1 Ответ

1 голос
/ 03 мая 2011

Уникальность вашего сценария делает его довольно интересным, я бы сказал!

О переносе данных между виртуальными машинами в облаке, который зависит от поставщика и местоположения. Например, Amazon в EC2 не взимает плату за передачу данных между веб-службами в в том же месте .Таким образом, вы можете минимизировать свои расходы на передачу до начальной загрузки / выгрузки вашей «большой группы двоичных данных».

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

Хорошая вещь в вашем сценарии, это то, что такого рода пакетные задачи идеальны дляоблачные вычисления, и их модель ценообразования довольно проста.Такие задачи требуют значительных ресурсов (ЦП / ОЗУ), поэтому их «жадность» может быть удовлетворена практически неограниченными ресурсами, которые может предложить облако.

...