Кот, не расставаясь с примусом, ухитрился махнуть по воздуху и вскочить на люстру, висящую в центре комнаты.
— Стремянку! — крикнули снизу.
Михаил Булгаков. Мастер и Маргарита
Вместе со средой такая платформа наследует характеристики облака, не существовавшие ранее в традиционной среде программирования. Так, услуги облачной среды программирования оплачиваются в зависимости от времени и интенсивности ее использования. Стандартно средства разработки рассчитаны на одного пользователя, а в облаках несколько человек могут одновременно в реальном времени работать над одним и тем же проектом.
Разработчики обычно оставляют на потом вопросы функционирования приложения в многопользовательской архитектурной среде, и соответствующее тестирование продукта превращается в самостоятельную фазу внедрения. В облаке такой фазы не потребуется: оно изначально является многопользовательской средой. Традиционные среды разработки не ставят перед собой цель мониторинга исполнения задач (runtime monitoring), а облачная среда предоставляет эти средства по умолчанию даже на этапе написания ПО.
Платформа как сервис облегчает задачу программирования. Опытному разработчику интернет-приложений необходимо было спланировать и создать базу данных и пользовательский интерфейс, а также разобраться в администрировании сайта. А вот программисту в облачной среде не потребуется специальных знаний — значит, возрастет количество пользователей, которые будут создавать приложения в облаках. Тем не менее перенос в облака среды разработки больших корпоративных приложений имеет как положительные, так и отрицательные стороны.
В чем риск программирования в облаках?
Зависимость от провайдера
Руководителю, решившемуся компьютеризировать деятельность предприятия в облаках, неминуемо придется согласиться с ограничением на средства программирования, предлагаемые провайдером. Так, компания Salesforce рекомендует платформу на основе языка программирования Apex, а облачная ОС Microsoft Azure поддерживает платформу .NET и язык PHP.
Безопасность обеспечивает третья сторона
Безопасность и контроль доступа к пользовательским данным обеспечивает разработчик среды. Средства защиты находятся в руках одной стороны, в то время как другая рискует своими данными. Кроме того, облачная платформа может не соответствовать законодательству, по которому необходимо обеспечить информацию в определенном формате. Например, закон о последствиях стихийного бедствия в США обязывает хранить план по восстановлению деятельности в стенах предприятия. Напротив, при использовании облачной платформы и данные, и средства разработки будут находиться у провайдера.
Платформа — «кот в мешке»
В то время, когда выбирается платформа, бывает еще неясно, будет ли она достаточно гибкой для того, чтобы удовлетворять требованиям создания бизнес-приложения. На программирование могут уйти и время, и средства, а потом окажется, что среда недостаточно гибкая и изменить ее не во власти клиента.
Новизна подхода вычислений в облаках
Облачная среда привносит в игру свой собственный интерфейс, сервисы и стоимость услуг. Подход «платформа как сервис» находится на стадии развития, и общие стандарты еще не выбраны. А значит, есть риск, что уже завтра стоимость услуг может существенно повыситься; провайдер выйдет из игры или перестанет предоставлять выбранный сервис, качество которого к тому же может измениться не в лучшую сторону. Поэтому руководитель, размещающий важное бизнес-приложение в облаках, рискует не только этим продуктом, но отчасти и всем бизнесом.
Преимущества платформы в облаках
Тестирование и есть внедрение
В традиционной среде программисты делают приложение в одной среде, тестируют в другой, а внедряют в третьей, которая может значительно отличаться от тепличных условий разработки. Вычисления в облаках позволяют сразу в ходе создания программного продукта выяснить, как он будет работать в различных конфигурациях и какова будет скорость выполнения операций для реальных пользователей. Стадии тестирования и внедрения объединяются в облаках в одно целое, что позволяет существенно экономить время разработки ПО.
Экономия на оборудовании
При работе в облаках вычислительные мощности предоставляет провайдер. Выделение средств для закупки серверов и пользовательских компьютеров для разработки и тестирования остается в прошлом.
Динамичное внедрение новшеств
В отличие от традиционной среды облако позволяет внедрить новые черты приложения не для всех, а лишь для ограниченного количества пользователей. Если потребуется, новшества можно свернуть и вернуться к проверенному варианту.
Использование уже наработанного кода
Когда компания присоединяется к платформе, то она получает доступ к библиотекам готовых приложений, вклад в которые вносят не только разработчики среды, но и программисты организаций-клиентов. Применение такого ПО является отличным способом аутсорсинга своей инфраструктуры и содержит реальный потенциал для уменьшения затрат на ИТ. Облачная платформа позволяет сократить расходы на разработку по крайней мере в 2—3 раза лишь за счет аутсорсинга. Компания Salesforce дает пример прекрасно организованного хранилища кода — ее библиотека AppExchange насчитывает около 800 приложений. Несмотря на то что разработчики ограничены лишь одним языком программирования Apex, им доступна огромная библиотека наработанного кода.
Программируем в облаках вместе с LinkedIn
Граница между SaaS (Software as a Service, ПО как услуга) и PaaS постепенно становится все более расплывчатой. Сейчас большинство провайдеров стремятся предоставить пользователю возможность самому изменить приложение так, как ему хочется: в соответствии с его бизнес-целями, да и просто с личными предпочтениями.
Крупнейшая социальная сеть LinkedIn, подчиняясь тенденции, предлагает программистам набор API-интерфейсов, работающих на основе стандартного аутентификационного метода OAuth, позволяющего авторизовать пользователя и предоставить доступ к данным при выполнении API-запроса. Программное обращение в LinkedIn содержит идентификатор приложения API key, от которого происходит запрос, предоставляемый LinkedIn, и идентификатор пользователя Access Token, от имени которого осуществляется запрос. Кроме того, LinkedIn предоставляет расширения, готовые к использованию на персональной странице профиля LinkedIn. Например, одним из таких удобных добавлений является приложение, позволяющее высветить на экране ближайшие конференции, которые планируют посетить профессионалы, принадлежащие сети пользователя.
Создав свое уникальное расширение, любой автор может поместить его в общедоступную копилку LinkedIn. Однако далеко не каждое такое приложение будет добавлено в систему. Прежде чем стать доступным всей Сети, оно должно быть одобрено разработчиком. Подобная цензура нужна LinkedIn для того, чтобы поддерживать статус профессиональной сети. «Мы не собираемся предоставлять людям возможность посылать друг другу электронные гамбургеры» — так объясняют в компании LinkedIn свою политику.
Еще одно интересное начинание LinkedIn — так называемые виджеты, т.е. программы для часто встречающихся запросов к сети извне. Всего лишь пара строк на JavaScript поможет вам показать информацию социальной сети на своем сайте. Ниже приведены три примера виджетов, предлагаемых LinkedIn.
- Share on LinkedIn дает возможность пользователю одним щелчком мыши отправить уведомление о сайте или блоге всем своим контактам в LinkedIn. Предоставляя такую кнопку, разработчик помогает каждому посетителю сайта известить о нем десятки, а то и сотни своих коллег.
- Profile высвечивает профиль пользователя социальной сети на стороннем для LinkedIn сайте. Таким образом, одни и те же данные, поддерживаемые в актуальном состоянии, могут быть представлены сколько угодно раз в блоге пользователя, на его сайте и в других профилях.
- Company Insider позволяет по названию организации показать пользователю, со сколькими контактами внутри данной компании его связывает социальная сеть LinkedIn. Этот виджет бывает полезен и при поиске работы. Так, соискатель, просматривая открытую позицию, имеет возможность щелкнуть на названии работодателя, чтобы выяснить, не найдется ли доступный ему инсайдер среди его контактов.
В качестве иллюстрации приведен последний виджет:
Данная программа позволяет пользователю узнать, какое количество профессионалов из его сети обеспечивает ему связь с компанией Microsoft. Для того чтобы виджет сработал правильно, пользователю необходимо предварительно авторизоваться в сети LinkedIn. На рисунке представлен результат выполнения этой программы для моего профиля LinkedIn: пять контактов связывают меня с данной компанией. Любой другой пользователь увидит такое количество связей с этой компанией, какое предоставляет ему его собственная социальная сеть.
Для того чтобы использовать ту же программу для иной организации, достаточно заменить «Microsoft» на новое название. Подпрограмма companyInsider определяется внутри тега и вызывается в . Это, собственно, и есть виджет, доступный всем желающим и хранящийся в облаках. Информация о компании появляется там, где расположен тег . Параметр Id в данном примере принимает значение micro, но допустимы и любые другие
Дорога в будущее
Обмен программными интерфейсами и информацией происходит не только между пользователем и провайдером, но и между самими провайдерами вычислений в облаках. Например, компании IBM и LinkedIn планируют создать плагин для интеграции в одно пространство двух сетей: LotusLive и LinkedIn. Первое из направлений интеграции — возможность одним щелчком мыши высветить профиль контактного лица из LinkedIn, находясь в ящике электронной почты LotusLive. Поиск будет выполняться по электронному адресу пользователя. Второе направление интеграции — это, наоборот, предоставление пользователю LinkedIn возможности проинициировать веб-конференцию LotusLive, не покидая сайта LinkedIn. Создатели сети LinkedIn ведут переговоры о сотрудничестве и с другими компаниями, например, с Microsoft — об интеграции с Outlook и с RIM — о создании версии социальной сети для смартфонов Blackberry.
Независимо от нашего желания, в будущем нам придется подняться в облака, где так удобно соединять в одно целое разные приложения, информацию, провайдеров, программистов и обыкновенных пользователей. Не выпуская из рук свой виртуальный профиль или любые иные данные, расположенные в облаках, пользователь сможет «перепрыгивать» с одного облака на другое, из предыдущего веб-сайта в следующий — подобно тому, как булгаковский кот Бегемот ухитрился по воздуху махнуть со своим примусом на люстру. Дорога в облака проложена, стремянка не нужна.