Google App Engine – знакомство, плюсы и минусы, полезные советы

Google App Engine это платформа предлагаемая компанией Google для веб-разработчиков. Не будет преувеличением, сказать, что проблема роста и разумной экономии на масштабируемости и производительности стоит перед разработчиками с самого начала работы над проектом. С одной стороны, огромное количество стартапов, разработчики которых даже приблизительно не могут представить себе характер и объем нагрузок на сайт, а желая иметь некоторый запас производительности оптимизация, зачастую, начинается с первых строк кода. С другой стороны, надо сказать что приложения, которые должны легко масштабироваться имеют весьма сложную архитектуру внутри, и написание такого кода, тоже весьма специфично. Отдельо нужно упомянуть то, что поддержание такой, горизонтально масштабарованной, инфраструктуры в рабочем состоянии, довольно хлопотное и дорогое мероприятие. В индустрии создания высоконагруженных приложений, безусловным флагманом, является Google. Свой опыт они предлагают разработчикам в виде Google App Engine.

Для тех, кто совсем ничего не слышал про GAE, рекомендую ознакомится со статьями про быстрый старт с GAE, модель и контроллер.

Поговорим немного о достоинствах платформы:

  • в первую очередь, это, конечно масштабируемость «из коробки», о которой абсолютно не надо заботится. Гарантированный uptime 99.9%, никаких бекапов, репликаций и прочих мук в высоконагруженых приложениях.
  • все разработчики, как один, восхищаются тем как хорошо документирован GAE, и тем как просто сделать свой первых hello world
  • прозрачная интеграция с аккаунтом Google и многочисленными сервисами
  • поддержка Java и Python «из коробки» и огромное количество скриптовых языком «из под Java»
  • удобный сервер для разработки и простая утилита деплоя
  • огромное количество open source проектов являются хорошим подспорьем в разработке на GAE

Как обычно в бочке меда, окажется ложка дегтя.

  • ограничеие на размер файла: 1 мегабайт
  • еще одно интересное ограничение, — на запрос, не более миллиона циклов CPU на запрос. У вас нет никакких инсрументов, позволяющих оценить, профилировать эти самые циклы, и на локальном сервере этого ограничения нет. Таким образом, приготовьтесь к тому что ваше сложное приложение начнет разваливаться после деплоя, вероятно, случайным образом.
  • очень медленное локальное хранилище даных, хотя на сервере, после деплоя работа с хранилищем тоже неоднозначна, плюс на работу с хранилищем также налагаются ограничения и квоты
  • загрузчик (bulk uploader) довольно медленный и часто генерирует 500ю ошибку.
  • надо ли говорить — но у вас нет рутовых прав
  • подробнее про ограничения можно почитать здесь

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

Некоторые выводы, о том как использовать GAE более эффективно:

  • переносите логику и функционал на клиент, — всякого рода логика на JS, Flash, Flex, Silverlight, etc
  • используйте memcache для кеширования запросов к хранилищу
  • используйте sharded counters для статистики
  • отсылка писем забирает много CPU, лучше использовать tasks или cron
  • используйте несколько GAE приложений, для разных нужд, вместо одного большого. Это имеет смысл для увеличения квот и разделения статистики.
  • используйте пакетное сохранение и извлечение данных из хранилища

Site Footer

Sliding Sidebar

About Me

About Me

For whom this blog for?

For those who are interested in modern Internet technologies, IT business, startups, management, quality control, personal effectiveness, motivation. Here I write about what is interesting, about problems I faced and solutions I found. I hope it will be interesting to you either.

What motivates me to write?

The desire to improve, to study deeper topics that interest me. Find people with similar problems and tasks, together look for ways out and solutions.

Feel free to contact if you have anything to say to me

Old Flash site with my artistic works and misuc.