Наверх ▲

Microsoft выбирает Open Source

Сэнди Гупта (Sandy Gupta) Сэнди Гупта (Sandy Gupta) Главный руководитель Open Solutions Group (OSG) в Microsoft.

Sandy Gupta: Добрый день, меня зовут Сэнди Гупта, я глава одного из подразделений корпорации Microsoft. Сегодня я расскажу о стратегии Microsoft под названием Open Source Strategy для Microsoft Cloud и о том, что наше подразделение в Microsoft делает для упрощения разработки "облаков" программистами и создания новых возможностей для приложений с открытым исходным кодом.

Позвольте для начала рассказать о том, чем занимается мое подразделение. Оно специализируется на различных продуктах. Мы работаем с компаниями, создающими продукты Open Source, и коммерческими компаниями с тем, чтобы совместно разрабатывать решения с открытым кодом. 

Ранее вы, возможно, слышали о проектах в сфере виртуализации, где Microsoft поддерживала Linux в качестве Hiper-V или создавала кроссплатформенные решения на базе продуктов Microsoft. Это некоторые из проектов, которые мое подразделение ведет в Microsoft. Мы также работаем с решениями HPC для обеспечения различных дополнительных возможностей под Windows и Linux. Последние пару лет мы активно занимались решениями с открытым исходным кодом в Microsoft, и именно об этом я хочу поговорить с вами сегодня.

Мы работаем с рядом клиентов, у нас порядка 800 клиентов по всему миру. Это наши непосредственные клиенты, которым мое подразделение поставляет продукцию напрямую. Большинство решений – это совместные решения с другими компаниями, разрабатывающими продукты Open Source.

Еще несколько слов о нас. Центр технологии Open Source Microsoft был открыт на момент, когда я пришел в эту компанию. Там разрабатывалось десктоп-приложение. Сейчас это одна из крупнейших лабораторий в Microsoft. У нас ведется работа по многим направлениям. Могу сказать, что у нас работают увлеченные своим делом специалисты, очень известные люди из Linux, PHP и так далее.

Сейчас это весьма крупный центр разработок Microsoft. Вы, возможно, видели статистические данные, в соответствии с которыми мы являемся пятым крупнейшим разработчиком приложений для Linux 3.0. Кроме того, мы делаем драйверы для Linux. В результате Linux отлично работает на платформе виртуализации Microsoft. Мы и далее планируем продолжать инвестиционное взаимодействие с Linux. 

Мы говорили о Microsoft Cloud, "облаках" Microsoft. Что мы делаем для разработки "облачной" технологии?

Во-первых, дам вам общий контекст. Речь идет о том, что нужно отличать частные "облака" от общедоступных. Это высший слой, там есть такие готовые сервисы, как обмен сообщениями, SharePoint, Dynamix (CRM-инструмент). Все эти решения могут размещаться либо непосредственно корпорацией Microsoft, либо ее партнером, либо клиент сам может иметь собственным хостинг.

Также мы предлагаем платформу как сервис (PaaS), она носит название Microsoft Azure. Более подробно о ней мы еще поговорим. Но это полноценная платформа, на которой разработчики могут создавать свои приложения и размещать свои инструменты. Она предназначена для тех, кому нужна не инфраструктура, а приложения. Они не видят виртуальных машин или инфраструктуры. Что они видят? Набор API, на котором они пишут. Microsoft предоставляет такие услуги.

Кроме того, в прошлом году мы объявили, что Azure будет работать как устройство. В ноябре он будет выпущен. Этим летом в России у нас появился партнер. Он запускает эти услуги в России. Так что теперь доступ для клиентов в России также обеспечен.

Третья часть – это "облако" Hiper-V. Оно работает на уровне инфраструктуры. Тут все так же, как в Amazon. Вы видите виртуальные машины, у вас есть хранилища и так далее. Но управляете всем этим, по сути, вы сами. Некоторые сервис-провайдеры выстраивают собственную "облачную" инфраструктуру с использованием облака Hiper-V.

Это три уровня приложения Microsoft. Все они могут быть реализованы как для частных, так и для общедоступных "облаков".

Интересно, что приложения с открытым исходным кодом существуют на двух нижних уровнях: на уровне PaaS и на уровне инфраструктуры. Приложения SaaS, готовые приложения – тут не так много функциональной совместимости с открытым кодом.

Поэтому я, в основном, сначала остановлюсь на Azure, вкратце опишу, что это такое. Потом поговорю о том, что делает Microsoft в сфере решений с открытым кодом. Затем будет часть, касающаяся "облака" Hiper-V.

Microsoft Azure – это набор трех основных блоков. Даже четырех, я бы так сказал. 

Во-первых, это собственно Windows Azure. Это "облако" операционной системы, которое обеспечивает "фабрику" для расчетов и среду для запуска приложений. Как только вы определяете свои услуги (я немного подробнее об этом поговорю), эта "фабрика" обеспечивает работу приложений. Там есть разные метаданные, балансировка нагрузки… Если вы хотите, чтобы ваши сервисы больше работали в Великобритании, а не в дата-центре в Сингапуре, то все эти параметры можно настраивать. 

Помимо Windows Azure (операционной системы) есть специальная БД Azure на базе SQL. Это реляционная база данных, основанная на API. Она может использоваться с сервисами, которые работают за пределами Azure.

Например, на прошлой неделе у нас был вендор, поставщик приложений из России, который предоставляет услуги на iOS. Они используют SQL Azure в качестве "облака" для размещения своего хранилища данных. Вот, собственно говоря, как можно использовать второй блок SQL Azure. 

Третий блок – это подключение сервисной шины. Здесь вы можете авторизовывать пользователей с применением других механизмов аутентификации. Можно авторизовывать их на Azure и обеспечивать доступ к приложениям и ресурсам. 

Все 3 блока представляют собой платформу Azure. Наверху – сами инструменты, языки, ID, все инструменты, которые нужны для разработки приложений.

Теперь давайте остановимся подробнее на Widows Azure. Теперь если пойти немного вглубь и залезть в Widows Azure, то вы увидите, что это высокомасштабируемая ткань, которая идет по разным дата-центрам. Здесь сервисы могут запускаться в одном дата-центре, другая инстанция делает балансировку нагрузки в другой географической точке между контейнерами и через границы. 

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

Я спущусь еще на один уровень ниже, поговорю о решениях с открытым исходным кодом и о том, как они могут накладываться на эту платформу. Если опуститься на 1 уровень ниже внутри Windows Azure, то здесь обнаружится пара ролей для приложения. Первая роль – это веб-роль (англ. Web Role). Веб-роль представляет собой любой запрос для веб-сервера. Это работает на некотором веб-сервере. Это может быть iOS, это может быть TomCat, это может быть Apache. По сути, это ваш код, который получает запрос от веба.

Вторая роль – это рабочая роль. Здесь у вас различная логика приложений. Например, есть два различных сервиса, которые можно запускать на платформе Azure. Вы определяете, как запускать эти сервисы, указываете количество экземпляров и задаете характеристики балансировки нагрузки.

Подведем итоги. У вас есть вычислительные ресурсы под запрос и автоматизированное управление сервисами. Клиенту не нужно патчить вашу операционную систему. Вопрос такой... Если вы разработчик на Java PHP, .Net или Visual Studio, есть вещи, которые работают прямо "из коробки", к ним можно получать доступ. Что делать, если вы разработчик Java, PHP или Ruby?

Что мы создали для Azure на этот случай? Если вы используете среду исполнения PHP или Java, то мы обеспечиваем тот же опыт, который у вас был с использованием "родных" инструментов. Для Azure есть полный SDK, который готов и существует для Java и PHP. Его можно использовать, например, в Eclipse IDE с тем, чтобы создавать приложения на Azure.

Итак, что вам нужно сделать в первую очередь? Вы переходите в Windows Azure, загружаете соответствующий плагин для Eclipse. Это плагин, который мы разработали вместе с фондом Eclipse в прошлом году. Как только вы загрузили плагин, вы, по сути, видите, закладку. У вас есть закладка с Eclipse IDE, которая называется "Windows Azure". 

Здесь вы можете создать новый проект под Windows Azure. Давайте назовем его Moodle_demo. Что вы тут можете сделать? Поскольку Moodle_demo – это приложение, которое играет веб-роль, вы можете определить веб-роль, указать ее здесь. Вы можете либо использовать среду исполнения PHP, которая идет вместе с этим плагином, либо вы можете поискать и установить собственную среду исполнения PHP (ту версию, которая вас устраивает). В PHP много всяких разных версий, которые поддерживают работу с Azure.

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

Потом можно выбрать различные опции. Например, хранение по блокам на платформе Windows Azure (она предлагается по умолчанию). Можно взять SQL Azure в качестве репозитория хранилища данных. Можно включить MySQL в качестве хранилища данных, потому что многие приложения, написанные на PHP, уже предназначены для использования MySQL. Соответственно, нет необходимости конвертировать свое приложение из SQL в MySQL и так далее. Я еще подробнее расскажу про MySQL. 

После нажатия кнопки «Далее» можно указать количество экземпляров веб-роли, которое я хочу создать для целей избыточности и так далее. Что получается после завершения процесса? Получаются два каталога. Первый из них содержит конфигурационный файл этого проекта с определением параметров (таких, как учет информации по Azure, различные параметры, которые относятся именно к Azure). Во многих случаях вы будете использовать параметры по умолчанию или менять некоторые из них по необходимости.

Второй каталог содержит веб-роль. Для нее настроено автозаполнение. В данный момент мы должны скопировать директорию Moodle. Просто копируете всю директорию Moodle с приложениями с открытым исходным кодом. Что здесь надо поменять? Может, вот этот файл содержит параметры конфигурации PHP, где вам надо указать, какой экземпляр базы данных вы используете. Надо указать это и соответствующий пароль для получения доступа в эту базу данных.

Это, в принципе, все. У вас есть готовое приложение Moodle для выполнения в Azure. Можно выйти в Windows Azure, можно создавать, выполнять, развертывать прямо из IDE Eclipse в вашем экземпляре в Azure.

Я сейчас быстро расскажу, как управляться с этим процессом. Когда вы развертываете приложение на Azure, можно обратиться в портал администрирования Azure, и мы увидим, что это делается напрямую. Мы видим, что этот каталог уже обладает всей необходимой информацией и можно управлять своими сервисами из этого портала или через IDE Eclipse. Используйте либо одно, либо другое. Можно переходить с одного на другое.

Конечный пункт для вашего сервиса – это соединение с PHP, точка, связанная с PHP. Если обратиться в n-point, то можно вставить Moodle здесь и получить сервисы Moodle, которые выполняются в Azure. Регистрируйтесь – и вы готовы к работе.

В принципе, что нами было сделано? Мы пытаемся упросить этот процесс для вас, чтобы вы могли вывести свое приложение на платформу Azure и использовать возможности Microsoft по всему миру. Возможность масштабирования, быстродействия – это то, что дает Azure. При этом не надо изучать какие-то новые инструменты. Ощущения от использования Eclipse для PHP или Java те же самые, к которым мы привыкли. Все это очень похоже, независимо от среды исполнения и инструментов. Это делается так же при работе в Azure. 

Сейчас стоит перейти к выводам. Можно выполнять веб-роли PHP на Azure, можно получать доступ к хранилищу. Можно выполнять приложения PHP Eclipse на других сайтах и получать соответствующий доступ к хранилищу SQL в Azure и другим видам хранения данных. Все зависит от сценария приложения. Можно использовать гибридные приложения. Можно полностью построить приложение на Azure.

Какой еще есть функционал и возможности? Существует нативная поддержка, например, MySQL в Azure. Есть много приложений, много интерфейсов с MySQL. Мы позволяем работать с MySQL в Azure. Есть так называемый ускоритель решений (Solution Accelerator). Можно использовать типичную стандартную конфигурацию "ведущий-ведомый" и использовать эти возможности для работы с MySQL и PHP. 

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

Нативная поддержка предоставляется для TomCat, Apache. Соответственно, вы можете использовать эти возможности в Azure.

Итак, если вы разрабатываете в Azure, выводите туда свои приложения, примеры общедоступного программного обеспечения, мы позволяем вам использовать инфраструктуру этой платформы. Вы увидите, что инструменты, которые вы можете там применять, очень похожи на те, к которым вы привыкли.

Второе, о чем я хотел поговорить, – это интеграция открытого ПО в облаке Hyper-V. Как мы ранее говорили, она осуществляется уже на уровне IaaS. 

Это тот уровень, где можно осуществлять управление пулом виртуальных машин. Можно запускать такие машины, останавливать их. Это делается на уровне инфраструктуры. 

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

Что это означает? Это значит, что у вас реализована полная автоматизация проверки состояния ваших систем, конфигурации ваших систем, патчей, обновлений, а также перераспределения нагрузки по вашим физическим системам. Это действует как Windows и продукты Microsoft SharePoint и SQL-сервисы. Но это также применимо для серверов Linux и ПО с открытым исходным кодом. Поддерживается широкая гетерогенная среда с такими возможностями, как мониторинг, патчинг и так далее без учета границ в разных странах мира и так далее.

Сейчас я постараюсь проиллюстрировать эти возможности. Это стандартный портал самообслуживания. Здесь можно видеть свои виртуальные машины. Там, в этом представлении, можно ими управлять и мониторить состояние этих машин. Если вы знакомы с порталом Microsoft, тут похожий интерфейс с виртуальными машинами. Здесь все как в Windows, я здесь вижу различные параметры мониторинга, быстродействия. Смотрю на состояние сервера Apache и другого ПО. Здесь очень широкие возможности мониторинга по самым разным продуктам, включая ПО с открытым исходным кодом.

Далее я расскажу, как управлять патчами. Я группирую серверы Linux, я вижу, какие патчи у меня есть. Я могу определить политики по установке этих патчей. Это могут быть патчи безопасности и так далее. Для всего этого есть единый интерфейс. Конечно, и для сервера Windows, и для SQL-сервера это применимо. Но нас больше интересует Linux и ПО с открытым исходным кодом.

Что еще можно сделать? Можно перераспределять нагрузку между физическими или виртуальными машины Linux. Конечный пользователь интерфейса перераспределяет нагрузку. Также это работает с Hiper-V.

Здесь есть центральная система управления (то, что раньше называлось Opalis). Это движок для организации всей работы по перераспределению нагрузки. При работе с Linux таким образом, надо провести целый ряд мероприятий, создать экземпляры, шаблоны и так далее. После этого указываются IP-адреса, DNS-адреса и так далее. 

Что мы сделали? Мы облегчили этот процесс. Можно взять и перенести такой интерфейс, где можно обеспечить управление работой программного обеспечения. Все работает очень гибко. Также существует представление Linux Space Work, и другие программные средства могут использовать этот инструмент. Это описание платформы.

Мы расширили эти возможности. Теперь доступна полная автоматизация и работа в гетерогенных средах. Кроме того, расширили действие этой платформы не только для коммерческой версии Linux. Мы поддерживаем Red Hat 6, CLS11. Недавно мы сделали объявление для сообщества пользователей Linux, поскольку Hiper-V "облако" теперь поддерживает уже большее количество нативных пользователей в Linux.

Также мы недавно закончили проект с китайской национальной корпорацией разработчиков, которая занимается Linux. Кроме того, мы сотрудничаем с другими организациями, которые работают с Linux на нашей платформе. 

Мы работаем с сообществами, чтобы обеспечить высокую эффективность и контроль производительности. Это касается не только продуктов Microsoft, веб-сервисов, баз данных или гипервизороров. Мы добавляем плагины на постоянной основе, расширяя нашу платформу. 

 

С точки зрения перераспределения ресурсов, как я уже сказал, Opalis организует весь этот процесс. Но здесь можно многое изменить. Можно изменить правила в соответствии с вашими потребностями. Можно создать своего агента по управлению этим процессом. Можно добавлять приложения. Все это можно автоматизировать, используя "облако" Hiper-V.

 

Одна из областей, куда мы также вливаем значительные инвестиции (мы продолжаем инвестировать в эту область) - это интеграция Hiper-V облако с инструментами и ПО в открытом доступе типа SVN. Есть плагин для SVN, есть плагины для Eclipse, для TeamForge. Мы создаем условия для того, чтобы вы могли использовать эту среду для разработки, тестирования и развертывания своих приложений. Причем эта среда будет вам знакома. Не надо чему-то учиться заново, осваивать какие-то инструменты или приложения. Это касается не только Visual Studio и dotNet.

Это основной посыл моего сообщения. Широкие возможности платформы позволяют реализовывать многие функции. Можно размещать свои приложения в Java, PHP или dotNet. Если они хорошо написаны, то все будет работать.

Мы работаем с девятью поставщиками (IBM, Fujitsu, MVC и так далее), выводя этот продукт на рынок. Надо сказать, это большой рынок. Разрабатывая свое приложение, вы можете получить доступ к этому рынку.

В порядке выводов. "Облачные" решения Microsoft позволяют эффективно работать в системе "облачных" вычислений. Все очень просто. Можно использовать нативные инструменты для разработки приложений, скажем, Eclipse. Мы работаем с Eclipse Foundation, с другими сообществами. Высокая эффективность работы с Java отмечается в нашем "облаке". С сообществом PHP мы тоже работаем. В Hiper-V и iOS мы поддерживаем Linux и другие программные средства с возможность. открытого доступа. Можно использовать, конечно, и Java, и dotNet на этой платформе. Это отличная возможность выйти на глобальный рынок и региональный рынок России.

Для дополнительной информации обращайтесь на наш сайт microsoft.com/cloud. Вы увидите там инструменты, доступные для разработчиков. 

На этом я заканчиваю. Буду рад ответить на вопросы, если у вас они возникнут.

Вопросы и ответы

Вопрос из зала: Спасибо за вашу презентацию. Краткий вопрос о том, как выполняется PHP внутри Azure. Это особые виртуальные машины, которые там работают, или PHP выполняется через виртуальный хостинг?

Sandy Gupta: Похоже на то, как это делается на Windows Server. Там нет ничего особенного. Можно загрузить PHP 5.3 и просто выполнять в платформе Azure.

Вопрос из зала: То есть одно приложение PHP может захватить все ресурсы этого сервера? Соответственно, у другого приложения будет недостаточно ресурсов...

Sandy Gupta: Архитектура построена так, что приложение поддерживает совместное использование хранилища или доступ в какое-то локальное хранилище. Может быть большое количество экземпляров PHP, и все их можно выполнять.

Вопрос из зала: Еще один вопрос. Вы описывали следующую ситуацию. Проект Azure, доступ к MySQL, PHP-приложениям. Как это будет работать при массовом развертывании таких приложений? Каждое приложение требует соединения с MySQL.

Sandy Gupta: Здесь есть разные варианты. Можно создать роль обработчика, отдельную роль для MySQL. Многие приложения могут выходить на MySQL таким образом. Или создать собственный экземпляр MySQL, который будет являться частью вашего приложения. Один из этих вариантов можно использовать. У меня SQL работал отдельно. Различные приложения выходили на этот MySQL.

Вопрос из зала: Российская Федерация – страна, где Azure не поддерживается. Почему? 

Sandy Gupta: Недавно, буквально пару недель назад, мы объявили о том, что теперь поддерживаем Azure и в России. Этим занимается наш партнер, компания Soft Line.

Вопрос из зала: Спасибо за ваше выступление. Существуют ли курсы обучения Microsoft по использованию этой платформы, по развертыванию ПО на ней, по архитектуре этого решения. Есть ли такие программы обучения?

Sandy Gupta: Не могу точно сказать, есть ли уже локализованные версии тренингов. Это надо будет у нас в офисе уточнить. Но тренинги по технической части для партнеров есть, точно могу сказать. Правда, сейчас не могу назвать конкретно наших партнеров здесь, в России.

Да, международные курсы обучения доступны. Их предоставлением занимаются крупные партнеры типа Infusis. Они проводят курсы обучения по Microsoft Azure в Соединенных Штатах.

Вопрос из зала: Какие-нибудь другие базы данных (типа Oracle) Microsoft сможет обеспечивать?

Sandy Gupta: Честно говоря, пока не было какого-то шквала запросов относительно Oracle Azure. Мы слышали о сервере Oracle Fusion, IBM WebSphere. Но Oracle… Вы полагаете, есть потребность в поддержки базы данных Oracle со стороны клиентов? Мы подумаем над этим.

Вопрос из зала: Можно ли создавать на Azure приложения для мобильных устройств?

Sandy Gupta: На самом деле, уже есть такое приложение, на прошлой неделе оно было опубликовано в России. Не помню, кто его делал. Это приложение для iPhone, которое использует хранилище данных в Azure. Так можно делать, поскольку хранилище данных Azure использует веб-интерфейс для веб-сервисов. Таким образом, можно использовать REST API для интерфейса со всеми хранилищами данных. Приложение использует хранилище SQL и данные Blob на Azure.

Вопрос из зала: Windows 2?

Sandy Gupta: Да. Думаю, что да. Еще вопросы? Спасибо вам за ваше время.

Комментарии

Нет ни одного комментария

Только пользователи могут оставлять комментарии

Возможно, вам будет интересно:

Андрей Юношев

Андрей Юношев

Глава мобильной разработки Game Insight.

Андрей Юношев (Game Insight) освещает проблему удержания игроков в мобильных играх и делится интересными психологическими приемами.

Денис Бесков

Денис Бесков

Тренер, консультант, организатор "With a Little Help from My Friends".

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

Михаил Волович

Михаил Волович

Признанный эксперт в лингвистике, лексикограф, специалист по интеллектуальным технологиям и юзабилити сайтов.

Подробный рассказ о веб-фильтре Remparo, который позволяет ограничить доступ к нежелательному сетевому контенту.