Облачный сценарий SmugMug

SmugMug.com веб-сайт для размещения фотографий, в некоторых отношениях похожий на Flickr. Он поддерживает собственные вебсерверы и базы данных, но широко использует облачную инфраструктуру Amazon как для хранения данных (S3), так и для вычислений (ЕС2).

На момент написания статьи SmugMug.com использует свыше 600 Тбайт пространства в Amazon S3. Передача хранения данных в облако Amazon позволила сконцентрироваться на разработке новых функций. Сначала сервис S3 использовался в качестве резервного хранилища для сайта. Постепенно уверенность в производительности и надежности сервиса окрепла, и на S3 было переведено все первичное хранение данных, хотя у Amazon Web Services тогда еще не существовало соглашения об уровне обслуживания для этого сервиса (сейчас оно есть). Решение о перемещении хранения данных было принято легко, потому что руководство SmugMug увидело экономические преимущества и не хотело расширять персонал для организации внутреннего хранения данных.

Фотографии, отправленные в SmugMug, помещаются в очередь для отправки в ЕС2, где они преобразуются к нескольким размерам для использования на сайте и других операций по обработке. То же самое происходит с отправленными видеороликами. Обработанные материалы сохраняются непосредственно в S3. Конечно, описание получается чрезмерно упрощенным, но в процессе SmugMug использует достаточно интересную схему управления облаком.

Циклы обратной связи

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

Некоторые из этих метрик:

  • Текущее количество заданий, ожидающих обработки.
  • Приоритеты заданий, ожидающих обработки.
  • Типы заданий (фотографии, видеоролики и т. д.).
  • Сложность заданий (HD-видео или фотография 1 мегапиксел)
  • Критичность заданий, ожидающих обработки, по времени.
  • Текущая нагрузка на экземпляры ЕС2.
  • Среднее время выполнения задания.
  • Исторические метрики нагрузки и производительности обработки заданий.
  • Продолжительность запуска нового вычислительного экземпляра.

Учитывая все эти метрики, система SmugMug масштабируется с повышением или сокращением текущего количества используемых экземпляров ЕС2. Таким образом повышается эффективность обработки с использованием облачной инфраструктуры.

Сценарий SmugMug следует принципам, описанным ранее. Метрики прикладного и системного уровня объединяются с целью планирования мощностей, а собранные исторические данные используются для построения прогнозов. SmugMug хорошо знает свои потолки, отслеживает возможное приближение к ним и регулирует текущие мощности в пределах узкого, подвижного временного окна.

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