CNews Cloud: Облачные сервисы
Статья

Рынок 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 или же разместить в собственном корпоративном приватном облаке.