Инструменты небесных разработчиков
Роб Крафт: «Мы должны приспосабливаться к разработчикам, а не подстраивать их под себя»

Очень трудно провести различие между хорошим и плохим облачным приложением лишь на основе того, как оно написано, — необходимо еще анализировать, как оно эксплуатируется, считает Роб Крафт, старший директор Microsoft по стратегии облачных вычислений. Сегодня корпорация старается предложить разработчикам инструменты, охватывающие весь спектр возможностей, предлагаемых разнообразными платформами: Windows 8, Windows Phone, Windows Server и Windows Azure. Крафт рассказывает, что же для компании представляет собой облако как цель и средство разработки.

Сейчас много говорят о разнообразных преимуществах облака, но для разработчиков облако означает и новые проблемы. Какие вызовы бросает облако разработчикам?

Облако, с точки зрения разработчика, — это вопрос, скорее, стиля, чем местоположения. У разработчиков появляется возможность создавать приложения, ориентированные на неограниченные ресурсы, запрашиваемые по необходимости, в противоположность традиционной ситуации, когда ресурсов (сетевых, вычислительных и систем хранения) всегда не хватает. При этом мы считаем, что разработчикам должна быть обеспечена поддержка работы как в частном облаке, построенном с применением собственных ресурсов компании, так и в публичном, реализованном на базе ресурсов сторонней организации.

Задачи, решаемые разработчиком, когда он пытается создавать приложения в облачном стиле, во многом подобны тем, которые возникали при переходе от архитектуры клиент-сервер к многозвенной архитектуре — три из них являются общими и для тех времен, и для наших дней, а одна совершенно новая.

Первая задача, которая существует очень давно и наверняка будет актуальна еще долго, относится к управлению идентификацией. Сегодня большинство разработчиков ориентируются на единую службу управления идентификацией: Yahoo, Google или Active Directory. Думаю, очень скоро обязательным требованием для масштабных облачных бизнес-приложений станет система управления идентификацией, построенная по федеративному принципу.

Следующая проблема — разработка с учетом масштабирования. Раньше разработчики при написании приложений ориентировались на возможности масштабирования, которые им предоставляла целевая аппаратная платформа. Теперь, когда приложение работает в публичном облаке и может быть развернуто одновременно на тысячах компьютеров, оно либо обеспечит очень высокую производительность, если написано хорошо, либо, если написано плохо, станет источником значительных лишних затрат. Справиться с этой проблемой может помочь, например, система управления Microsoft System Center, которая построена таким образом, чтобы работать непротиворечиво и эффективно как с локально устанавливаемыми системами в частном облаке, так и с ресурсами публичного облака.

Третья существующая очень давно задача претерпевает наиболее важные изменения в эпоху разработки в облачном стиле — это создание моделей бизнеса. Появление и широкое распространение онлайн-магазинов приложений, которые теперь реализованы и на базе Windows и будут активно использоваться в среде Windows Azure, открывают для разработчиков новые возможности, но и требуют новых подходов.

Четвертая, совершенно новая задача связана с внедрением выгодных для бизнеса сценариев работы с особо крупными массивами данных. Все более очевидно, что центром гравитации облачной модели становится именно возможность доступа к данным. Для разработчиков это в большей степени источник потенциальных возможностей, чем проблем, но серьезные трудности здесь также присутствуют. В частности, в наше время все данные в корпоративных хранилищах подпадают под различные требования и законы о защите персональных данных.

Некоторые аналитики полагают, что современные интегрированные среды разработки (Integrated Development Environment, IDE) не имеют адекватных инструментов разработки приложений для Больших Данных. Что делает Microsoft в этой области?

Думаю, что это так. В скором будущем мы планируем, что появится возможность работать с петабайтными объемами данных непосредственно в Excel. Уже есть реализация Hadoop как на базе Windows Server, так и в качестве сервиса в облачной среде Windows Azure. Мы также считаем, что необходимо модернизировать и развивать инструменты бизнес-аналитики, с тем чтобы они могли работать в режиме, близком к реальному времени. Это позволит выстроить необходимую пользователям логическую цепочку: данные превращаются в информацию, информация преобразуется в аналитику, а аналитика приводит к конкретным действиям. Именно этой логике мы следуем в разработке соответствующего инструментария, двигаясь от создания отдельных средств к целостной платформе работы с данными.

Речь идет об инструментах Visual Studio?

Для сырых данных используется инструментарий Visual Studio и SQL Server, позволяющий осуществлять первичную обработку данных и готовить их к анализу. Но если идти дальше по цепочке в сторону конкретных действий, то чем ближе мы к пользователю, который работает с информацией, тем больше нагрузки возлагается на программные средства, которые находятся в его распоряжении. И это та область, где Microosft занимает уникальное место, поэтому, когда речь идет об использовании платформы Windows Azure, мы cтремимся предоставлять разработчикам средства, ориентированные на решение двух основных задач. Во-первых, на разработку приложений, а во-вторых, на работу с данными. Оба этих направления поддерживаются с одинаковой степенью важности.

Hadoop — один из примеров поддержки Microsoft проектов с открытым кодом. Компания стала более открытой по отношению к сообществу Open Source. В чем причина такой перемены? Какую роль решения с открытым кодом играют в развитии облачной платформы Azure?

Сегодня мы наблюдаем появление множества новых сценариев работы с использованием мобильных устройств — смартфонов и планшетов. Они имеют небольшие экраны, что привело к широкому распространению однофункциональных приложений, которые проще придумывать и легче писать, чем традиционные. В результате возникла ситуация, когда разработчиками становятся миллионы людей, которые раньше этим никогда не занимались. Необходимость обеспечивать поддержкой и соответствующими инструментальными средствами и методиками самые разные категории разработчиков, в том числе новичков, привела нас к осознанию того, что Microsoft должна приспосабливаться к разработчикам, а не подстраивать их под себя. Это требует от нас, в частности, обеспечить как можно более быструю поддержку максимальному количеству существующих платформ, в том числе и с открытым кодом.

Изменение отношения Microsoft к разработкам категории Open Source в первую очередь затрагивает Windows Azure, поскольку возможности этой платформы пользователи могут получить гораздо быстрее, чем традиционные продукты. При этом мы считаем очень важным для себя сотрудничать с сообществом разработчиков ПО с открытым кодом на принципах равенства и справедливости. В некоторых случаях, когда это целесообразно, мы сами передаем сообществу свои программные разработки, например компоненты .NET Framework.

Поскольку Azure является платформой публичного облака, а в нем, по нашим оценкам, наиболее распространенный вид нагрузки — Web-приложения, которые очень часто разрабатываются как раз по модели с открытым кодом, то отсюда и вытекает ответ на вопрос о роли Open Source для этой платформы. А с учетом нашего опыта построения ИТ-инфраструктуры для крупных предприятий мы можем гарантировать разработчикам, использующим Windows Azure, средства и условия, позволяющие им успешно зарабатывать на своих разработках.

В облако переносятся разные типы приложений, но насколько это оправданно для инструментов разработки?

В новую версию Visual Studio 2012 мы включили средства поддержки всего жизненного цикла приложения, в том числе с использованием облака, что в определенных ситуациях имеет смысл. Возможность организовать бесшовное построение приложения и использование серверов сборок, тестирования и развертывания сейчас являются элементарной задачей для большинства компаний-разработчиков. Чем больше времени разработчики смогут уделять собственно написанию программ, а не созданию скриптов их сборки, тем выше будет качество программных продуктов. Есть определенные классы приложений, которые не требуют изощренных средств управления жизненным циклом, но по мере роста их сложности становятся востребованы все возможности Visual Studio. В частности, положительные отклики разработчиков получило включение в Visual Studio 2012 таких возможностей, как перенос в облако процессов сборки и тестирования, благодаря чему они развертываются не на одном сервере, а на масштабных облачных вычислительных мощностях.

С точки зрения управления жизненным циклом приложений одной из тенденций сегодня является интеграция этапа разработки и этапа эксплуатации приложений, так называемый принцип DevOps. Насколько он актуален применительно к облакам?

Говоря об облаке, я бы не ограничивался принципом DevOps, а добавил бы еще задачу интеграции с бизнесом. Со временем станет очевидно, что разработчикам важно рассматривать в комплексе не только вопросы написания программного кода и его эксплуатации, но и гарантировать, что создаваемый код обеспечит максимальную выгоду для бизнеса. При этом очень трудно провести различие между хорошим и плохим облачным приложением лишь на основе того, как оно написано, необходимо анализировать, как оно эксплуатируется. Соответствующий инструментарий может быть очень хорошим подспорьем в таком анализе. В наших лабораториях сейчас тоже происходит такая трансформация процессов разработки.

Вы говорили о мобильных устройствах как широко распространенном способе доступа к облачным приложениям. Как вы в своих инструментах разработки учитываете необходимость интегрировать мобильность и облака?

Точка соприкосновения этих областей для разработчиков — это платформа Visual Studio, но мы считаем, что важным фактором эффективной интеграции мобильных устройств и облачных сред является обеспечение не только максимальных возможностей для разработчиков, но и решение задач управления. Для этого предназначен комплекс продуктов System Center, позволяющий реализовать принцип объединения разработки и эксплуатации (DevOps). Мы сейчас видим реальные возможности приложений не только для публичных, но и частных облаков эффективно работать с мобильными устройствами пользователей.

Какая задача для ваших заказчиков актуальнее — разрабатывать облачные приложения с нуля или модернизировать существующие для их размещения в облаке?

Как правило, у наших заказчиков уже есть необходимые им приложения, поэтому перед ними встает задача модернизации существующей кодовой базы для облачного развертывания. Крайне важно, чтобы разработчики не теряли накопленный опыт, а совершенствовали его, перенося существующие приложения в облако в тех ситуациях, когда это оправданно, — например, в случае больших нагрузок на вычислительные или сетевые ресурсы или при необходимости работы с большими объемами данных. И при этом продолжали обеспечивать нужные их клиентам возможности для локальных приложений с точки зрения лицензирования или эффективного функционирования этих систем.

Однако появляются и совсем новые приложения, которые компании-разработчики имеют возможность создавать в качестве чисто облачных. По нашим наблюдениям, такого рода предложения все больше привлекают клиентов, в том числе и тех, кто пока работает только с локальными приложениями.