Витаем в облаках. Часть 3

Интерес к облачным платформам (PaaS) растет у бизнеса с каждым годом. С одной стороны, сейчас доминируют такие крупные игроки как Google, Microsoft и Salesforce, с другой стороны, это не останавливает независимые команды разрабатывать все новые и новые PaaS-проекты, правда, выполненные в несколько другой “весовой категории” – это, прежде всего, Heroku.com, Picloud.com, kodingen.com, PhpFog.com, AppHarbor.com и другие. Давайте в нашей заключительной статье, посвященной обзору различных облачных сервисов, рассмотрим только самых крупных игроков на рынке PaaS, имеющих как минимум свою собственную облачную серверную инфраструктуру и PaaS-решения на ее базе.

Windows Azure (http://microsoft.com/azure)
Эта облачная платформа состоит из трех главных составляющих: Windows Azure (операционная система, обеспечивающая распределенные вычисления), SQL Azure (оптимизированный для распределенных вычислений SQL Server), Windows Azure AppFabric (коллекция очень разнородных сервисов/приложений, в том числе и для необлачного использования). Для создания поистине обширной сети дата-центров для Windows Azure Platform Microsoft потратила 2,5 миллиарда долларов. Физически в эту платформу входит 6 дата-центров, в каждом из которых установлено обычно от 200.000 до 400.000 серверов. В инфраструктуру входят также 23 узла доставки контента (Content Delivery Nodes, CDN), которые разбросаны по всему миру. Основная программная платформа для запуска в этой PaaS – .NET Framework, приложения на которой должны быть скомпилированы в CLR. Но несмотря на это, Azure также позволяет осуществлять запуск и PHP-приложений. Кроме этого, доступны два дополнительных SDK: The Java SDK for AppFabric и Ruby SDK for AppFabric, что, соответственно, позволяет создавать свои приложения для AppFabric на языках Java и Ruby.

Amazon Web Services (http://aws.amazon.com/)
Amazon Web Services – ветеран облачных вычислений, продвигающий свои популярные сервисы Elastic Compute Cloud и Simple Storage Service, которые позволяют разместить на облачной платформе любую программную среду. Несмотря на то, что AWS спроектирована так, что призвана быть максимально универсальной, грань между определением этой платформы как IaaS или PaaS порой очень тонкая. Недавнее открытие “чиcтой” PaaS-службы Amazon Elastic Beanstalk (http://aws.amazon.com/elasticbeanstalk) обеспечило стремительный выход компании на PaaS-рынок. Теперь Amazon предлагает запуск приложений Java, и, как сказано в пресс-релизе, в ближайшее время дополнительно будет обеспечена поддержка Ruby и Ruby on Rails. Выход этого сервиса рассматривают как симметричный ответ Amazon на запуск VMForce для Java-приложений (совместными усилиями Salesforce и VMware). Кроме этого нужно также учитывать ту исключительную роль AWS в размещении на своих мощностях (в рамках AWS и EC2) так называемых “бездомных” PaaS-провайдеров, из которых самые известные это Kodingen, DotCloud, CloudBees, AppHarbor, PiCloud, Heroku и многие-многие другие. Успехи и доходы многих этих молодых PaaS-платформ – это, прежде всего, успех IaaS-платформы Amazon.

Google App Engine (http://appengine.google.com/)
Google App Engine (GAE) – один из самых первых облачных PaaS-сервисов, который был запущен в апреле 2008 года. GAE ориентирован на поддержку работы бизнес-приложений, написанных на языках Python и Java. Для языка Python поддерживается множество его популярных расширений и фреймворков. В рамках GAE существует множество специфических решений, часто не совместимых с реализацией этих же технологий за пределами GAE. Например, популярнейший Django web framework может использоваться на GAE, но с различными модификациями, тот же Grails web application framework также требует модификаций при переносе (в данном случае существует готовый вспомогательный плагин App Engine Plugin) и т.д. Поэтому очень многие разработчики на GAE опасаются, что они могут “увязнуть” со своими решениями на этой очень специфической платформе, что также не добавляет плюсов к ее реализации и популярности. Еще один пример для иллюстрации подхода Google— использование своего собственного языка выборки GQL. GQL, хоть и похож на привычный SQL, все же имеет много специфики, требуя переработки и адаптации своих приложений конкретно к этой платформе. В GAE вы не можете писать напрямую в файловую систему – файловая система предоставляется в режиме “только чтение”. Поэтому сохранять все данные в GAE можно только через Google Datastore API.

Force.com (Force.com)
Force.com – одна из первых и на данный момент самых известных PaaS-платформ, продвигаемая лидером облачного рынка компанией Salesforce и предназначенная в первую очередь для быстрого создания собственных SaaS-решений. И хотя компания сама называет свою платформу “development as a service”, более стандартным и устоявшимся обозначением такого типа облачной платформы является "platform as a service" (PaaS). Физически облако force.com расположено в 8 дата-центрах, географически разбросанных по всему миру. Разработка ведется на языках Apex (очень похожий по синтаксису на Java) и Visualforce (используется XML-язык для создания пользовательских интерфейсов, Ajax, Flex и всего многообразия HTML-сущностей). Написанное приложение интегрируется в salesforce.com и доступно для продажи (проката) в рамках возможностей SaaS-платформы SalesForce. Месяц назад Salesforce провозгласила новую версию своей PaaS-платформы - Force.com 2.

Главная суть всех нововведений — это более открытый процесс разработки. Если раньше на рынке, будь то у MS Azure или GAE, предлагался жестко заданный набор инструментов разработки (как правило, из очень специфичных языков и закрытых стандартов), то с покупкой и интеграцией в свой сервис облачных разработок Ruby-платформы Heroku, Salesforce показала первый пример принципиально новой стратегии на рынке – опора на признанные открытые технологии и известные стандарты. Впрочем, несмотря на текущие работы по интеграции возможностей Heroku в сервисы Force.com, рассмотрим этот сервис самостоятельным пунктом, каким он и видится для потребителя.

Heroku (http://www.heroku.com/)
Heroku – это крупный поставщик платформы для разработок Ruby-приложений, в частности, он предоставляет разработчикам онлайновый Rack-интерфейс и Ruby on Rails. На начало 2011 года сервис успешно преодолел отметку в 120.000 приложений, предоставляемых на его платформе. Heroku называет себя принципиальным последователем NoSQL-решений, поэтому в качестве addon-решений, которые, кстати, можно установить буквально одним кликом, компания предлагает Cloudant, Membase, MongoDB, Redis и многие другие популярные NoSQL-продукты.

В ноябре 2010 года Heroku заключила партнерский договор с Facebook, который продвигает новый продукт - Heroku Facebook App Package. Этот продукт позволяет компаниям любого масштаба создавать свои приложения для Facebook, при этом, по утверждению Hiroku, это самый простой и быстрый инструмент для создания подобных приложений из всех имеющихся на рынке.

Hivext (http://hivext.ru/)
В заключение — пока малоизвестный в мире, но уже крепко вставший на ноги российско-украинский игрок на рынке PaaS-решений, позволяющий вести разработку бизнес-логики веб-приложений сразу на различных языках программирования (Java, JavaScript, PHP и пр.), который, кстати, совсем недавно получил свои первые $500 тысяч инвестиций.

Интересно, что среди этого многообразия поддерживаемых платформ выделяется факт того, что поддержки .NET нет (и не будет). На текущий момент Hivext развернут на собственных серверах в трех территориально разнесенных дата-центрах: в Киеве, Житомире (Украина) и Санкт-Петербурге (Россия). Расценки на услуги пока не известны, но предполагается, что сама среда и инструментарий для разработки будут предоставляться бесплатно.

Приложения будет храниться в “облаке”, а плата будет взиматься за хостинг и за обращение к этому приложению клиентов разработчика.

Соответственно, чем большей популярностью будет пользоваться приложение, тем больше разработчик будет отчислять авторам Hivext. В основе архитектуры Hivext лежит сервис-ориентированная архитектура (SOA). Основная причина использования SOA в рамках платформы — это реализация мечты индустрии программирования о “промышленной” сборке приложений из “стандартных комплектующих”. Все приложения платформы представлены как слабо связанные и заменяемые web-сервисы. Для увеличения скорости разработки приложений платформа включает широкий набор базовых сервисов, которые можно использовать в создаваемых приложениях, тем самым существенно экономя время и деньги на собственной реализации аналогичного функционала.

В число таких сервисов входят:
. авторизация пользователей;
. управление правами доступа;
. файловое хранилище;
. функции интеграции с популярными сервисами (Facebook, Вконтакте, …);
. функции взаимодействия приложений между собой;
. и многое другое.

Игорь Савчук internetno.net


Компьютерная газета. Статья была опубликована в номере 06 за 2011 год в рубрике soft

©1997-2024 Компьютерная газета