Google App Engine — к чему все шло
материал о возникновении, развитии и предназначении Google App Engine
Чуть больше года назад, в марте 2007 года, главный исполнительный директор Google Эрик Шмидт озвучил новый корпоративный девиз компании, который звучит так: Search, Ads and Apps, что можно перевести на русский язык, как «Поиск, реклама и приложения». Именно эта фраза дала понять всему миру и акционерам Google, что компания заинтересована в разработке онлайнового программного обеспечения.
Google, являясь крупнейшим в мире поисковиком, также занимает лидирующую позицию на рынке интернет-рекламы, и именно эти направления приносят основную часть прибыли компании. Однако с 2007 года Google, кроме всего прочего, сосредоточилась на выпуске онлайн-приложений.
Бесплатный онлайновый офисный пакет, названный Google Apps, был выпущен в 2006 году и с тех пор приобрел значительное распространение по всему миру. Помимо бесплатной версии была предложена и платная версия для компаний, правительственных организаций и университетов, которая, по идее, должна составить конкуренцию MS Office.
6 апреля 2008 года Google публично заявила об открытии для разработчиков своей СУБД BigTable. Это событие можно считать первым вызовом Amazon Web Services и началом конкуренции с Amazon Simple DB.
Сама BigTable представляет собой масштабируемую систему базы данных, основой которой служит Google File System (GFS) — база данных, спроектированная для хранения и управления огромным массивом структурированных данных с учетом внутреннего использования в Google. Сама система содержит в себе сотни терабайт информации с тысячи серверов Google.
Разработка BigTable началась в 2004 году, а активное использование – уже в 2005-м. Множество сервисов самой Google используют эту БД: Google Search, Earth, Maps, Finance, Print, а также такие порталы, как Orkut, YouTube, Blogger и т. д.
Стоимость использования BigTable на данный момент не озвучена, но многие прогнозируют ту же модель ценообразования, что и у Amazon Web Services. Развитие платформы, конечно же, продолжится, и задача решения вопросов масштабируемости будет выполнена. Сам продукт позиционируется в качестве технической инфраструктуры для построения стартапов.
Собственно, к чему вся эта характеристика услуг Google?
А к тому, что 7 апреля 2008 года была запущена бета-версия сервиса Google App Engine, который уже успели окрестить «убийцей традиционного хостинга веб-сервисов». Этот амбициозный проект позволяет разработчикам создавать масштабируемые веб-приложения, написанные на Python и основываемые на платформе Google BigTable и GFS.
На первый взгляд может показаться, что данный сервис – полная копия конкурентного проекта Amazon Web Services и предлагаемых ими сервисов: S3, EC2, SimpleDB. Однако в отличие от продукта Amazon, которая состоит из независимых друг от друга сервисов, которые могут быть впоследствии связаны между собой по желанию разработчика, архитектура Google App Engine более централизована. По этой же причине она и менее гибкая.
Например, в Amazon Web Services можно использовать свои данные на S3 независимо от любых других услуг. В это же время в Google App Engine, используя сервис BigTable, необходимо для размещения написать скрипт на Python для серверов приложений, который и создаст доступ к веб-интерфейсу.
Разработчику на Google App Engine нужно всего лишь загрузить свой Python-код и запустить приложение, а после этого лишь контролировать различные показатели. Итак, какие плюшки предлагает Google для разработчиков, желающих разместить у них свой сервис?
- Быстрое развертывание кода. Google предоставляет свои вычислительные ресурсы – столько, сколько необходимо. Разработчик занимается своим прямым делом – пишет код, а App Engine позаботится об остальном.
— Решение вопроса о взрыве популярности проекта – внезапное увеличение трафика больше не будет доставлять головную боль разработчикам. Google решает эту проблему с помощью собственных серверов.
— Легкая интегрируемость с другими сервисами Google. Какие преимущества это несет в себе? В первую очередь – экономия времени и нервов для разработчиков, которым больше не придется писать компоненты аутентификации и электронной почты с нуля для каждого нового проекта. Те, кто работают в Google App Engine, могут использовать встроенные компоненты и пользоваться огромной библиотекой Google API.
На момент запуска бета-версии сервиса 7 апреля Google позволяла подписаться первым 10 000 разработчикам, успевшим зарегистрироваться. Зато для них эта услуга является бесплатной на весь период бета-тестирования с одним только лимитом – на использование.
Приложения, размещаемые на Google App Engine, не могут использовать более 500 Мб общего объема хранения, 200 ежедневных циклов процессорного времени и 10 Гб трафика в сути (входящего и исходящего). Все это эквивалентно примерно одному миллиону просмотров страницы в месяц, что совершенно нормально для стандартного веб-приложения.
По окончании периода бета-тестирования эти ограничения будут убраны и все желающие смогут использовать перечисленные параметры бесплатно. Единственное, за что придется платить, это за любые превышения, цену которым Google еще не установила.
Возникает резонный вопрос: какую отдачу будет получать от этого сама Google? Компания планирует зарабатывать с помощью рекламы AdSense, надеясь на то, что разработчики в благодарность будут вставлять ее коды в свои веб-приложения. Хотя и заявлено, что реальной окупаемости сервиса никто не ожидает.
Как говорит сама Google, главная мотивация создания подобного рода сервиса заключается в том, чтобы создать максимально комфортные условия для разработчиков и двигать и развивать тем самым рынок веб-приложений: «Если разработчикам так проще создавать веб-приложения, то это повлечет увеличение общего количества приложений, а соответственно, привлечет больше пользователей в Сеть, а значит, и в Google, и это как раз то, что нам нужно».
Еще одним из ограничений, присутствующих на данный момент в сервисе, является то, что все приложения должны быть написаны исключительно на Python. Данный момент объясняется тем, что Python – основной скриптовый язык Google, в 2005 году компания наняла создателя языка Гилдо ван Россума (Guildo van Rossum).
Сразу же после релиза Google App Engine все разработчики, желающие писать на чем-то отличном от Python, забили в колокола и начали подписывать петиции о вводе поддержки своих любимых языков. Ruby, Perl, Java, PHP, C# — вот следующие языки-претенденты на совместимость с Google App Engine.
Очевиден также и тот факт, что Google не только предоставляет удобную платформу для создания собственных веб-приложений, но и преследует цель некоторого «инкубатора» стартапов. Вместо того чтобы поглощать сторонние проекты, ИТ-гигант поступил гораздо разумнее и предоставил площадку для создания подобных проектов на своей территории. Уже сейчас на базе Google App Engine разрабатывается огромное количество приложений, за развитием которых можно следить через официальный блог проекта. Молодые (и не только) разработчики (и команды) представляют действительно интересные проекты, многие из которых, возможно, на окончательной стадии станут частью корпорации Google. Время покажет.