Облачные технологии в простых словах и историях успеха

Что такое облако

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

Начнем с очевидного: для того чтобы решить какую-то задачу с помощью компьютера, требуется компьютерная инфраструктура. Например, для того чтобы вести на компьютере бухгалтерский учет, надо, чтобы была программа, умеющая это делать, например, 1С. Чтобы запустить программу, требуется среда, в которой она работает, например, операционная система Windows. И еще должно быть оборудование, на котором все это работает – например, ноутбук бухгалтера.

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

Все это вместе – оборудование и программное обеспечение – и образует инфраструктуру.

Облако – это тип инфраструктуры. Если термин «облако» кому-то неудобен, его можно легко заменить на «где-то в Сети».

Облако – это не какие-то определенные компьютеры или определенные программы, это то, как организована инфраструктура. Облако, как справедливо отмечается, например, на E-xecutive.ru (дискуссия раз и два), а также в сообществе IT-аутсорсеров, дает следующие возможности, кардинально отличающие этот тип инфраструктуры от других:

  • возможность быстрого масштабирования при росте нагрузки (Например, не хватает пяти одновременно запущенных виртуальных машин с одним веб-сервером в каждой? Запускаем еще пять);
  • оплата только за использованные ресурсы (размер диска, время процессора, объем памяти), а не абонентская плата и не расходы на плановую замену своего оборудования;
  • независимость от географического расположения пользователей – услугой, предоставляемой в облаке, можно пользоваться откуда угодно;
  • всегда одинаковый способ обращения клиента за услугой – например, через веб-сайт с определенным именем (скажем, vkontakte.ru). При этом фотографии, которые он хранит на этом сайте, или лента новостей, которую он читает, могут каждый раз передаваться ему с разных компьютеров и даже из разных частей света – клиент этого не замечает.

На основе облака предоставляют три вида услуг:

  • инфраструктура как услуга (IaaS – Infrastructure as a Service)
  • платформа как услуга (PaaS –Platform as a Service)
  • приложение как услуга (SaaS – Software as a Service).

Инфраструктура как услуга предполагает, что вы арендуете, грубо говоря, компьютер, стоящий где-то в дата-центре. Только не настоящий компьютер, а виртуальный, но для вас он ничем от настоящего не отличается – вы на него можете установить любое ПО. Для провайдера этой услуги выгода в том, что на одном компьютере можно запустить несколько виртуальных, это экономит место, электричество и время на обслуживание. Типичный пример IaaS – виртуальный сервер (VPS – virtual private server), который можно заказать почти у каждого хостинг-провайдера.

Платформа как услуга предполагает, что арендуется не пустая виртуальная машина, а набор готовых инструментов без содержания, например, настроенная система управления для веб-сайта и все ПО, которое нужно для веб-сайта; клиент только добавляет свои тексты и фотографии, и сайт готов. Платформа не обязательно должна быть связана с веб-сайтами, например, платформой может быть виртуальная мини-АТС, которую клиент может сам как угодно настраивать, добавляя какие-то модули.

Приложение как услуга – это конкретное приложение, которым вы можете пользоваться, обращаясь к нему через Интернет. Типичные примеры таких приложений – Gmail, Яндекс.Почта или Google Docs.

Какие задачи можно решить в облаке

Обычно облачная инфраструктура нужна компаниям, где есть задача, которую легко распараллелить для равномерного распределения нагрузки. Типичный пример – контакт-центр мобильного оператора: если клиентов много, то для того чтобы они не ждали в очереди звонков, надо нанять больше сотрудников в контакт-центр. Второй типичный пример – хранилища данных в сети, типа Dropbox или Instagram. Так как данные разных пользователей между собой не связаны, то при росте нагрузки достаточно добавить узлы обработки и хранения данных.

Кроме массовых служб хранения данных (например, DropBox) и пересылки мгновенных сообщений (например,Voxer и What’s App) облачная инфраструктура удобна и другим типам компаний, у которых высока нагрузка на их приложения, например, мобильным операторам и владельцам высоконагруженных веб-серверов.

Примеры высоконагруженных веб-серверов у всех на виду: это и службы новостей, и системы регистрации на события (в пиковый период перед событием), и вообще любые потенциально массовые веб-сервисы с непредсказуемым наплывом посетителей. Например, сайт, где можно подать жалобу на работу ЖКХ в обычный период может не испытывать высокой нагрузки, однако, как только ударит мороз (а отопление не включено!) или начнется оттепель (а крыши отремонтированы плохо и нечищены, стало быть – текут), этот сайт может внезапно испытать пиковую нагрузку, с которой будет трудно справиться без заранее предусмотренного масштабирования.

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

Что с помощью облака сделать нельзя

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

Один из наших клиентов страдал от медленного составления отчетов на сервере Lotus, в котором его компания вела весь документооборот. Так как его версия Lotus не позволяла распределить составление отчета между несколькими серверами в сети, единственным выходом для него была покупка (или аренда) более мощного компьютера.

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

Поэтому если вам требуется услуга IaaS (несколько виртуальных машин в облаке, количество которых можно быстро нарастить при необходимости), помните, что мощность каждой виртуальной машины не может быть больше, чем мощность серверов, установленных провайдером облака. Т.е. если ваша задача требует аренды виртуальных машин с 96 процессорами и 512 Гб оперативной памяти каждая, на данный момент ни один провайдер облака вам этого не обеспечит чисто технически – пока еще нет таких мощных серверов (по крайней мере, у провайдеров облаков).

Типичный пример использования облака

Небольшая американская компания Voxer придумала новую услугу (дело было в мае 2011 года): с помощью приложения для смартфона через сервер Voxer стало возможным пересылать короткие голосовые сообщения, картинки и координаты отправителя. Словом, то же самое, что делает более популярный в России What’s App, только не текстом, а голосом.

В ноябре 2011 появилось приложение под Android (до того было только под iOS), и это дало толчок взрывному росту: за месяц количество пользователей увеличилось с 30 000 до 1 000 000. Серверы Voxer, до того работавшие на собственных серверах Voxer под Linux, стали подтормаживать: вместо обещанного полного отсутствия задержек сообщения доставлялись за минуту-другую, что для многих абонентов было неприемлемо, да и обещания следовало выполнять. На серверах из соображений производительности был установлен Node.js, позволявший открывать огромное количество соединений с разными абонентами с относительно низкими затратами ресурсов. Но и Node.js на серверах Linux не мог справиться с потоком сообщений в 500 мегабит в мекунду.

Voxer сделали решительный шаг: они купили 50 виртуальных машин c запущенным на них Node.js в облаке, которым управляет другая американская компания, Joyent. Теперь при скачке нагрузки они всегда могут мгновенно увеличить количество машин, и пользователи не заметят задержки. Дополнительным плюсом для Voxer стало то, что облако Joyent построено на SmartOS, а не на Linux, и благодаря инструменту DTrace позволяет отслеживать производительность элементов любого масштаба – от сервера в целом до конкретной функции в коде javascript, на котором написана серверная часть Voxer, работающая в на Node.js.

В случае Voxer облако как раз пришлось кстати, ибо задача требовала масштабирования «на лету» при росте нагрузки и хорошо распараллеливалась.

Технические подробности про облачные технологии можно прочесть в статьях автора в блоге «Семоникс»

Эта публикация была размещена на предыдущей версии сайта и перенесена на нынешнюю версию. После переноса некоторые элементы публикации могут отражаться некорректно. Если вы заметили погрешности верстки, сообщите, пожалуйста, по адресу correct@e-xecutive.ru
Комментарии
Оставлять комментарии могут только зарегистрированные пользователи
Статью прочитали
Обсуждение статей
Все комментарии
Дискуссии
Все дискуссии