Рынок PaaS в России: кто играет и есть ли выигрыш?
Большинство сегодняшних PaaS-платформ направлены прежде всего на удовлетворение интересов разработчиков. Они позволяют создавать масштабируемые веб-приложения с более низкими, по сравнению с IaaS, затратами, но взамен приходится приносить в жертву свободу выбора технологий и контроль за низкоуровневыми компонентами системы. В последнее время в PaaS-сегменте происходит масса интересных событий, среди которых можно назвать появление отечественной PaaS-разработки Hivext и анонсирование PaaS-платформы с открытым кодом Cloud Foundry от VMware.В подавляющем большинстве случаев PaaS-решения направлены на программистов, жизнь которых они призваны облегчить. Действительно, трудно представить себе задачу, которую можно было бы сделать на основе PaaS-платформы, но при этом нельзя было бы реализовать на базе такого IaaS-сервиса, как AWS. В этом контексте PaaS-системы на текущем этапе их развития можно рассматривать как конкурентов IaaS-платформам. Но это не прямая конкуренция: примерно в таких же отношениях язык программирования Java состоит к популярным системам разработки (frameworks) на базе Java: Spring, Struts, Tapestry, а Ruby – к Rails и другим системам на ее основе. Если написание корпоративного веб-сайта на Java "с нуля" может занять целые месяцы времени (особенно если учитывать необходимость тестирования), то инструменты и готовые компоненты из Spring или Tapestry позволяют сократить временные затраты в несколько раз, запустив полнофункциональный сайт за неделю или даже за несколько дней.
Есть задачи, где необходим низкоуровневый контроль и оптимизация. Существуют разработчики, которые не любят доверять чужим архитектурным решениям. В таких случаях выбор неизменно будет сделан в пользу "чистых" языков программирования. Однако в тех ситуациях, когда решаемая задача носит типовой характер, времени на разработку всей системы собственными силами не хватает, разработчик с большой вероятностью сделает выбор в пользу той или иной системы.
Популярные PaaS-платформы
| PaaS-платформа | Дата запуска | Приоритетная целевая аудитория | Поддерживаемые языки | Сервисы хранения данных |
| Cloud Foundry (VMware) | апрель 2011 | Широкий круг разработчиков | Java, Ruby, JavaScript | MongoDB, MySQL, Redis |
| Force.com (Salesforce.com) | 2007 | Пользователи Salesforce.com | Apex (программная логика), Visualforce (описание интерфейсов) | Собственная БД Database Services |
| Google App Engine (Google) | 2008 | Разработчики, использующие Python и Java | Java, Python | Собственная БД Datastore (GQL) |
| Heroku (Salesforce.com) | 2007 | Разработчики, использующие Ruby | Ruby | PostgreSQL; Cloudant, Membase, MongoDB, MySQL, Redis (подключаемые модули) |
| Windows Azure (Microsoft) | 2010 | Разработчики, использующие технологии Microsoft | .Net (C#, Visual Basic), C++, PHP, Ruby, Python, Java | SQL Azure |
Источник: CNews Analytics, 2011
Проблема выбора между IaaS и PaaS очень похожа на сложность выбора между чистыми языками программирования и системами разработки на их основе. Пожертвовав определенной долей гибкости и контроля, присущей IaaS, разработчик взамен получает в виде PaaS мощный инструмент, позволяющий создавать масштабируемые веб-приложения с минимальными затратами, полностью избавившись от забот, связанных с развертыванием приложений, совместимостью ПО и оборудования и самостоятельным проектированием низкоуровневой архитектуры приложения.
Ровно по той же причине, по которой наличие систем разработки не несет принципиальной угрозы для существования языков программирования, развитие ПО класса PaaS не представляет существенной угрозы для рынка IaaS-решений.
Google App Engine
Google App Engine – система разработки облачных приложений от Google, созданная на основе инструментов, которые используются самой Google в инфраструктуре своих приложений. App Engine позволяет разработчикам создавать на языках Python и Java масштабируемые приложения, не задумываясь о низкоуровневой архитектуре.
В то же время, App Engine обладает важными архитектурными ограничениями: создавать приложения можно только на языках Python и Java (также доступны реализации нескольких других языков, которые выполняются поверх Java), вместо традиционной СУБД с SQL-синтаксисом предоставляется СУБД с синтаксисом GQL, где, в частности, не поддерживается оператор JOIN, позволяющий объединять таблицы в базе данных. Доступ к файловой системе возможен в режиме "только для чтения".
Пользоваться Google App Engine можно бесплатно – но только в том случае, если приложение укладывается в заданные Google квоты. Во-первых, для хранения данных выделяется только 1 ГБ дискового пространства. Во-вторых, установлены пределы по суточному объему используемых ресурсов: 1 ГБ входящего и до 1 ГБ исходящего трафика, до 6,5 часов процессорного времени, до 1,3 млн HTTP-запросов, до 10 млн запросов к API базы данных Datastore и до 2000 исходящих электронных писем.
Windows Azure
PaaS-архитектура от Microsoft состоит из нескольких компонентов: "облачная ОС" Windows Azure обеспечивает возможность эластичных вычислений, а также хранения данных; SQL Azure – специализированная версия SQL Server, способная к масштабированию в соответствии с потребностями облачных вычислений. Поскольку облачные приложения, как правило, требуют создания систем, объединяющих несколько виртуальных машин и различных сервисов, в архитектуре от Microsoft присутствует компонент Azure AppFabric, который отвечает за планирование, выделение ресурсов, управление устройствами и отказоустойчивость, а также дополнительные инструменты для мониторинга и контроля. Особенность Windows Azure заключается в том, что эту систему можно арендовать у Microsoft или же разместить в собственном корпоративном приватном облаке.
До 30 сентября 2011 года действует также специальное предложение от Microsoft, в рамках которого желающие разработчики могут бесплатно испытать Azure в работе. Предложение ограничено следующими квотами: до 750 часов процессорного времени, 20 ГБ для хранения данных, 50 тыс транзакций при обращении к системе хранения данных, 1 ГБ данных в облачной СУБД SQL Azure (только на 90 дней), 2 подключения к шине AppFabric Service Bus и 100 тыс транзакций при обращении к AppFabric Access Control.
Единственным поставщиком коммерческого PaaS-хостинга в России сегодня является компания Softline, которая не так давно запустила сервис на базе платформы Windows Azure. Желающие уже сегодня могут заказать у Softline необходимое количество виртуальных машин с разными характеристиками. При расчете ежемесячной оплаты учитываются такие параметры как объем используемого дискового пространства, доступ к SQL Azure, доступ к инфраструктуре App Fabric, использование сети доставки контента (Content Delivery Network), объем сетевого трафика и др.
PaaS-платформы от Salesforce.com
Salesforce.com предлагает одновременно две PaaS-платформы, существенно отличающиеся своим позиционированием. Если Force.com традиционно была ориентирована на заказчиков, которые уже используют CRM-решение Salesforce.com и заинтересованы в расширении его функциональности, то Heroku была приобретена компанией относительно недавно и по своему позиционированию является классической PaaS-системой, призванной прежде всего удовлетворить интересы разработчиков.
В платформе Force.com используются те же технологии, что и в CRM-системе Salesforce.com: собственный язык программирования Apex и язык описания интерфейсов Visualforce. В качестве базы данных также используется собственная система Database Services. Однако если технологии Force.com по какой-то причине оказываются неудобными, можно воспользоваться решением Force.com for Google App Engine, которое позволяет обращаться к данным в Force.com из среды Google App Engine, используя специальные наборы инструментов (toolkit) для языков Python и Java.
Платформа Heroku изначально не была связана с Salesforce.com, да и после покупки, состоявшейся в декабре 2010 года, продолжает развиваться во многом самостоятельно. Heroku – это платформа одного языка, которая подойдет только тем разработчикам, которые имеют опыт работы с Ruby (или желают изучить этот язык). Однако невозможность выбора языков программирования компенсируется широким выбором доступных систем хранения данных: как традиционных СУБД MySQL и PostgreSQL, так и целого ряда NoSQL-систем: Cloudant, Membase, MongoDB, MySQL, Redis.
Cloud Foundry от VMware
Недавно анонсированная платформа Cloud Foundry от VMware – это первая "громкая" OpenSource-инициатива в сегменте PaaS: до сих пор известные облачные платформы с открытым кодом, такие как OpenStack и Eucalyptus, преимущественно затрагивали сегмент IaaS. Cloud Foundry позволит программистам вести разработку и внедрение приложений, основанных на различных популярных системах разработки (таких как Spring, Ruby on Rails, node.js) с использованием различных дополнительных сервисов (MySQL, Redis, MongoDB, RabbitMQ). При этом облако Cloud Foundry можно размещать на специализированной площадке CloudFoundry.com, на корпоративном сервере, на инфраструктуре поставщика публичных IaaS-услуг (например, Amazon Web Services) или даже на ноутбуке разработчика (в последнем случае используется адаптированная версия Micro Cloud). Как развертывание приложения в облаке, так и перенос облака из одной среды в другую при использовании Cloud Foundry отнимают минимум времени.
Архитектура Cloud Foundry

Источник: Cloud Foundry, 2011
Публикация исходных текстов Cloud Foundry под открытой лицензией – сознательный шаг VMware. Появление качественного решения с открытым кодом, гарантирующее независимость от поставщика при переходе на облачные вычисления, может ударить по интересам других поставщиков, которые не раскрывают исходные коды своих платформ и потому не могут предоставить пользователям аналогичных гарантий.
Ждать ли появления отечественного PaaS?
Как видно, PaaS-предложений в России мало и они преимущественно реализованы на базе технологий Microsoft. Однако в ближайшем будущем может появиться полностью независимая PaaS-платформа от группы российских и украинских разработчиков. Речь идет о проекте Hivext, который в прошлом году разработчики Hivext получили 500 тыс. долл. инвестиций от венчурного фонда Runa Capital.
Как сообщил CNews генеральный директор Hivext Руслан Синицкий, бизнес Hivext будет в первую очередь ориентирован на зарубежные компании, относящиеся к сегменту малого и среднего бизнеса: "Планы развернуть полноценный PaaS-бизнес в России есть, но в первую очередь мы смотрим на мировой рынок". Разработчики Hivext уже объявили о совместном проекте с провайдером "АктивХост.ру", в результате которого уже летом 2011 года должен быть запущен коммерческий Hivext-хостинг от "АктивХост.ру".
Несмотря на то, что Hivext находится на этапе разработки, Руслан Синицкий поделился с CNews информацией об одном коммерческом проекте, который ведется на основе Hivext и запуск которого запланирован на апрель. Речь идет о сервисе для контроля за перемещением транспортных средств. "Проект полностью реализован на базе Hivext, – сообщает глава Hivext. – Этот проект изначально спроектирован с учетом гибкого масштабирования при росте клиентов и транспортных средств". Разработчики сервиса довольны платформой: "Мы периодически держим контакт с ребятами, которые разрабатывают этот проект, и их отзывы положительные", – говорит Руслан Синицкий.