Навигация по сайту

Популярные статьи

The Pursuit of Happyness »Blog Archive» Google App Engine - знайомство, плюси і мінуси, корисні поради

  1. Comments

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 додатків, для різних потреб, замість одного великого. Це має сенс для збільшення квот і поділу статистики.
  • використовуйте пакетне збереження і вилучення даних зі сховища

Comments

comments


Google App Engine   це платформа пропонована компанією Google для веб-розробників