В 2000 г. Джон Шевчук, Роберт Уоби и Брэд Лаверинг собрались в загородном доме Лаверинга под Сиэтлом с намерением приготовить мясо на гриле. Для такого случая больше подошло бы lutkefisk — самое знаменитое блюдо норвежской кухни. Ведь та встреча стала точкой отсчета для Oslo, новой распределенной платформы Microsoft для вычислений и моделирования, которую корпорация готовится представить в октябре на конференции своих разработчиков Professional Developers Conference.
Во время той памятной встречи участники еще не подозревали, как далеко заведет их эта идея. Но уже понимали, что начинают большое дело, которое будет означать для Microsoft конец эпохи .NET и глубокое вторжение в область веб-сервисов, сервисно-ориентированной архитектуры (SOA), моделирования ПО и вычислений “в облаке”. Короче говоря, троица искала способы усилить позиции Microsoft в мире распределенных вычислений.
“Усилить позиции” — это, наверное, мягко сказано. То трио положило начало попыткам Microsoft занять ведущее положение в области распределенных вычислений и сделать ее основные корпоративные технологии ведущими как в масштабах предприятий, так и “в облаке”, как мы теперь это называем. Этот новый этап в развитии Microsoft займет лет десять. Но когда всё только начиналось, очень немногие говорили о вычислениях по запросу и о коммунальных вычислениях. И что примечательно — Microsoft в этой связи не упоминалась.
Лаверинг и Шевчук являются техническими специалистами, одними из наиболее уважаемых в Microsoft сотрудниками подразделения Connected Systems Division (CSD). Лаверинг руководит реализацией стратегии Microsoft в области моделирования ПО, а Шевчук работает над преобразованием некоторых ключевых технологий Microsoft в сервисы.
Но тогда, в 2000 г., отношения между ними как лидерами двух команд, разрабатывавших различные инструменты Microsoft, были весьма напряженными. Продвигаясь к созданию .NET, они предложили различные подходы к достижению целей этой технологии и лишь некоторое время спустя пришли к согласию, что именно следует делать. Благодаря этой способности находить решение спорных вопросов Шевчук и Лаверинг смогли объединить усилия и начали совместно искать подход, более широкий даже по сравнению с .NET.
Когда Шевчук и Лаверинг приступили к работе, которую последний называет “своим делом в этой корпорации вплоть до выхода на пенсию”, они понимали, что для руководства проектом нужен, какими бы заезженными ни были эти слова, “бесстрашный вождь”.
Шевчук рассказывает, что он сразу подумал об Уоби, ныне корпоративном вице-президенте CSD, который начинал работать в Microsoft под его руководством. Возможно, это было предвосхищением будущего, но когда Шевчук беседовал с Уоби, прежде чем принять его на ту должность, Уоби не стал скрывать своих амбиций. “Я спросил его, на какой пост он рассчитывает, — вспоминает Шевчук. — И он ответил, что не прочь занять мой. На это я заявил: «Нет, парень, в мое кресло ты не сядешь!»”.
Шевчук организовал встречу с Лаверингом и Уоби во внутреннем дворике здания № 42 кампуса Microsoft. Итогом встречи стал тот памятный обед дома у Лаверинга, во время которого был выработан детальный план превращения Microsoft в наиболее авторитетную компанию в области распределенных вычислений.
Игра в команде
Троица начала подбирать команду, занявшись поисками талантов как внутри Microsoft, так и вне ее.
Если сначала группа состояла из трех человек, то теперь она насчитывает несколько сотен. Для начала Уоби привлек Стивена Луччо и Оливера Шарпа. Все трое были знакомы по учебе в Калифорнийском университете в Беркли.
В 1996 г. Microsoft поглотила начинающую компанию Colusa Software, которую они создали втроем в Беркли. Компания разработала новую технологию виртуальных машин. Незадолго до этого, в 1995 г., Sun Microsystems только-только выпустила Java, и Microsoft уже начала подвергаться сильному нажиму. Ведь ее ПО было патентованным, а технология виртуальной машины Java обещала, что единожды написанная программа будет работать где угодно.
Луччо и Шарп обещали поработать в Microsoft два года, после чего намеревались вновь создать собственные компании. Уоби остался в Microsoft и позднее перетащил Луччо и Шарпа в Редмонд для работы над перспективным проектом под руководством Эрика Раддера, старшего вице-президента Microsoft по технической стратегии.
Летом 2000 г. подразделение CSD приступило к работе. “Мы всячески стремились сохранять открытость для любых идей, которые помогут отрасли создавать эти распределенные приложения, — рассказал Уоби. — Тогда еще не было ясно, что следует использовать — ПО или сервисы”.
На тот момент уже имелось всё необходимое для создания “облака”, и CSD вместе с другими подразделениями Microsoft обдумывало такую концепцию. Как раз в то время корпорация изучала, как могли бы выглядеть вычисления по запросу. Команда начала присматриваться к сетевым провайдерам доставки контента, таким как компания Akamai. По словам Уоби, Microsoft тогда начинала задумываться не только о размещении контента за пределами своей сети, но и о все большем переносе во вне функций своих веб-серверов для обеспечения их надежности и ускорения доступа к ним.
Уоби и корпорация связывали свои планы с появившимся феноменом веб-сервисов и сотрудничали с IBM при разработке основного набора стандартных протоколов, которые получили название WS-стека. Использовав эти наработки, Microsoft приступила к осуществлению проекта Indigo — к созданию Windows Communication Foundation.
Как отметил Уоби, Indigo стал основой для обмена информацией — гибкой структурой для сервисно-ориентированного подхода Microsoft к организации более широкой распределенной вычислительной экосистемы.
По словам Луччо, проект Indigo оказал значительное влияние на Microsoft еще и в другом отношении. Благодаря акценту на взаимодействие веб-сервисов он сделал корпорацию более открытой.
Имея в своем распоряжении Indigo, Microsoft задумалась над тем, как наилучшим образом предоставить разработчикам возможности создания приложений для крупномасштабной распределенной системы, которая стала целью корпорации. Учитывая ее будущие размеры и степень сложности, Microsoft необходимо было уменьшить нагрузку, ложащуюся на плечи программистов.
Более того, корпорация надеялась привлечь к решению этой задачи не только профессиональных разработчиков, но и более широкий круг пользователей.
“Мы не будем считать свою задачу выполненной, пока ваша мама не сможет создать распределенное приложение”, — заявил Шарп, главный менеджер в подразделении CSD.
Модель поведения
Чтобы достичь своих целей, команда обратилась к одному из любимых предметов сооснователя и председателя правления Microsoft Билла Гейтса — к моделированию ПО.
В 2003 г. Лаверинг приступил к разработке платформы моделирования ПО с кодовым обозначением Oslo, которая должна была дать пользователям возможность создавать приложения на основе моделей. В том же году Гейтс начал всерьез рассматривать планы Microsoft, касающиеся непосредственной поддержки моделирования в продуктах корпорации.
Oslo представляет для Microsoft один из путей к упрощению разработки распределенных приложений для “облака”.
“Вы же не захотите вручную писать код для всего, что со временем будет делаться на десятках или сотнях тысяч компьютеров, разбросанных по всему миру, — сказал Шевчук. — Поэтому Oslo предстоит играть главную роль. В этом смысле данную платформу можно сравнить — но только в самом общем виде — с компилятором следующего поколения, который позволит разработчику реализовывать свои идеи в новом мире распределенных вычислений”.
Microsoft анонсировала Oslo в октябре 2007-го и планирует представить первые предназначенные для разработчиков варианты компонентов (Community Technology Preview, CTP) в октябре нынешнего года на конференции Microsoft Professional Developers Conference. Среди этих вариантов будут инструмент визуального моделирования, позволяющий упростить разработку, представив будущее приложение в виде схемы, новый декларативный язык моделирования для разработчиков и хранилище или репозиторий для управления моделями и метаданными.
Дон Бокс, архитектор ПО из подразделения CSD, который работает над языками для Oslo, и Оливер Шарп первыми в CSD взялись за создание этой платформы моделирования ПО в соответствии с первоначальным проектом Лаверинга. Бокс рассказывает об этом так: “Oslo представляет собой инструментарий, язык и хранилище, которые в сущности помогают вам сформулировать свои цели, требования и представления о том, как должно выглядеть ваше ПО. Oslo позволяет представить всё это в виде данных, а затем обрабатывать их, в том числе строить процессы и приложения на их основе”.
Туманные приоритеты
Microsoft распределяет средства, выделяемые на создание “вычислительного облака”, между несколькими проектами.
Так, наши источники сообщают, что Шевчук руководит проектом Zurich, который обеспечит перенос в “облако” технологий разработки приложений с помощью .NET. Кроме того, Microsoft работает над проектом Red Dog, целью которого, по сведениям из тех же источников, является создание “облачной” ОС, как ее иногда называют, нечто вроде Amazon EC2 (Elastic Compute Cloud).
Шевчук отказался подтвердить такие сообщения, а также рассказать об этих и других возможных проектах. Однако заметил, что “облако” представляет собой новый очень важный поворотный пункт в истории отрасли и что оно позволяет снизить затраты на создание приложений.
“Фактически Oslo и “облако” можно рассматривать как две стороны медали, — пояснил Шевчук. — Oslo обеспечивает десятикратное увеличение возможностей в области декларативного описания. А “облако” гарантирует, что на основе такого описания будут созданы все необходимые процессы. Таким образом, я сосредоточил свое внимание на процессах, тогда как другие сотрудники больше занимаются инструментарием и описанием приложений”.
Уоби сообщил, что его группа создает компоненты как для “облака”, так и для серверных систем.
Вероятно, вскоре в центре внимания окажется продукт Microsoft BizTalk Services. В середине июля подразделение CSD выпустило предварительную версию (CTP) релиза R12. Вот что написал Клеменс Вастерс в своем блоге 15 июля (vasters.com/clemensv/default,month,2008-07.aspx): “BizTalk Services является кодовым названием платформы Microsoft для создания “облака”. Продукт находится в стадии активной разработки. Он обеспечивает обмен сообщениями, управление потоками работ и идентификацией, что позволяет легко и быстро устанавливать связи между самостоятельными приложениями”.
Более того, по словам Вастерса, BizTalk Services позволяет использовать строительные блоки платформы “облака” для создания весьма совершенных решений на основе сервисной (интернет-) шины, имеющих широкую сферу применения.
В сочетании с дополнительными компонентами BizTalk представляет собой часть грандиозного плана Microsoft по переходу к модели “софт плюс сервисы”. Если такие компании, как Salesforce.com, рассуждают о конце эпохи ПО, то Microsoft считает, что пользователи предпочитают сочетание установленного у них ПО с предоставляемыми “в облаке” сервисами и что того же хотят разработчики — сочетания имеющихся на настольных ПК инструментов и платформы для разработки приложений в виде “облака”.
“Один из основных принципов Microsoft гласит, что мы не должны выпускать продукты для вычислений только “в облаке” или только на рабочем месте, — заявил Уоби. — Мы собираемся создавать свое ПО таким образом, чтобы вы сами могли решать, будете ли вы пользоваться нашим “облаком” или вы установите наше ПО у себя и создадите собственное “облако”. Это потребует от нас дополнительного труда. Если вы посмотрите на наших конкурентов, то сейчас они предпочитают выбрать один из этих двух вариантов. Мы же считаем, что новый этап развития связан с моделью «софт плюс сервисы»”.
Microsoft стремится также упростить компаниям создание собственных “облаков”. “Мы даже готовы создать для вас “облако”... Тем более, что всё уже настроено под ваши потребности, — продолжил Уоби. — Мы обеспечиваем подачу электроэнергии, работу серверов и каналов связи, а если у вас есть такая необходимость, то и пространственное рассредоточение, т. е. использование нескольких дата-центров. Это нетрудно”.
Учитывая, что Microsoft прокладывает путь в центры обработки данных, это похоже на правду.
Отвечая на вопрос о планах корпорации применительно к дата-центрам, Шевчук сказал: “Мы являемся, наверное, одним из крупнейших в мире покупателем центров обработки данных. Вероятно, вы видели соответствующую статистику. Там фигурируют Google, Microsoft и в некоторых случаях Amazon. Но мы вкладываем просто огромные средства, чтобы обеспечить себе вычислительный потенциал, подключение к Интернету и присутствие в различных уголках Земли, которые сделают нас лидером в этой области. Сейчас, когда мы еще не собрали все элементы воедино, довольно трудно увидеть, чем мы занимаемся. Но думаю, проделанная нами работа приведет вас в восхищение”.
Шевчук, который за время работы в Microsoft пережил несколько перестроек, считает, что нынешняя, связанная с распределенными вычислениями, моделированием и “облаком”, может стать крупнейшей за всю историю корпорации: “Я, можно сказать, прошел через несколько периодов преобразований внутри Microsoft. Один из них был сопряжен с переориентацией на Интернет, другой — с разработкой Visual Studio. Нынешний я бы охарактеризовал как даже более серьезный по сравнению с событиями, сопровождавшими всплеск интереса к Интернету. В любом подразделении имеются сотрудники, вовлеченные в новый переворот. Думаю, он серьезно отразится на всем, чем мы занимаемся”.
Может, конкуренты Microsoft разбудили спящего гиганта? Шевчук ответил на этот вопрос так: “Я знаю, что многие думают, будто Microsoft погрузилась в сон. Но мы не дремлем”.