Поисковая система Google известна практически всем, кто пользуется Интернетом. Этой популярнейшей торговой маркой мира владеет необыкновенно успешная одноименная компания с годовым оборотом 6,1 млрд. долл. Однако о ее новаторской инфраструктуре управления информацией, построенной на базе огромной распределенной grid-системы, известно не очень много. Но недавно Дуглас Меррилл, директор Google по информационным технологиям, провел встречу с коллегами из других фирм, на которой рассказал об основных принципах работы компании, ее компьютерных системах и взглядах на будущее.


Когда Ларри Пэйдж и Сергей Брин выпустили в 2004-м акции Google на рынок и стали публиковать финансовые показатели, все были поражены
Когда Ларри Пэйдж и Сергей Брин выпустили в 2004-м акции Google на рынок и стали публиковать финансовые показатели, все были поражены

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

Когда журналисты пишут про Google, они обычно выдвигают на первый план самые яркие моменты: феноменальный рост курса акций, неформальную обстановку на работе, огромную долю рынка, поразительное количество бета-версий продуктов и жесточайшую конкуренция с Microsoft. Но компания также сталкивается и с более практическими проблемами, включая трудности с биллингом, сбором информации, управлением проектами, взаимодействием с подрядчиками, наемом сотрудников и оценкой их работы, использованием систем видеоконференцсвязи. Судя по рассказу Меррилла, эти задачи Google решает своеобразно. “Мы считаем, что не все методы, популярные в прошлом, нужно обязательно использовать в будущем”, — сказал он.

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

Система Google работает на сотнях тысяч серверов (по некоторым оценкам, их более 450 тыс.). Они объединены в тысячи кластеров, которые установлены в десятках центров обработки данных (ЦОД), расположенных в разных городах мира. Такие центры есть в Дублине (Ирландия), штате Виргиния (США). Недавно компания приобрела огромное здание для штаб-квартиры в Калифорнии, открыла новый ЦОД в Атланте и сейчас строит в городе The Dalles (шт. Орегон) помещение размером в два футбольных поля. 

За счет территориального распределения серверов Google обеспечивает высокую производительность при обработке запросов, так необходимую ее многочисленным пользователям во всем мире. И хотя услуги поиска информации до сих пор приносят компании основной доход, на этих серверах также работает и быстро растущее семейство других приложений, в частности Gamil, Blogger, основанный на Web текстовый редактор и программа создания электронных таблиц. 

Именно поэтому сейчас так много разговоров о том, что Google — “убийца” Microsoft. Одни в это верят, другие нет, но факт остается фактом: обе компании играют на одном поле. В 2006 г. Microsoft собирается вложить 1,5 млрд. долл. в создание инфраструктуры серверов в ЦОД. Google в прошлом году потратила на эти цели 838 млн. долл., и теперь для удержания лидирующих позиций ей придется израсходовать не меньше соперницы. 

Ведь ей необходимы крупномасштабные вычислительные системы. В 2005-м она проиндексировала 8 млрд. Web-страниц. Видимо, это количество будет расти, так как доля компании на рынке увеличивается. По оценке аналитической фирмы ComScour Networks, в апреле текущего года к Google обратилось 43% пользователей поисковых систем из США (за полгода до этого — 36,5%), Yahoo и Microsoft Network отстают со значительным отрывом (см. диаграмму). К тому же расширяется и сама аудитория. В том же отчете ComScour говорится, что в апреле американцы занимались поиском в Интернете 6,6 млрд. раз, что на 4% больше, чем за месяц до этого. Система Google обработала 2,9 млрд. поисковых запросов, Yahoo — 1,9 млрд., а Microsoft Network — 858 млн. 


Но рост невозможен без увеличения вычислительной мощности. Как отмечает Google в последнем годовом финансовом отчете, “наш бизнес основан на использовании программной и аппаратной инфраструктуры, обеспечивающей значительные вычислительные ресурсы при невысоких затратах. Мы применяем комбинацию из коммерческого и собственного ПО, она работает на кластерах, состоящих из недорогих компьютеров. Эта инфраструктура, в которую мы вложили значительные инвестиции, обеспечивает нам целый ряд преимуществ: упрощает хранение и обработку огромного объема данных, облегчает развертывание и эксплуатацию продуктов и предоставление услуг в разных странах мира, позволяет в значительной степени автоматизировать управление мощными кластерами”. 

Чтобы получить максимальный контроль над своей инфраструктурой, Google предпочитает не арендовать оборудование на условиях лизинга, а покупать его. Главный исполнительный директор компании Эрик Шмидт так объясняет эту стратегию: “Мы обеспечиваем высокую конкурентоспособность, самостоятельно создавая собственную инфраструктуру”. При этом Google не просто скупает в массовых количествах ПК-серверы и устанавливает их в стойки.

Главная цель — построение систем, которые, по нашему мнению, являются суперкомпьютерами”, — сказал Шмидт.

И хотя компания не любит распространяться об особенностях своей инфраструктуры, кое-какая информация все же просачивается. Например, Google разработала методику быстрого развертывания заранее сконфигурированных ЦОД. Вот как описывает этот метод автор блога Pbs.org: “Компьютеры, включающие 5000 процессоров Opteron и дисковые массивы общей емкостью 3,5 ПБ упаковываются в стандартные контейнеры и за одну ночь перевозятся трейлером в любое место, где у Google есть подключение к оптоволоконному интернет-каналу. Таким образом, Всемирная сеть превращается в гигантскую grid-систему, обладающую огромной вычислительной и запоминающей мощностью”. Google не прокомментировала это сообщение. Кроме того, компания постоянно разрабатывает ПО для управления данными и сетями (см. таблицу) и использует так мало чужого софта, что лишь немногие поставщики могут назвать ее своим клиентом.


Технические характеристики коммутаторов Corega Line

ПРИЛОЖЕНИЕ
ПРОДУКТ
РАЗРАБОТЧИК
Распределенная файловая система
Google File System
Google
Распределенная система планирования
Global Work Queue
Google
Очень большие СУБД
BigTable Berkeley DB
Google Sleepycat Software (принадлежит Oracle)
Серверная ОС
Red Hat Linux (с ядром, модифицированным Google)
Red Hat, Google
Ускоритель работы с Web-протоколом
NetScaler Application Delivery
Citrix Systems
Перевод содержания Web-страниц
Rosette Language Analyzer для китайского, японского и корейского языков (используется вместе с фирменными технологиями перевода Google)
Basis Technology
Преобразование файлов и извлечение контента
Outside In
Stellent
Примечание. Для программирования Google использует языки C/C++, Java и Python (создатель последнего недавно перешел в Google), Для подготовки распределенных заданий компания разработала специализированный язык Sawzall


История одной инфраструктуры

Система Google стартовала, когда два научных сотрудника Стэнфордского университета — Ларри Пэйдж и Сергей Брин — занялись исследованием структуры Web. Не сумев найти покупателя на свой поисковый механизм, они в 1998 г. основали компанию Google, но в первые годы не смогли добиться роста дохода, так как не хотели размещать на сайте рекламу, считая, что это нарушит правильность поиска. Но затем они пошли на компромисс: главная страница осталась без рекламы, а в результатах поиска такие объявления появились. После этого выручка начала быстро расти, а когда в 2004-м компания выпустила акции на рынок и стала публиковать финансовые показатели, все были поражены. Лишь за первую половину 2004-го оборот достиг 1,4 млрд. долл., а за весь 2005-й — превысил 6 млрд. долл. 

Одновременно развивалась и вычислительная инфраструктура. Ведь для выполнения поиска приходится хранить и анализировать огромное количество Web-страниц, которое к тому же постоянно растет. За аппаратное обеспечение отвечал Ларри Пэйдж, талантливый инженер, который когда-то собрал работающий струйный принтер из конструктора Lego. Под его руководством в Google создавались первые машины, состоящие из “голых” материнских плат и дешевых безымянных дисков. Все это устанавливалось в стойки и подключалось через Ethernet к коммутаторам Hewlett-Packard. Плотная компоновка требовалась для экономии на аренде помещения. Первая система из 30 стоек сейчас находится в музее истории вычислительной техники в Калифорнии.

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

Сначала нужно было как можно дольше растянуть 100 тыс. долл., полученных от первого спонсора Энди Бехтольшайма (одного из основателей Sun Microsystems). Правда, в 1999 г. венчурный фонд вложил в компанию 25 млн. долл., и острая необходимость в экономии отпала, но к тому моменту она уже превратилась в привычку. 

В то время огромную популярность завоевала технология RAID, позволяющая создавать массивы дисков, обладающие избыточностью. В Google решили по-своему применить этот метод — для построения из дешевых компонентов компьютерных систем c возможностью резервирования. Сначала этот подход себя оправдал, но со временем из-за плотной упаковки на первый план стали выходить проблемы с охлаждением и питанием серверов. В поисках энергосберегающего оборудования компания, по слухам, недавно переключилась с процессоров Intel на продукты AMD. 

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