ИНТЕРНЕТ: К исследованию белогривых лошадок
Автор: Виктор Шепелев
В постновогоднем "обзоре трендов"["Обалдеть, завтра дайте три!" ("КТ" #717).] мы упомянули, что многие титаны рынка и отцы Веб 2.0 сегодня делают ставку на некий загадочный "cloud computing" ("[за]облачные вычисления"?).
В общем, это может напоминать возвращение старых времен, с их мэйнфреймами и терминалами, - возвращение, которое кажется не слишком осмысленным сегодня, во времена победившего Мура, времена, когда "память больше не ресурс"[Стандартный аргумент программистской дискуссии о "прожорливости" языков и библиотек; подразумевает, что при нынешних ценах на оперативную память экономить ее бессмысленно 3 Например, стоимость использования S3 - 15 центов в месяц за гигабайт хранимых данных, 10 центов за гигабайт трафика. При этом оплата идет за фактически используемые ресурсы - нет необходимости "покупать место с запасом и платить за пустое место 4 37signals устроены несколько иначе; впрочем, им не приходится предоставлять огромные дисковые или вычислительные мощности, их "мощность" скорее в удобстве интерфейса приложений.], да и процессорное время для бытовых задач тоже уже "не очень-то ресурс". Так что же - Google, Amazon, IBM… - коллективное помутнение рассудка, впадение в старческий маразм или детство? Сомнительно.
Тогда в чем соль? Терпение, милый читатель. Изучать мир и делиться с тобой знаниями - наш священный долг и обязанность. Не переключай канал.
Хотите - буду безукоризненно нежный, не мужчина, а - облако в штанах!
Владимир Маяковский
Итак, зачем понадобился новый термин? От нехватки старых? Чем плохи "распределенные вычисления (если речь идет об использовании вычислительных мощностей, объединенных в сеть) или "тонкий клиент" (если речь идет о перенесении всех вычислений на сервер), а то и просто "клиент-сервер"?
Дело в том, что "облачные вычисления" подразумевают: во-первых, максимальную простоту и удобство доступа к ресурсу; во-вторых, почти бесконечное в обе стороны масштабирование. ("В обе стороны" здесь означает, что нет ограничений ни по максимальному, ни по минимальному использованию.)Несколько конкретных примеров.
"Облачными вычислениями" Google называет все свои онлайн-приложения - GMail, Docs, Calendar, Google Base и т. п. Простой доступ: удобный, понятный "простому пользователю" интерфейс, похожий на "обычное десктопное приложение", а местами даже удобнее и функциональнее. Почти бесконечное масштабирование: 1 Гбайт для почты (на момент открытия "Гмыла", сегодня - 6 Гбайт для простых смерных или 25 Гбайт/$50 на каждый адрес в Google Apps Premier Edition) - это все-таки очень много (если не хранить фильмы в почтовом ящике); при этом даже если ты получаешь одно письмо в год - удобство работы не уменьшится и претензий за "недоиспользование" ресурса никто не предъявит (вроде любимого некоторыми российскими почтовыми службами "Ваш ящик не использовался больше трех месяцев и будет удален"). Та же петрушка и со многими другими приложениями "для простых людей" - блогсервисами, фотохостингами, файлохранилищами "эпохи Web 2.0" - хош, вот тебе гигабайт места и десяток трафика; а не нравится - заплати 2 доллара в месяц и имей 20 гигабайт и безлимитный трафик.
Упомянутый Google Apps Premier Edition плавно переносит нас к следующей разновидности - облакоприложений для офиса и организации труда. Помимо гугловского пакета, на ум сразу же приходят сервисы студии 37signals - прославленных создателей Ruby on Rails. Их сервисы - средство управления проектами Basecamp, совместной работы над текстами Writeboard, онлайн-бизнес-чат Campfire и т. п. - типичные "облака". Работают "где-то там", на серверах 37signals, простые и удобные в использовании, полностью заменяют соответствующую разновидность "настоящих программ".
Третий пример - сервисы от Amazon: Elastic Computing Cloud (EC2) - виртуальные вычислительные мощности; Simple Storage Service (S3) - место для хранения данных; SimpleDB - база данных (в отличие от S3, в большей степени предназначена для хранения таблиц коротких данных и эффективного выполнения сложных запросов). Все это - предложения для создателей собственных веб-приложений, желающих переложить на широкие плечи Amazon часть своих забот.
Здесь наблюдаются те же ключевые факторы: простой доступ - дружелюбное API, удобное управление; и почти бесконечное масштабирование - платишь только за то, что используешь, причем цены близки к себестоимости ресурса (если есть еще сегодня такая эфемерная вещь, как "себестоимость гигабайта дискового пространства") и растут линейно с ростом запросов[Например, стоимость использования S3 - 15 центов в месяц за гигабайт хранимых данных, 10 центов за гигабайт трафика. При этом оплата идет за фактически используемые ресурсы - нет необходимости "покупать место с запасом и платить за пустое место". ].
Казалось бы, что общего между программамина-Вебе для обычного юзера (см. Google) и как-быхостингом для небогатого разработчика (см. Amazon)?
Очень просто: пользователь и тех и других сервисов - "обычный человек", не желающий или не могущий тратить деньги и время на серьезную IT-инфраструктуру (запомним эту дефиницию, она нам еще пригодится).
У одинокого пользователя куда больше общего с одиноким хозяином небольшого стартапа, чем у них обоих - с крупной фирмой, могущей позволить себе собственный дата-центр. Истинность этого утверждения подтверждают, помимо прочего, уже существующие решения, делающие амазоновские сервисы-для программистов полезными для простого пользователя;например, использование S3 для хранения бэкапов данных - при 15 центах в месяц это становится весьма осмысленным (природу этой осмысленности мы разберем ниже).
Когда я снова стану облаком,
Когда я снова стану зябликом,
Когда я снова стану маленьким
И снег опять запахнет яблоком.
Александр Галич
Теперь, читатель, надеюсь, тебе примерно понятно, чем сегодняшнее предложение "распределенных вычислений" так отличается от всего существовавшего ранее, что понадобился новый термин. Теперь неплохо бы определить - что же изменилось в мире за последние годы, что такая разновидность сервисов стала возможна, и возможна именно теперь.