Все потоки
Поиск
Написать публикацию
Обновить
1.6

Google App Engine *

Платформа для размещения приложений

Сначала показывать
Порог рейтинга
Уровень сложности

Вышли Java/Python SDKs 1.2.8 prerelease

Время на прочтение3 мин
Количество просмотров575
Поскольку это пререлиз, нововведений мало (Cursors, JAXB), больше исправлений, к тому же списки изменений лежат только в архивах, поэтому приведу их полностью:

далее changelogs и пару выводов

Google App Engine и naked domains

Время на прочтение1 мин
Количество просмотров2.2K
Оказывается, приложение для Google App Engine нельзя подключить к корню домена, можно только к поддомену вроде www. Раньше было можно, но потом зачем-то это прикрыли. Это многим не нравится, но имеющимися средствами ничего не сделать. В поддержке предлагают заказывать веб-форвардинг у регистратора, но это обычно стоит денег, а бесплатный форвардинг на домашнем ADSL канале лишает использование GAE с его high availability всякого смысла.

Есть решение не хуже, которое я давно использовал для каких-то других целей: регистрируем блог в Tumblr, прикрепляем его к нужному домену (у них никаких ограничений нет), идём в настройку внешнего вида, в редактирование шаблона, удаляем всё лишнее1 и делаем перенаправление средствами HTML. Бесплатно и достаточно надёжно (уж лучше, чем домашняя ADSL линия). Чтобы тумблеряне не обиделись на такое, можно им комментарий с извинениями в коде оставить.

Читать дальше →

App Engine SDK 1.2.7 — Bugfix Release для Python

Время на прочтение1 мин
Количество просмотров631
В свете двух проблем в релизе Python SDK 1.2.6, представлена версия 1.2.7. Это всего лишь bugfix-релиз с минимальными изменениями (без добавления нового функционала), всем пользователям Google App для Python рекомендуется обновить SDK.

Этими двумя проблемами были:
-В релизе 1.2.6 был добавлен ключевой аргумент в конструктор класса модели, нарушавший работу подклассов, которые запрашивали частные переменные конструктора с позиционными (не именованными) величинами. Исправление было внесено для восстановления изначального способа упорядочивания и установления нового ключевого аргумента только в качестве именованного.
-В релизе 1.2.6 было нарушено взаимодействие между remote_api и локальным сервером разработчика.

Собственно, обе проблемы исправлены в релизе 1.2.7.

Версия Google App для Java никаких изменений не претерпела.

Источник — Google Developer Blog

Вышли Java/Python SDKs 1.2.6

Время на прочтение2 мин
Количество просмотров635


Поддержка входящей почты — на данный момент поддерживаются лишь почтовые адреса вида: whatever@yourappid.appspotmail.com. Возможно через 1-2 релиза появится поддержка собственных доменов, как и в случае с XMPP; так, по крайней мере, было обещано разработчиками в чате с ними.
Подробнее: java, python.

Возможность временного отключения/удаления приложения — первое полезно, например, в случае шибко сильного ДДОСа, при этом все данные сохраняются, как и оно само, отключаются лишь входящие/исходящие запросы. Если приложение было удалено, повторно использовать AppID будет невозможно. При удалении оно ставится в очередь и удаляется через пару суток, судя из моей попытки. Т.е можно отменить удаление, если что.

Статистика по хранилищу — супер функция, вернее целое API, которое позволяет посмотеть общее количество обьектов, размер хранилища, количество обьектов модели и т.д. и т.п. Причем возможно посмотреть стату в админке с картинками, а можно получить в приложении через запрос к хранилищу.
Подробнее: java, python.

Далее мой анализ неанонсированных фич в коде PythonSDK

Интернет магазин на Google App Engine (UPD: 20.01.2010)

Время на прочтение2 мин
Количество просмотров4K
Магазин работает уже почти пол года — добро пожаловать :)
http://www.digital-mode.ru

Как это все работает.

Фронт-офис — генерирует страницы с группами и товарами, а также позволяет добавить товар в корзину и оформить заказ.
Хранилище картинок — отдает фотографии товаров в нужном размере. Все остальные картинки статические, загружаются с сервера GAE.
Бэк-офис — административная часть, позволяет редактировать товары и группы, просматривать заказы, загружать фотографии для товаров, а также загружать обновления цен, наличия и новые позиции.

Для генерации почти всех страниц используется Django templates.

В целом ничего сложного :)

Проблемы с которыми пришлось столкнутся при разработке.

На текущий момент есть проблемы с загрузкой/выгрузкой большого количества данных. На данный момент использую CSV для загрузки обновлений (цены, товары, наличие). При большом объеме данных превышается тайм-аут 30 сек на выполнение. Кроме этого в GAE ограничение на 30 запросов на запись (put). Соответственно обновлять больше 30 товаров за один проход не получается. Этот момент можно оптимизировать и обновлять данные не поштучно, а сразу пачками т.к. в GAE запись в хранилище может производится целыми массивами.

Выгрузка данных для Яндекс.Маркета занимает почти 10 секунд (200 товаров), 90% времени это генерация HTML.

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

Преимущества GAE

Отсутствие необходимости покупки/настройки/поддержки собственного сервера.
Автоматическое масштабирование.
Одинаковое время доступа к приложению при разных нагрузках.
Удобство разработки.

Итого

Скорость работы магазина не зависит от количества посетителей.
На данный момент при 500-600 хитов в сутки используется 0,3-0,4 часа процессорного времени из 6,5 бесплатного.

После публикации в комментариях к топику: "Стоит ли вам использовать Google AppEngine?" ссылки на магазин было использовано ресурсов:
— 0,44 часов CPU из 6,5
— 28000 запросов из 1,3 млн
— 210 Мб из 1 Гб исходящего траффика
— 5,59 Гб из 116 Гб получено из API
— 0,22 часа из 62,11 использовано хранилищем
Всего за 12 часов — 700 хитов (180 хостов).

Это микрохаброэффект:
image
Читать дальше →

Вышли Java/Python SDKs 1.2.5

Время на прочтение1 мин
Количество просмотров727
Java SDK перепрыгнула с 1.2.2 до 1.2.5 для «синхонизации» с Python SDK.

Из нововведений:
— Поддержка XMPP для Java/Python
— Task Queue API для Java (в labs, как и в Python SDK)
— Увеличены лимиты для Task Queue API (100.000 в сутки, было 10.000)
— Хранилище теперь поддерживает объекты с key_name, начинающиеся с цифры
— Можно изменять Referer заголовок для URL Fetch запросов
— Хранилище поддерживает многократную запись/удаление одного обьекта в одной транзкции.

Python SDK:
— Появился AppEngineLauncher для Windows
— Bulkloader поддерживает ключи --dump и --restore для Kind (в labs)
— Bulkloader поддерживает ключ --dry_run для тестрования данных перед загрузкой на production сервер
— Новый google.ext.ereporter модуль для собирания и отправки по email отчетов по исключениям приложения
— Новый google.ext.deferred модуль для исполнения ad-hoc задач в Task Queue

Java SDK:
— Поддержка новых типов хранилища (нативных), таких как GeoPt, Email, etc.
— Можно установить connectTimeout для URL Fetch
— JDO и JPA теперь поддерживют удаление обьектов, используя запросы
— В JDO makePersistentAll() и deletePersistentAll() исполняются как batch-операции.

В этот релиз должна была быть включена поддержка Inbound Mail, и даже для локальной админки эта страничка готова (вместе с изменениями в коде SDK), но почему-то видимо в последний момент что-то не срослось, и эта фича думаю будет в следующем релизе (1.2.6), вместе с обещанной Jason_Google поддержкой курсоров в хранилище для преодоления лимита запросов в 1000 записей

Полные списки изменений:
Release Notes: Python
Release Notes: Java
Revision History

Вышел Java SDK 1.2.2, GWT 1.7

Время на прочтение1 мин
Количество просмотров929
Полный список изменений доступен здесь.

— Наконец-то появился local dataviewer, на порядок будет удобнее написание приложений.
— Количество статических файлов увеличено до 3000.
— Поддержка unindexed полей в ORM
— Исправлена автогенерация индексов и улучшена поддержка транзакций.
— Множественные мелкие исправления в SDK и ORM.

GWT 1.7 зарелизили почему-то только в google-плагине к эклипсу, на официальном сайте пока что старая версия. Основные изменения касаются поддержки Internet Explorer 8, Firefox 3.5 и Safari 4. Плюс поправленны некоторые high-priority баги. В реале отличия от 1.6.4 небольшие.

UPD: Версию 1.7 выложили на офф.сайте, изменения

По поводу обновления плагина для eclipse (совместимого с 3.5) сказано, что он появится в течении 2-х недель.

Что ожидается в App Engine

Время на прочтение2 мин
Количество просмотров652
  1. Сервис для работы с большими файлами.
  2. Поддержка работы с входящей почтой
  3. XMPP API.
  4. Поддержка функций отображения (mapping) наборов данных (datasets).
  5. Курсоры для запросов к базе — преодоление лимита в 1000 записей.
  6. Система предупреждений (alerts) об исключительных ситуациях (exceptions) в пользовательских приложения.
  7. Дамп и восстановление системы хранения.
Источник: App Engine Product Roadmap

мои комментарии...

10 вещей, которые вы (возможно) не знали про App Engine

Время на прочтение6 мин
Количество просмотров1.8K
Что может быть лучше, чем описание девяти классных фишек App Engine? Разумеется, описание десяти. Участвуя в обсуждениях в группах, мы заметили, что некоторые возможности App Engine часто остаются незамеченными, так что мы выбрали чуть меньше, чем одиннадцать интересных фактов, которые, возможно, просто позволят вам писать программы по другому. Но довольно слов, смотрим первую фишку:
Читать дальше →
12 ...
8

Вклад авторов