BuddyPoke - один из примеров крупномасштабного социального приложения, работающего на GAE. Насколько большой я не уверен. В этой статье говорится о 30 млн ежедневных просмотров страниц (не пользователей):
http://googleappengine.blogspot.com/2008/10/app-engine-case-studies.html
На их странице в Facebook говорится, что 2,7 миллиона пользователей в месяц (не ежедневно):
http://www.facebook.com/buddypoke
Хотя они также находятся в куче других социальных сетей:
http://www.buddypoke.com/
Лично я решил пойти с GAE, по нескольким основным причинам:
- Единица масштабируемости - это отдельный запрос, а не целый экземпляр, как в AWS.
- Я могу работать на более высоком уровне, не беспокоясь о настройке экземпляров.
Если ваша точка 4 для вас важна, то вам может быть лучше с AWS. С GAE, кажется, вы ничего не можете сделать, и никто не может связаться.
Около недели назад у меня возникла проблема с моим приложением - оно внезапно начало давать сбой в коде Google, в месте, которое работало нормально в течение последних 5 дней, то есть с момента последней загрузки моего приложения. Похоже, что единственный способ сообщить о проблемах в Google - это использовать их шаблон рабочей проблемы:
http://code.google.com/p/googleappengine/issues/entry?template=Production%20issue
Я сообщил о проблеме и ничего не слышал. Поскольку он работает на серверах Google, я не смог прибегнуть к какой-либо «обычной» экстренной тактике, такой как перезапуск сервера. Через час проблема решилась сама собой - я не уверен, что кто-то в Google видел мое сообщение и что-то исправил, или оно просто исчезло. Я обновил свой отчет об ошибке, чтобы сказать, что проблема была исправлена, но даже сейчас, спустя неделю, проблема не была закрыта или даже подтверждена. Кроме того, поскольку проблема должна быть опубликована, мое приложение теперь получает случайные попадания от ботов.
По общему признанию, мое приложение в настоящее время только в бета-версии и поэтому имеет только сто или около того пользователей, так что это не было для меня серьезным инцидентом. Если бы я получал тысячи / миллионы обращений, возможно, либо Google сам заметил бы проблему раньше, либо они бы обратили больше внимания на мое сообщение об ошибке.
Что касается вашего пункта 3, даже мое небольшое приложение с небольшим объемом трафика выдает случайные ошибки хранилища данных (даже в периоды, которые не отражаются в диаграммах доступности в качестве отключений).
Сказав это, я все еще люблю GAE (я использую версию Python) и планирую придерживаться этого. Обещанием GAE является его масштабируемость - хотя теперь он иногда падает для моего небольшого трафика, он не должен больше падать, когда он масштабируется до гораздо большего трафика (т. Е. Ваша точка 2), при условии, что я правильно его кодировал раздор. Я посмотрю, как это будет.
Наконец, что касается вашего пункта 1, хранилище BLOB-объектов и / или статические файлы больше похожи на CDN в GAE, чем на хранилище данных. Однако для очень больших объемов трафика реальный CDN может быть дешевле. Это также не обязательно CDN, см. Google app engine & CDN .