Google App Engine

индекс
72,80

Вышли Java/Python SDKs 1.3.2, а также обновился Roadmap



Сначала расскажу об изменениях в SDKs, а потом о том, что разработчики нам обещают в ближайшие 6 месяцев.

Итак,
— Хранилище поддерживает 2 режима чтения данных и исполнения запросов: strong consistency (изначальное поведение хранилища, установлено по умолчанию), и eventual consistency. При режиме «strong consistency» все операции чтения данных и запросы будут ждать до окончания предыдущих изменений (которые были совершены, но не успели примениться к данным в распределенном хранилище). При режиме «eventual consistency» все операции чтения и запросы будут использовать версии уже имеющихся данных в хранилище, даже если эти данные ожидают изменений. Этот режим нужно использовать тогда, когда скорость чтения важнее, чем гарантированно обновленные данные.

— Хранилище поддерживает максимальный срок ответа (deadline) для большинства операций. Если при запросе хранилище его превышает, вызов прерывается и управление передается приложению.

— Возможность включить защиту от ДДОСА, посредством прописывания в конфиге приложения (dos.*yaml*xml*) «неугодных» ip-адресов и подсетей. Топ наиболее активных ip, которые подозреваются в атаке, появляются в админке приложения в новом разделе Blacklists, и их можно заносить в конфиг. Я в прошлую среду общался в чате с одним из разработчиков AppEngine (jason@google), и он сказал, что развитие DDOS-сервиса на этом точно НЕ остановится (думаю будет фильтрация и по странам и пр).

— Доступ из приложения к данным из BlobStore напрямую, посредством задания диапазона байт. На данный момент лимит на чтение составляет 1 мегабайт (как и для большинства сервисов AppEngine).

— Возможность добавления множества заданий в очередь при одиночном обращении к TaskQueueAPI, а также увеличена максимальная скорость пополнения очереди до 50/сек.

— Через URL Fetch можно теперь обращаться к удаленным ресурсам, используя порты 80-90, 440-450, и 1024-65535 (раньше были только 80 и 443).

— В JavaSDK добавлена утилита AppStats, по аналогии с PythonSDK.



Из старого:
— Поддержка MapReduce — выйдет уже скоро, думаю в 1.3.3 или 1.3.4.
— Возможность бекапа и восстановления данных (Это bulkloader, который они постоянно доделывают).

Из нового:
— Поддержка SSL для своих доменов.
— Поддержка Browser Push (Comet).
— Фоновые приложения, способные работать более 30 секунд.
— Возможность резервирования «инстанса», для уменьшения накладных расходов на запуск приложения.
— Возможность выбора различных опций «availability vs. latency» для хранилища (выбор датацентра?).
— Увеличенные лимиты на размер запроса/ответа для некоторых APIs.
— Встроенная поддержка OpenID и OAuth.
— Улучшенный мониторинг и улучшение системы предупреждений приложения.

Кроме того, уже давно идет работа по Full Text Search, это тоже думаю, что скоро появится.

Вообщем я доволен как слон; и SSL, и Comet и прочие вкусняшки давно ожидались мною в AppEngine.

Полные списки изменений:
Release Notes: Python
Release Notes: Java
Revision History
Product Roadmap
+23
26 марта 2010, 02:11
7

комментарии (38)

0
eugenex15 #
вот теперь и не знаю, ждать FullTextSearch или прикручивать гуглопоиск к проекту?!
новости радуют.
0
mrskam #
Ну FullText не в следующем релизе, думаю, появится. Но в пределах Google IO (19 мая) точно должен, ибо о нем доклад будет — «Next gen queries».
+1
eugenex15 #
>>>из старого:…
>>>из нового:…

это роадмап?
–1
mrskam #
Да. Там же ссылка подката с поясняющим тектом.
0
TolTol #
Судя по наблюдениям, файрвол срабатывает с некоторой вероятностью (близкой, но не равной единице), что было описано здесь:

habrahabr.ru/blogs/gae/88432/

Хотя для приложения http://pause.appspot.com установлен черный список на 0.0.0.0/0, счетчик в статистике запросов не нулевой…
0
TolTol #
Собственно, это и отражено в документации:

...Some requests from blacklisted users may still get through to your application...
–2
Seigmen #
Для чего на данный момент могут применяться фоновые приложения?
0
DeNnEr #
Глупый вопрос. Обработка изображений/видео/аудио. Да любая объёмная работа, в т.ч. и математическая.
–4
Seigmen #
Спрашивалось конкретно про GAE
0
DeNnEr #
Да, небольшой вопрос знатокам:
Как в GAE обстоят дела с «бесплатным»? Слышал что есть ограничение на количество отрендеренных страниц и туча других. Правда ли оно? Действует ли? Уж очень сладко оно смотрится.
+2
mrskam #
Про квоты можно подробно почитать в документации. Эту же странцу можно посмотреть на русском, заменив в урле /en/ на /ru/, однако в русской версии некоторые квоты устарели, т.е. актуальна только англ. версия.

Так что все хорошо в GAE обстоит с бесплатным, для открытия своего стартапа — самое то. Бесплатных лимитов для начала хватит за глаза. А вот если стартап выстрелит — вот тогда и можно оплачивать доп. квоты. Тем паче что оплата идет только за действительно использованные ресурсы (а не за время использования, как на амазоне например).
0
FuN_ViT #
у меня сейчас на один закрытый проект (доменное имя купили, но сайт в разработке) долбятся с нескольких тупых рекламок по 26к запросов в день (до 4-ех в секунду). в ответ они получают 500 + текст «сайт в разработке». так вот — бесплатных квот по запросам — 1 333 328 в сутки.

скорее всего в CPU квоты можно упереться…
0
apkawa #
самое вкусное — «Через URL Fetch можно теперь обращаться к удаленным ресурсам, используя порты 80-90, 440-450, и 1024-65535 (раньше были только 80 и 443).» только этого мне не хватало для реализации своего поисковика.
+7
DeNnEr #
Хочешь сделать свой конкурент гуглу на их же системе приложений? Хитро.
0
Mecid #
А эти два режима с бд очень актуальны, только я не понял это в будущих релизах или щас можно буит использовать?
0
mrskam #
Уже можно.
0
Mecid #
Это хорошо только вот не нашел примеров использования.они вообще есть?
0
mrskam #
Доков пока нет, посмотрите использование в питоновском сдк, там вроде все понятно.
0
Mecid #
чтото не нашел, дайте ссылочку
0
mrskam #
Вот 2 сравнения 1.3.2 с 1.3.1:
ext/db/__init__.py — то, чем обычно пользуются в приложении.
api/datastore.py — низкоуровневая работа с хранилищем.

Вроде из сравнений все становится понятным, как использовать. Хотя сам я еще не пробовал.

0
mrskam #
А для java, сейчас посмотрел, делается так:

import static DatastoreServiceConfig.Builder.*;
DatastoreServiceConfig config =
withReadPolicy(new ReadPolicy(Consistency.EVENTUAL)).deadline(5.0);
DatastoreService service = DatastoreServiceFactory
.getDatastoreService(DatastoreServiceConfig config);

Ну и далее уже получение данных: service.get(key) и т.д.
0
Mecid #
что курсоры что это? через обычный JPA кажись юзать не получится?
0
mrskam #
Курсоры это хорошо, статья о них была уже на хабре, читайте :) А c JPA получится, смотрите тут: JPQLCursorTest. Однако JPA совсем-совсем не предназначена для нереляционных БД, имхо. И все что делает datanucleus-appengine — это большие костыли.
0
Mecid #
про курсоры читал уже, вот как их в jpa юзать не знал, ща порою
0
Guria #
допиливание XMPP в роадмапе отсутствует. грустно :(
0
mrskam #
Это они и так сделают, обещали же, лично в чате. Не ясно только, когда… А сроков они никогда не говорят.
0
DeNnEr #
Про XMPP что в GAE, что в G-аккаунтах они говорят хз сколько. Вот месяца 4 назад для какой-то лёгкой фигни(вроде, что-то с пресенсом было не так) долго отвоёвывали. Не знаю как и что…
В любом случае XMPP не входит в состав важных задач. Им бы допилить то что они хотели сделать…
0
mrskam #
Насколько я знаю, часть относящуюся к XMPP (что внутренний сервис, что часть sdk) писали и поддерживают не ребята из AppEngine, а из команды GTalk, и посему все долго.
0
DeNnEr #
Ну как я и говорил. «Бида-бида».
0
Guria #
ладно про сроки не говорят — понятно, а вот отсутствии в роадмапе расстраивает и надежд не вселяет. А обещание в чате ни к чему не обязывает, к сожалению.
0
Guria #
а code.google.com/p/googleappengine/issues/detail?id=2071 до сих пор имеет статус New и даже не Acknowledged
0
DeNnEr #
О! Вот тот самый issue, о котором я говорил выше. Оказывается, оно даже так… Всё хуже чем я думал. Ой вей…
+1
mrskam #
Да в роадмапе они и не напишут, функционал-то XMPP уже реализован. В него они пишут только абсолютно новые направления. И, кстати, роадмап тоже ни к чему не обязывает :)

Тут вот какое дело — надо мне было фаервол — я их полгода долбил и в чате, и на форуме, и собирал людей, чтобы головали за issue и комментили в ней, и даже лично общался с их тимлидом по почте — в итоге сделали.
Далее — надо мне фиксированный баланс без еженедельного снятия с моментальным пополнением + пополнение вебманями — аналогично, долго долбил по технике выше — в итоге, насколько мне известно — уже делают.

Так что все в ваших руках :) Секрет я вам рассказал, что надо делать.
0
Guria #
а контакт тимлида можно? форум — это гуглгруппа? там я ни единого ответа не получил. всё как в пустоту.
0
mrskam #
Контакт, к сожалению, попросили не давать, я с ним списался после общения в чате (в привате) в основное время appengine#chat#irc.
Но можете писать на apijason@g**gle.com, это его публичный мейл.
Форум да, гуглогруппа, но лучше в чате их долбить сначала.
0
433t #
вы я смотрю активный фанат AE. можно ссылочку на ваше приложение? оценить масштабы =)
+1
mrskam #
У меня нет публичных приложений (по крайней мере пока, дорого слишком) на AppEngine, только для «внутреннего» использования. Но пик на одном из приложений был 7.6 миллионов хитов в сутки. Полет отличный.
0
DeNnEr #
Так бы сразу и сказал: «DDoS'им их с требованиями запилить XMPP-функционал».

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.