2013-09-29 2 views
6

У нас есть веб-приложение в App Engine. Мне было интересно, стоит ли переносить мои статические ресурсы (например, изображения, файлы CSS и файлы JS) из App Engine и обслуживать их из облачного хранилища Google.Должен ли я перемещать свои статические ресурсы из App Engine в Google Cloud Storage?

Мое мышление здесь два раза:

1) Мы можем получить преимущества CDN с помощью Google Cloud Storage. Мы даже можем настроить метаданные для каждого файла, чтобы установить заголовки истечения, сжатие gzip и т. Д. Также, обслуживая файлы из разных доменов, мы можем иметь браузеры для загрузки большего количества контента параллельно.

2) При загрузке некоторых файлов из App Engine потребление экземпляра уменьшится (меньше запросов на App Engine), поэтому затраты снизятся.

я прав? Это мудрый шаг?

Thanks,

+0

звучит как отличная идея для меня! – jterrace

+0

HOw вы будете управлять развертыванием и контролем версий с помощью GCS. В момент развертывания нового кода вы также развертываете текущие статические активы. Вы можете тестировать версии и их активы. Если вы попытаетесь сделать это с помощью GCS, URL статического ресурса должен будет меняться при каждом развертывании. –

+0

Исправить.В принципе, статические ресурсы, которые собираются жить в GCS, имеют «специальное» соглашение об именах. Например: image.v1.png. Каждый раз, когда один из этих файлов изменяется, мы переименовываем файл в «image.v2.png». Используя это в сочетании с максимальным кешем в 1 год, мы можем получить максимальное преимущество от кеширования браузера. Большинство наших развертываний на 100% автоматизированы, поэтому этот процесс довольно хорошо охвачен. Моя главная забота заключается в том, что это добавляет сложности, и я не уверен, что прибыль будет оправдана. – svpino

ответ

5

Ничего из этого не имеет смысла.

1) У App Engine есть функция, подобная CDN, с ее кешем кромки. К сожалению, это плохо документировано. В нем есть несколько разговоров о вводе/выводе Google. Вот начало: http://eng.pulse.me/backend-tips-the-free-cdn/ В Google I/O 2012 есть еще один разговор, который вы можете найти. Ваши статические файлы будут обслуживаться с кешем края, если к ним достаточно доступ, поэтому нет необходимости переходить на GCS для этого.

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

+0

Спасибо за ваш ответ. Еще один вопрос: прямо сейчас я включил SSL в приложение, поэтому весь контент обслуживается через SSL. Мне интересно, имеет ли CDN смысл обслуживать изображения из HTTP и не налагать дополнительные накладные расходы, которые налагает HTTPS. Любые мысли по этому поводу? – svpino

+0

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

+0

Спасибо за помощь! Имеет смысл. – svpino

2

Вы правы, и ответ, который вы приняли, ошибочен. Ответ на ваш вопрос из официальных документов:

https://cloud.google.com/storage/docs/website-configuration

хостинга статических активов для динамического сайта

Вы можете использовать Google Cloud Storage для размещения статических активов для динамического сайта, размещенного, для например, в Google App Engine или в Google Compute Engine. Некоторые преимущества хостинга статических активов, такие как изображения или Javascript файлы, в ведре включают:

  • Google Cloud Storage ведет себя по существу как сеть доставки контента (CDN), без усилий с вашей стороны, потому что публично читаемыми объекты по умолчанию кэшируются в сети Google Cloud Storage.
  • Плата за пропускную способность для доступа к контенту будет, как правило, дешевле с облачным хранилищем Google.
  • Нагрузка на ваших веб-серверах уменьшается при обслуживании статического контента из облачного хранилища Google.
+0

Неверный формат. appengine static files не потребляет сервер (appengine Frontend instance) ресурсы –

+0

@ZigMandel - У вас есть ссылка на это, потому что здесь есть два противоречивых ответа, и только один из них цитирует материал Google. Спасибо! – jmort253

+0

этот ответ неверен. он цитирует из google docs, которые ссылаются на хостинг на GCS для обычных (не appengine) веб-сайтов. проверенный ответ объясняет кэш кеша. –