Поскольку Amazon дает клиентам возможность работать со всеми видами программ, установленных на компьютерах компании, она не может адаптировать свою систему к работе с ограниченным набором приложений, как это сделала компания Google. Ей необходимо быть более гибкой. По этой причине принцип работы системы Amazon отличается от принципа работы системы Google. В ее основе заложена не технология параллельной обработки, а так называемая виртуализация – технология, которая будет иметь решающее значение для дальнейшего развития сферы коммунальных вычислений. Действительно, без виртуализации крупномасштабные сервисы коммунальных вычислений просто немыслимы.
Как и многие другие компьютерные термины, понятие «виртуализация» не так сложно, как кажется на первый взгляд. Оно имеет отношение к программному обеспечению для моделирования аппаратных средств. В качестве простого примера вспомним, как за прошедшие годы изменился телефонный автоответчик. Вначале он представлял собой громоздкий автономный аппарат, записывающий голоса в виде аналоговых сигналов на магнитную ленту. Однако по мере того как начали появляться все более продвинутые компьютерные чипы, автоответчик превратился в крошечное цифровое устройство, часто встроенное в телефон. Сообщения больше не записывались на пленку: они хранились в виде строк двоичных разрядов в памяти устройства. Однако как только машина стала полностью цифровой, она перестала быть собственно машиной. Все ее функции могли выполняться с помощью программного кода. Именно это и произошло. Аппарат исчез. Физическая машина превратилась в виртуальную – в чистое программное обеспечение, работающее где-то в системе телефонной компании. Когда-то вам нужно было покупать автоответчик. Теперь достаточно просто подключить соответствующую услугу. В этом и заключается суть виртуализации.
Поскольку все компоненты компьютерных систем – от микропроцессоров и накопителей до такого сетевого оборудования, как маршрутизаторы, брандмауэры и устройства балансировки нагрузки, – работают в цифровом режиме, они тоже могут быть заменены программным обеспечением. К ним тоже применима виртуализация. Когда вы арендуете компьютер или тысячу компьютеров через сервис EC2 компании Amazon, вы арендуете не настоящие компьютеры. Вы арендуете виртуальные машины, которые существуют только в памяти физических компьютеров Amazon. Благодаря виртуализации один компьютер Amazon можно запрограммировать так, чтобы он работал как несколько разных компьютеров, каждый из которых управляется разными клиентами.
Виртуализация давно стала важной частью процесса вычислений. Это одна из технологий, которые позволили мейнфреймам одновременно обрабатывать множество различных задач. Однако сегодня она стала поистине революционной благодаря взрывному росту производительности компьютерных чипов. Поскольку работа виртуальной машины ничем не отличается от работы приложения, она использует значительную часть мощности микропроцессора. До недавнего времени это ограничивало полезность виртуализации. Запуск одной или двух виртуальных машин настолько замедлял скорость работы компьютера, что его вычислительных мощностей не хватало больше ни на что. Однако микропроцессоры стали такими мощными, что теперь могут поддерживать одновременную работу нескольких виртуальных машин и при этом иметь достаточную мощность для запуска сложных бизнес-приложений на каждой из них.
Виртуализация разрушила барьер между программным и аппаратным обеспечением, который делал модель «клиент-сервер» такой неэффективной и сложной. Компаниям больше не нужно выделять мощный сервер для работы лишь одного приложения. Теперь они могут запускать множество приложений на одном компьютере и даже автоматически перенаправлять вычислительную мощность машины с одного приложения на другое при колебании нагрузки. Виртуализация позволяет компаниям или предприятиям, которые их обслуживают, достичь высокого уровня загрузки мощностей, характерного для эпохи мейнфреймов, и еще большей гибкости, чем в эпоху ПК. Она предлагает лучшее из обоих этих миров.
Виртуализированные системы, совместно используемые множеством компаний, компьютерные специалисты часто называют «многопользовательскими системами». Название отражает существенную разницу между моделью «клиент-сервер» и моделью коммунальных вычислений. Создавая систему «клиент-сервер», вы должны построить эквивалент, скажем, четырехэтажного здания, которое в конечном итоге займет только один арендатор. Бо́льшая часть площади не будет востребована. Виртуализация в модели коммунальных вычислений даст возможность разделить это здание на квартиры, которые будут сданы в аренду десяткам арендаторов. Каждый из них вправе делать все что угодно в стенах собственной квартиры, однако все они пользуются инфраструктурой здания и при этом экономят.
Идея многопользовательских систем также показывает, чем коммунальные вычисления принципиально отличаются от системы аутсорсинга, с помощью которой компании традиционно снимали с себя часть нагрузки, связанной с поддержанием работы собственных ИТ-систем. Оба подхода предусматривают привлечение внешнего поставщика вычислительных услуг, однако на этом их сходство заканчивается. При аутсорсинге поставщик просто управляет традиционной системой «клиент-сервер» от имени своего потребителя. Аппаратное и программное обеспечение по-прежнему закреплено за одним этим клиентом и во многих случаях принадлежит ему. Компания может несколько сэкономить на оплате труда, однако модель «клиент-сервер» останется неэффективной.
Виртуализацию в качестве основы для многопользовательских сервисов ввела компания Savvis. Основанная в 1995 году в городе Сент-Луис, она первоначально занималась двумя основными видами бизнеса: это был крупный корпоративный интернет-провайдер, а также хостинговая компания, владеющая крупными центрами обработки данных, где другие компании могли размещать свои компьютеры и оборудование. Однако после бума доткомов компания Savvis использовала виртуализацию как способ объединения этих двух сервисов в полноценную компанию коммунального обслуживания.
В отличие от Google и Amazon, которые создавали свои системы из дешевого типового оборудования, компания Savvis решила приобрести дорогие передовые устройства, такие как серверы Egenera и системы хранения данных 3PAR. Egenera и 3PAR – это небольшие компании, специализирующиеся на создании высоконадежных аппаратных средств, предназначенных специально для виртуальных систем, управляемых крупными компаниями коммунального обслуживания. Дополнительные затраты на оборудование делают стратегию рискованной, однако это позволило компании Savvis автоматизировать внедрение ИТ-систем до такой степени, которой невозможно было достичь ранее. Компании, которая пользуется сервисом Savvis, не приходится беспокоиться о настройке отдельных виртуальных машин. Она просто сообщает свое максимальное требование к вычислительным мощностям, а система создает виртуальные машины и перенаправляет приложения между ними в ответ на изменения спроса. Потребление мощностей системы каждым клиентом автоматически отслеживается и отражается в ежемесячном счете.
Конечная цель, по словам технического директора компании Savvis Брайана Доерра, заключается не просто в виртуализации компьютеров и других компонентов, но и в создании целого виртуального центра обработки данных, включающего в себя вычислительные мощности, системы хранения данных и сети. Этот центр мог бы содержаться буквально в одном файле. Таким образом, вы запустили бы новый центр так же легко, как сегодня запускаете приложение. Для управления всей корпоративной вычислительной системой потребовался бы всего один человек, который сидит за компьютером и отдает простые команды отдаленному поставщику услуг через интернет.