Применения Google AppEngine

08.04.2008 23:57 | 8 comments | 0 pingbacks | ,

Про Google AppEngine написано уже достаточно много. А как, кроме очевидного применения — веб-приложений — его можно использовать?

Как вычислительный ресурс, GAE достаточно специфичен:

  • Этапы вычисления могут общаться через BigTable или внешнюю систему
  • Каждый этап вычислений должен быть достаточно коротким
  • Выделяемые CPU-циклы на приложение в день приблизительно эквивалентны 2Ghz CPU, работающему с нагрузкой 100%
  • 10Gb трафика в день в обе стороны
  • Приложение может выдерживать значительные пиковые нагрузки

Одно применение такой специфичной платформы достаточно очевидно: распределённая компиляция.

Поскольку writable filesystem в GAE нет, весь исходный код для каждого юнита компиляции придётся или стягивать из сети (Amazon S3?), или хранить в базе данных.

В такой схеме не обойтись без внешнего “директора”, создающего изначальный пакет данных и раздающего конкретные задания, зато в результате получится приложение, практически мгновенно (в зависимости от степени параллелизма сборки и доступных ресурсов) собирающее что угодно по заказу.

Одна проблема — компиляторы на чистом питоне надо переписать :)